#pragma once #include #include enum class RuntimeStateLayerKind { BasePersisted, CommittedLive, TransientAutomation, RenderLocal, HealthConfig }; enum class RuntimeStateField { PersistedLayerStack, PersistedParameterValues, StackPresets, CommittedSessionParameterValues, CommittedLayerBypass, RuntimeCompileReloadFlags, TransientOscOverlay, TransientAutomationCommitState, RenderLocalTemporalHistory, RenderLocalFeedbackState, RenderLocalInputFrames, RenderLocalOutputFrames, RuntimeConfiguration, HealthTelemetry }; struct RuntimeStateLayerDescriptor { RuntimeStateLayerKind kind = RuntimeStateLayerKind::BasePersisted; const char* name = ""; const char* owner = ""; const char* lifetime = ""; const char* persistence = ""; const char* renderRole = ""; }; struct RuntimeStateFieldDescriptor { RuntimeStateField field = RuntimeStateField::PersistedLayerStack; RuntimeStateLayerKind layerKind = RuntimeStateLayerKind::BasePersisted; const char* name = ""; const char* currentOwner = ""; const char* notes = ""; }; const char* RuntimeStateLayerKindName(RuntimeStateLayerKind kind); int RuntimeStateLayerCompositionPrecedence(RuntimeStateLayerKind kind); bool RuntimeStateLayerIsDurable(RuntimeStateLayerKind kind); bool RuntimeStateLayerParticipatesInParameterComposition(RuntimeStateLayerKind kind); bool RuntimeStateLayerIsRenderLocal(RuntimeStateLayerKind kind); RuntimeStateLayerKind ClassifyRuntimeStateField(RuntimeStateField field); std::vector GetRuntimeStateLayerInventory(); std::vector GetRuntimeStateFieldInventory();