# $defs.AbstainParams.description
Parameters for ABSTAIN. Populated in Phase 3.

# $defs.AddValidationCheckpointAction.description
Add a data-quality checkpoint to the graph.

# $defs.AddValidationCheckpointParams.description
Parameters for ADD_VALIDATION_CHECKPOINT. Populated in Phase 3.

# $defs.ChangeMaterializationParams.description
Parameters for CHANGE_MATERIALIZATION. Populated in Phase 3.

# $defs.ConsolidateUnionBranchesParams.description
Parameters for CONSOLIDATE_UNION_BRANCHES. Populated in Phase 3.

# $defs.EvaluatorOnly.description
Results that must never appear in a policy observation.

subhadipmitra@: Decision: hidden validation outcomes live in their own type so that the
boundary is checkable. Structural separation alone does not stop application code copying
this into an observation; that needs the runtime leakage tests in Phase 3. This makes the
accident visible, it does not make it impossible.

# $defs.ExtractCommonSubgraphAction.description
Extract repeated logic into a shared model.

# $defs.ExtractCommonSubgraphParams.description
Parameters for EXTRACT_COMMON_SUBGRAPH. Populated in Phase 3.

# $defs.InferenceCost.description
Resources consumed producing one action.

# $defs.InlineTrivialModelAction.description
Inline a pass-through model into its consumers.

# $defs.InlineTrivialModelParams.description
Parameters for INLINE_TRIVIAL_MODEL. Populated in Phase 3.

# $defs.MergeEquivalentModelsAction.description
Merge models that compute the same result.

# $defs.MergeEquivalentModelsParams.description
Parameters for MERGE_EQUIVALENT_MODELS. Populated in Phase 3.

# $defs.PreconditionCheck.description
Outcome of the action-precondition stage of a transition.

# $defs.Provenance.description
Origin record for one serialized artifact.

# $defs.RemoveDeadModelAction.description
Remove a model that nothing required depends on.

# $defs.RemoveDeadModelParams.description
Parameters for REMOVE_DEAD_MODEL. Populated in Phase 3.

# $defs.RewardVector.description
The reward components listed in docs/04.

subhadipmitra@: Decision: the trace stores a vector even when training optimizes a scalar.
Collapsing to a scalar at record time destroys the ability to tell a semantically invalid
cheap result from a valid expensive one after the fact, which is the distinction the whole
evaluation depends on.

# $defs.RewireDependencyAction.description
Repoint a dependency at a different upstream model.

# $defs.RewireDependencyParams.description
Parameters for REWIRE_DEPENDENCY. Populated in Phase 3.

# $defs.SourceKind.description
Category of input an artifact was derived from.

# $defs.SplitModelAction.description
Split an overloaded model into separate responsibilities.

# $defs.SplitModelParams.description
Parameters for SPLIT_MODEL. Populated in Phase 3.

# $defs.StopAction.description
End the episode and submit the current state.

# $defs.StopParams.description
Parameters for STOP. Populated in Phase 3.

# $defs.TerminationReason.description
Why an episode ended.

A controlled vocabulary rather than free text, so termination behaviour is aggregatable
across runs without string matching.

# $defs.TraceStep.description
One transition of an episode. Provisional; Phase 4 owns the observation shape.

# $defs.ValidateSubgraphAction.description
Request validation of a subgraph without changing it.

# $defs.ValidateSubgraphParams.description
Parameters for VALIDATE_SUBGRAPH. Populated in Phase 3.