{
  "entries": [
    {
      "aliases": [],
      "canonical_term": "execution_backend",
      "changes": [
        "execution_backend"
      ],
      "docs_anchor": "execution-engine-versus-optimizer-engine",
      "engine_support": {
        "dag-ml": "partial",
        "dual": "partial",
        "legacy": "supported",
        "native": "partial"
      },
      "id": "run.engine",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "execution",
      "path": "run.engine",
      "reads": [],
      "scope": "pipeline_execution",
      "status": "supported",
      "summary": "Selects the pipeline execution backend; native is the fail-closed Archive V2 Methods subset, while dual is a bounded native-first, no-fallback oracle only for explicit array regression with KFold(shuffle=False) and PLSRegression; neither selects the HPO algorithm.",
      "surface": "run_argument",
      "token": "engine",
      "ui": {
        "control": "select",
        "group": "execution",
        "label": "Execution backend",
        "order": 10
      },
      "value_schema": {
        "enum": [
          null,
          "legacy",
          "dag-ml",
          "native",
          "dual"
        ],
        "type": [
          "string",
          "null"
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "hyperparameter_tuning",
      "changes": [
        "candidate_fit",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "pipeline.step.finetune_params",
      "invalidates_calibration": "always",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "supported",
      "summary": "Runs model-local hyperparameter optimization; DAG-ML supports deterministic model_params grids/ranges and a scoped host Optuna profile, with some legacy controls still unsupported. This is never weight continuation.",
      "surface": "pipeline_step",
      "token": "finetune_params",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Model-local HPO",
        "order": 20
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [
        {
          "canonical": "dag-ml",
          "kind": "value",
          "mode": "read_only",
          "name": "dagml"
        },
        {
          "canonical": "dag-ml",
          "kind": "value",
          "mode": "read_only",
          "name": "native"
        },
        {
          "canonical": "n4m",
          "kind": "value",
          "mode": "read_only",
          "name": "methods"
        },
        {
          "canonical": "n4m",
          "kind": "value",
          "mode": "read_only",
          "name": "libn4m"
        }
      ],
      "canonical_term": "hpo_or_generation_driver",
      "changes": [
        "optimizer_algorithm",
        "native_generator_selection"
      ],
      "docs_anchor": "execution-engine-versus-optimizer-engine",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.engine",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.engine",
      "reads": [],
      "scope": "model_local",
      "status": "partial",
      "summary": "Selects the model-local HPO optimizer or deterministic DAG-ML generation driver; this never selects the run() execution backend.",
      "surface": "nested_key",
      "token": "engine",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "HPO engine",
        "order": 30
      },
      "value_schema": {
        "enum": [
          "optuna",
          "n4m",
          "dag-ml",
          "grid"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "sampler",
          "kind": "token",
          "mode": "read_only",
          "name": "sample"
        }
      ],
      "canonical_term": "sampler",
      "changes": [
        "trial_sequence"
      ],
      "docs_anchor": "canonical-aliases",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.sampler",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.sampler",
      "reads": [],
      "scope": "model_local",
      "status": "partial",
      "summary": "Selects the HPO sampling strategy. DAG-ML's host Optuna profile supports the legacy sample alias and Optuna samplers; deterministic lowering does not use a sampler. The n4m objective adapter maps grid to a native GRID enum when available.",
      "surface": "nested_key",
      "token": "sampler",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Sampler",
        "order": 40
      },
      "value_schema": {
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "model_parameter_search_space",
      "changes": [
        "candidate_fit",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "supported",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.model_params",
      "invalidates_calibration": "always",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.model_params",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "supported",
      "summary": "Defines the model-local parameter search space. Optuna and n4m accept the adaptive DSL; DAG-ML native lowering currently accepts plain JSON grids plus _range_/_log_range_ generator specs.",
      "surface": "nested_key",
      "token": "model_params",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Model parameter space",
        "order": 41
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "selection_metric",
      "changes": [
        "trial_ranking",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "supported",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.metric",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.metric",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "supported",
      "summary": "Selects the model-local optimization metric. DAG-ML native lowering currently exposes only rmse, accuracy and balanced_accuracy on the public path.",
      "surface": "nested_key",
      "token": "metric",
      "ui": {
        "control": "text",
        "group": "tuning",
        "label": "Selection metric",
        "order": 42
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "selection_objective",
      "changes": [
        "trial_ranking",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "supported",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.direction",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.direction",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "supported",
      "summary": "Selects whether the metric is minimized or maximized. DAG-ML rejects directions that contradict the selected metric's native objective.",
      "surface": "nested_key",
      "token": "direction",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Selection objective",
        "order": 43
      },
      "value_schema": {
        "enum": [
          "minimize",
          "maximize"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "trial_budget",
      "changes": [
        "trial_sequence",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "supported",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.n_trials",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.n_trials",
      "reads": [],
      "scope": "model_local",
      "status": "supported",
      "summary": "Sets the adaptive HPO trial budget for Optuna and n4m. DAG-ML honors it with the explicit host Optuna profile; deterministic generation uses the grid/range candidate set instead.",
      "surface": "nested_key",
      "token": "n_trials",
      "ui": {
        "control": "number",
        "group": "tuning",
        "label": "Trial budget",
        "order": 44
      },
      "value_schema": {
        "minimum": 1,
        "type": "integer"
      }
    },
    {
      "aliases": [],
      "canonical_term": "fold_search_strategy",
      "changes": [
        "candidate_fit",
        "trial_ranking",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.approach",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.approach",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "partial",
      "summary": "Controls how folds are searched. DAG-ML deterministic lowering accepts grouped; the host Optuna profile accepts single, grouped, and individual scoped searches. Individual uses a training-only inner holdout for each outer fold and a fresh refit search.",
      "surface": "nested_key",
      "token": "approach",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Fold search strategy",
        "order": 45
      },
      "value_schema": {
        "enum": [
          "single",
          "grouped",
          "individual"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "early_stopping_strategy",
      "changes": [
        "trial_sequence",
        "trial_ranking",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "model-local-hpo-finetune-params",
      "engine_support": {
        "dag-ml": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.pruner",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.pruner",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "partial",
      "summary": "Selects adaptive HPO pruning/early-stopping. Optuna and n4m expose overlapping but not identical pruner vocabularies; deterministic DAG-ML native generation rejects it.",
      "surface": "nested_key",
      "token": "pruner",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Pruner",
        "order": 46
      },
      "value_schema": {
        "enum": [
          "none",
          "median",
          "successive_halving",
          "hyperband",
          "asha",
          "racing"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "mean",
          "kind": "value",
          "mode": "read_only",
          "name": "avg"
        }
      ],
      "canonical_term": "trial_aggregation",
      "changes": [
        "trial_ranking"
      ],
      "docs_anchor": "canonical-aliases",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "partial"
      },
      "id": "pipeline.step.finetune_params.eval_mode",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "pipeline[].finetune_params.eval_mode",
      "reads": [
        "development"
      ],
      "scope": "model_local",
      "status": "partial",
      "summary": "Aggregates trial scores for ranking. DAG-ML deterministic lowering accepts mean; host Optuna accepts best or mean for grouped search. avg is a read-only alias for mean.",
      "surface": "nested_key",
      "token": "eval_mode",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Evaluation aggregation",
        "order": 50
      },
      "value_schema": {
        "enum": [
          "best",
          "mean",
          "robust_best"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "trial_training_parameters",
      "changes": [
        "trial_fit"
      ],
      "docs_anchor": "three-training-parameter-scopes",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "supported",
        "optuna": "supported"
      },
      "id": "pipeline.step.finetune_params.train_params",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "trial_fit",
      "path": "pipeline[].finetune_params.train_params",
      "reads": [
        "development"
      ],
      "scope": "hpo_trials",
      "status": "supported",
      "summary": "Configures or samples fit controls inside HPO trials. DAG-ML's host Optuna profile applies supported estimator controls to each candidate; terminal CV/refit training uses step-level train/refit_params. Deterministic lowering rejects trial-fit sampling.",
      "surface": "nested_key",
      "token": "train_params",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Trial training parameters",
        "order": 60
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "training_parameters",
      "changes": [
        "final_predictor"
      ],
      "docs_anchor": "three-training-parameter-scopes",
      "engine_support": {
        "dag-ml": "supported",
        "legacy": "supported"
      },
      "id": "pipeline.step.train_params",
      "invalidates_calibration": "always",
      "lifecycle_stage": "fit",
      "path": "pipeline[].train_params",
      "reads": [
        "development"
      ],
      "scope": "normal_and_terminal_fit",
      "status": "supported",
      "summary": "Configures ordinary model training and terminal refit unless refit_params overrides a value. DAG-ML applies recognized estimator overrides and framework training-loop parameters in each fit scope; unsupported controller policies fail explicitly.",
      "surface": "pipeline_step",
      "token": "train_params",
      "ui": {
        "control": "object",
        "group": "training",
        "label": "Training parameters",
        "order": 70
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "refit_training_parameters",
      "changes": [
        "final_predictor"
      ],
      "docs_anchor": "three-training-parameter-scopes",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "pipeline.step.refit_params",
      "invalidates_calibration": "always",
      "lifecycle_stage": "refit",
      "path": "pipeline[].refit_params",
      "reads": [
        "development"
      ],
      "scope": "winner_refit",
      "status": "supported",
      "summary": "Overrides train_params only during winner refit. DAG-ML applies recognized model overrides and framework training-loop parameters; specialized warm starts and controller policies remain unsupported. The exact {'use_all_partitions': True} PLSRegression no-op is accepted.",
      "surface": "pipeline_step",
      "token": "refit_params",
      "ui": {
        "control": "object",
        "group": "training",
        "label": "Winner refit parameters",
        "order": 80
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "hyperparameter_tuning",
      "changes": [
        "candidate_fit",
        "selection",
        "final_predictor"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning",
      "invalidates_calibration": "always",
      "lifecycle_stage": "search",
      "path": "run.tuning",
      "reads": [
        "development"
      ],
      "scope": "full_dag",
      "status": "partial",
      "summary": "Fixed-topology full-DAG HPO argument. The public subset currently executes only engine='dag-ml' single-estimator array pipelines with explicit score_data; broader DAG shapes remain fail-closed.",
      "surface": "run_argument",
      "token": "tuning",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Full-DAG tuning",
        "order": 90
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "optimizer_engine",
      "changes": [
        "optimizer_algorithm"
      ],
      "docs_anchor": "execution-engine-versus-optimizer-engine",
      "engine_support": {
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.engine",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.engine",
      "reads": [],
      "scope": "full_dag",
      "status": "partial",
      "summary": "Optimizer selector inside full-DAG tuning; it is distinct from run.engine and currently executes only the single-estimator array subset.",
      "surface": "nested_key",
      "token": "engine",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Full-DAG HPO engine",
        "order": 100
      },
      "value_schema": {
        "enum": [
          "optuna",
          "n4m"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "explicit_objective_scoring_cohort",
      "changes": [
        "objective_scores",
        "trial_ranking",
        "selected_predictor"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.score_data",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.score_data",
      "reads": [
        "development"
      ],
      "scope": "objective_scoring",
      "status": "partial",
      "summary": "Supplies the explicit scoring cohort used by run(tuning) optimizer-driving. It is mandatory in the public subset and may be mapping, tuple/list, or explicit dataset-backed selector from SpectroDataset, DatasetConfigs, config mapping, or config/path string.",
      "surface": "nested_key",
      "token": "score_data",
      "ui": {
        "control": "dataset",
        "group": "tuning",
        "label": "Tuning score data",
        "order": 101
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "oneOf": [
          {
            "additionalProperties": true,
            "anyOf": [
              {
                "required": [
                  "X",
                  "y"
                ]
              },
              {
                "required": [
                  "X_score",
                  "y_score"
                ]
              },
              {
                "required": [
                  "dataset",
                  "selector"
                ]
              }
            ],
            "properties": {
              "X": {},
              "X_score": {},
              "conformal_calibration": {
                "$defs": {
                  "canonical_string_key": {
                    "minLength": 1,
                    "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
                    "type": "string"
                  },
                  "json_native_mapping": {
                    "additionalProperties": {
                      "$ref": "#/$defs/json_native_value"
                    },
                    "propertyNames": {
                      "$ref": "#/$defs/canonical_string_key"
                    },
                    "type": "object",
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_metadata": {
                    "oneOf": [
                      {
                        "$ref": "#/$defs/json_native_mapping"
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_mapping"
                        },
                        "type": "array"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_value": {
                    "oneOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "number",
                        "x-nirs4all-finite-number": true
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "type": "array"
                      },
                      {
                        "additionalProperties": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "propertyNames": {
                          "$ref": "#/$defs/canonical_string_key"
                        },
                        "type": "object"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  }
                },
                "additionalProperties": true,
                "allOf": [
                  {
                    "oneOf": [
                      {
                        "required": [
                          "X"
                        ]
                      },
                      {
                        "required": [
                          "X_calibration"
                        ]
                      },
                      {
                        "required": [
                          "features"
                        ]
                      }
                    ]
                  },
                  {
                    "oneOf": [
                      {
                        "required": [
                          "y_true"
                        ]
                      },
                      {
                        "required": [
                          "y"
                        ]
                      },
                      {
                        "required": [
                          "y_calibration"
                        ]
                      },
                      {
                        "required": [
                          "target"
                        ]
                      },
                      {
                        "required": [
                          "targets"
                        ]
                      }
                    ]
                  }
                ],
                "properties": {
                  "X": {},
                  "X_calibration": {},
                  "calibration_groups": {
                    "type": "array"
                  },
                  "calibration_metadata": {
                    "$ref": "#/$defs/json_native_metadata"
                  },
                  "calibration_sample_ids": {
                    "type": "array"
                  },
                  "features": {},
                  "groups": {
                    "type": "array"
                  },
                  "metadata": {
                    "$ref": "#/$defs/json_native_metadata"
                  },
                  "physical_sample_ids": {
                    "type": "array"
                  },
                  "sample_ids": {
                    "type": "array"
                  },
                  "target": {},
                  "targets": {},
                  "y": {},
                  "y_calibration": {},
                  "y_true": {}
                },
                "type": "object"
              },
              "conformal_coverage": {
                "exclusiveMaximum": 1,
                "exclusiveMinimum": 0,
                "type": "number"
              },
              "conformal_score_calibration": {
                "$defs": {
                  "canonical_string_key": {
                    "minLength": 1,
                    "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
                    "type": "string"
                  },
                  "json_native_mapping": {
                    "additionalProperties": {
                      "$ref": "#/$defs/json_native_value"
                    },
                    "propertyNames": {
                      "$ref": "#/$defs/canonical_string_key"
                    },
                    "type": "object",
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_metadata": {
                    "oneOf": [
                      {
                        "$ref": "#/$defs/json_native_mapping"
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_mapping"
                        },
                        "type": "array"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_value": {
                    "oneOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "number",
                        "x-nirs4all-finite-number": true
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "type": "array"
                      },
                      {
                        "additionalProperties": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "propertyNames": {
                          "$ref": "#/$defs/canonical_string_key"
                        },
                        "type": "object"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  }
                },
                "additionalProperties": true,
                "allOf": [
                  {
                    "oneOf": [
                      {
                        "required": [
                          "X"
                        ]
                      },
                      {
                        "required": [
                          "X_calibration"
                        ]
                      },
                      {
                        "required": [
                          "features"
                        ]
                      }
                    ]
                  },
                  {
                    "oneOf": [
                      {
                        "required": [
                          "y_true"
                        ]
                      },
                      {
                        "required": [
                          "y"
                        ]
                      },
                      {
                        "required": [
                          "y_calibration"
                        ]
                      },
                      {
                        "required": [
                          "target"
                        ]
                      },
                      {
                        "required": [
                          "targets"
                        ]
                      }
                    ]
                  }
                ],
                "properties": {
                  "X": {},
                  "X_calibration": {},
                  "calibration_groups": {
                    "type": "array"
                  },
                  "calibration_metadata": {
                    "$ref": "#/$defs/json_native_metadata"
                  },
                  "calibration_sample_ids": {
                    "type": "array"
                  },
                  "features": {},
                  "groups": {
                    "type": "array"
                  },
                  "metadata": {
                    "$ref": "#/$defs/json_native_metadata"
                  },
                  "physical_sample_ids": {
                    "type": "array"
                  },
                  "sample_ids": {
                    "type": "array"
                  },
                  "target": {},
                  "targets": {},
                  "y": {},
                  "y_calibration": {},
                  "y_true": {}
                },
                "type": "object"
              },
              "coverage": {
                "exclusiveMaximum": 1,
                "exclusiveMinimum": 0,
                "type": "number"
              },
              "dataset": {},
              "group_column": {
                "minLength": 1,
                "type": "string"
              },
              "groups": {
                "type": "array"
              },
              "include_augmented": {
                "type": "boolean"
              },
              "metadata": {
                "$ref": "#/$defs/json_native_metadata"
              },
              "metadata_columns": {
                "oneOf": [
                  {
                    "minLength": 1,
                    "type": "string"
                  },
                  {
                    "items": {
                      "minLength": 1,
                      "type": "string"
                    },
                    "type": "array",
                    "uniqueItems": true
                  }
                ]
              },
              "metric": {
                "minLength": 1,
                "type": "string"
              },
              "physical_sample_ids": {
                "type": "array"
              },
              "prediction_sample_ids": {
                "type": "array"
              },
              "sample_id_column": {
                "minLength": 1,
                "type": "string"
              },
              "sample_ids": {
                "type": "array"
              },
              "score_groups": {
                "type": "array"
              },
              "score_metadata": {
                "$ref": "#/$defs/json_native_metadata"
              },
              "score_metric": {
                "minLength": 1,
                "type": "string"
              },
              "score_sample_ids": {
                "type": "array"
              },
              "selector": {
                "$defs": {
                  "canonical_string_key": {
                    "minLength": 1,
                    "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
                    "type": "string"
                  },
                  "json_native_mapping": {
                    "additionalProperties": {
                      "$ref": "#/$defs/json_native_value"
                    },
                    "propertyNames": {
                      "$ref": "#/$defs/canonical_string_key"
                    },
                    "type": "object",
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_metadata": {
                    "oneOf": [
                      {
                        "$ref": "#/$defs/json_native_mapping"
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_mapping"
                        },
                        "type": "array"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  },
                  "json_native_value": {
                    "oneOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      },
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "number",
                        "x-nirs4all-finite-number": true
                      },
                      {
                        "items": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "type": "array"
                      },
                      {
                        "additionalProperties": {
                          "$ref": "#/$defs/json_native_value"
                        },
                        "propertyNames": {
                          "$ref": "#/$defs/canonical_string_key"
                        },
                        "type": "object"
                      }
                    ],
                    "x-nirs4all-finite-numbers": true,
                    "x-nirs4all-json-native": true
                  }
                },
                "$ref": "#/$defs/json_native_mapping",
                "x-nirs4all-finite-numbers": true,
                "x-nirs4all-json-native": true
              },
              "y": {},
              "y_score": {}
            },
            "type": "object"
          },
          {
            "maxItems": 5,
            "minItems": 2,
            "type": "array"
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "terminal_winner_projection",
      "changes": [
        "run_result_best",
        "terminal_prediction_entry"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.winner",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "refit",
      "path": "run.tuning.winner",
      "reads": [
        "external_test_or_calibration"
      ],
      "scope": "terminal_projection",
      "status": "partial",
      "summary": "Projects the refit winner to an explicit terminal prediction entry. It is required before run(tuning).calibration and can use arrays or an explicit dataset-backed selector from SpectroDataset, DatasetConfigs, config mapping, or config/path string.",
      "surface": "nested_key",
      "token": "winner",
      "ui": {
        "control": "dataset",
        "group": "tuning",
        "label": "Tuning winner projection",
        "order": 102
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "additionalProperties": true,
        "anyOf": [
          {
            "required": [
              "X",
              "y_true"
            ]
          },
          {
            "required": [
              "dataset",
              "selector"
            ]
          }
        ],
        "properties": {
          "X": {},
          "dataset": {},
          "dataset_name": {
            "minLength": 1,
            "type": "string"
          },
          "group_column": {
            "minLength": 1,
            "type": "string"
          },
          "include_augmented": {
            "type": "boolean"
          },
          "metadata": {
            "$ref": "#/$defs/json_native_metadata"
          },
          "metadata_columns": {
            "oneOf": [
              {
                "minLength": 1,
                "type": "string"
              },
              {
                "items": {
                  "minLength": 1,
                  "type": "string"
                },
                "type": "array",
                "uniqueItems": true
              }
            ]
          },
          "metric": {
            "minLength": 1,
            "type": "string"
          },
          "model_name": {
            "minLength": 1,
            "type": "string"
          },
          "physical_sample_ids": {
            "type": "array"
          },
          "prediction_sample_ids": {
            "type": "array"
          },
          "sample_id_column": {
            "minLength": 1,
            "type": "string"
          },
          "sample_ids": {
            "type": "array"
          },
          "score": {
            "type": "number"
          },
          "selector": {
            "$defs": {
              "canonical_string_key": {
                "minLength": 1,
                "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
                "type": "string"
              },
              "json_native_mapping": {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object",
                "x-nirs4all-finite-numbers": true,
                "x-nirs4all-json-native": true
              },
              "json_native_metadata": {
                "oneOf": [
                  {
                    "$ref": "#/$defs/json_native_mapping"
                  },
                  {
                    "items": {
                      "$ref": "#/$defs/json_native_mapping"
                    },
                    "type": "array"
                  }
                ],
                "x-nirs4all-finite-numbers": true,
                "x-nirs4all-json-native": true
              },
              "json_native_value": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "type": "boolean"
                  },
                  {
                    "type": "number",
                    "x-nirs4all-finite-number": true
                  },
                  {
                    "items": {
                      "$ref": "#/$defs/json_native_value"
                    },
                    "type": "array"
                  },
                  {
                    "additionalProperties": {
                      "$ref": "#/$defs/json_native_value"
                    },
                    "propertyNames": {
                      "$ref": "#/$defs/canonical_string_key"
                    },
                    "type": "object"
                  }
                ],
                "x-nirs4all-finite-numbers": true,
                "x-nirs4all-json-native": true
              }
            },
            "$ref": "#/$defs/json_native_mapping",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "task_type": {
            "minLength": 1,
            "type": "string"
          },
          "winner_sample_ids": {
            "type": "array"
          },
          "y_true": {}
        },
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "post_tuning_conformal_calibration",
      "changes": [
        "calibrator",
        "calibrated_result"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.calibration",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "run.tuning.calibration",
      "reads": [
        "terminal_prediction_entry",
        "prediction_outputs"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Runs conformal calibration immediately after the explicit winner projection. calibration_data is derived from winner and cannot be supplied here.",
      "surface": "nested_key",
      "token": "calibration",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Post-tuning calibration",
        "order": 103
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "additionalProperties": {
          "$ref": "#/$defs/json_native_value"
        },
        "properties": {
          "as_predict_result": {
            "type": "boolean"
          },
          "calibration_data": false,
          "coverage": {
            "oneOf": [
              {
                "exclusiveMaximum": 1,
                "exclusiveMinimum": 0,
                "type": "number"
              },
              {
                "items": {
                  "exclusiveMaximum": 1,
                  "exclusiveMinimum": 0,
                  "type": "number"
                },
                "minItems": 1,
                "type": "array",
                "uniqueItems": true
              }
            ]
          },
          "method": {
            "const": "split_absolute_residual"
          },
          "prediction_sample_ids": {
            "type": "array"
          },
          "unit": {
            "const": "physical_sample"
          },
          "workspace_conformal_id": {
            "minLength": 1,
            "type": "string"
          },
          "workspace_metadata": {
            "$ref": "#/$defs/json_native_mapping"
          },
          "y_pred": {}
        },
        "propertyNames": {
          "$ref": "#/$defs/canonical_string_key"
        },
        "required": [
          "y_pred",
          "prediction_sample_ids"
        ],
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "workspace_tuning_id",
          "kind": "token",
          "mode": "read_only",
          "name": "tuning_id"
        }
      ],
      "canonical_term": "tuning_workspace_identifier",
      "changes": [
        "workspace_tuning_results"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.workspace_tuning_id",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "storage",
      "path": "run.tuning.workspace_tuning_id",
      "reads": [
        "workspace_tuning_results"
      ],
      "scope": "workspace_persistence",
      "status": "partial",
      "summary": "Names the workspace TuningResult record and is required with resume=True in the public run(tuning) subset.",
      "surface": "nested_key",
      "token": "workspace_tuning_id",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Tuning workspace ID",
        "order": 104
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "tuning_workspace_metadata",
      "changes": [
        "workspace_tuning_results"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.workspace_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "storage",
      "path": "run.tuning.workspace_metadata",
      "reads": [],
      "scope": "workspace_persistence",
      "status": "partial",
      "summary": "Persists caller-provided strict JSON-native metadata alongside the workspace TuningResult without changing optimizer behavior; keys must be canonical strings and numeric values must be finite.",
      "surface": "nested_key",
      "token": "workspace_metadata",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Tuning workspace metadata",
        "order": 105
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "completed_tuning_result_replay",
      "changes": [
        "terminal_refit",
        "terminal_prediction_entry"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.resume",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.resume",
      "reads": [
        "workspace_tuning_results"
      ],
      "scope": "workspace_replay",
      "status": "partial",
      "summary": "Reuses an already completed matching workspace TuningResult in the public subset. It is not interrupted optimizer checkpoint resume.",
      "surface": "nested_key",
      "token": "resume",
      "ui": {
        "control": "select",
        "group": "tuning",
        "label": "Resume completed tuning",
        "order": 106
      },
      "value_schema": {
        "type": "boolean"
      }
    },
    {
      "aliases": [],
      "canonical_term": "conformal_workspace_identifier",
      "changes": [
        "workspace_conformal_results"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.tuning.calibration.workspace_conformal_id",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "storage",
      "path": "run.tuning.calibration.workspace_conformal_id",
      "reads": [],
      "scope": "workspace_persistence",
      "status": "partial",
      "summary": "Names the conformal workspace record produced by run(tuning).calibration; the top-level run(workspace_path=...) is inherited unless overridden in the calibration payload.",
      "surface": "nested_key",
      "token": "workspace_conformal_id",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Conformal workspace ID",
        "order": 107
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "calibration",
          "kind": "token",
          "mode": "read_only",
          "name": "tuning.calibration"
        }
      ],
      "canonical_term": "top_level_post_tuning_conformal_calibration",
      "changes": [
        "calibrator",
        "calibrated_result"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "run.calibration",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "run.calibration",
      "reads": [
        "terminal_prediction_entry",
        "prediction_outputs"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Top-level alias for run(tuning).calibration in the public DAG-ML tuning subset. It requires run(tuning=..., engine='dag-ml') and derives calibration_data from tuning.winner.",
      "surface": "run_argument",
      "token": "calibration",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Post-tuning calibration",
        "order": 108
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "conformal_calibration",
          "kind": "token",
          "mode": "read_only",
          "name": "conformal_score_calibration"
        }
      ],
      "canonical_term": "temporary_development_conformal_calibration",
      "changes": [
        "objective_scores",
        "trial_ranking"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.score_data.conformal_calibration",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.score_data.conformal_calibration",
      "reads": [
        "development_calibration",
        "objective_scoring"
      ],
      "scope": "objective_scoring",
      "status": "partial",
      "summary": "Provides an explicit development calibration cohort used only for conformal-aware objective scoring. It fits a temporary calibrator per candidate and never replaces the final run(calibration=...) result.",
      "surface": "nested_key",
      "token": "conformal_calibration",
      "ui": {
        "control": "dataset",
        "group": "tuning",
        "label": "Dev conformal scoring cohort",
        "order": 109
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "additionalProperties": true,
        "allOf": [
          {
            "oneOf": [
              {
                "required": [
                  "X"
                ]
              },
              {
                "required": [
                  "X_calibration"
                ]
              },
              {
                "required": [
                  "features"
                ]
              }
            ]
          },
          {
            "oneOf": [
              {
                "required": [
                  "y_true"
                ]
              },
              {
                "required": [
                  "y"
                ]
              },
              {
                "required": [
                  "y_calibration"
                ]
              },
              {
                "required": [
                  "target"
                ]
              },
              {
                "required": [
                  "targets"
                ]
              }
            ]
          }
        ],
        "properties": {
          "X": {},
          "X_calibration": {},
          "calibration_groups": {
            "type": "array"
          },
          "calibration_metadata": {
            "$ref": "#/$defs/json_native_metadata"
          },
          "calibration_sample_ids": {
            "type": "array"
          },
          "features": {},
          "groups": {
            "type": "array"
          },
          "metadata": {
            "$ref": "#/$defs/json_native_metadata"
          },
          "physical_sample_ids": {
            "type": "array"
          },
          "sample_ids": {
            "type": "array"
          },
          "target": {},
          "targets": {},
          "y": {},
          "y_calibration": {},
          "y_true": {}
        },
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "conformal_coverage",
          "kind": "token",
          "mode": "read_only",
          "name": "coverage"
        }
      ],
      "canonical_term": "temporary_development_conformal_coverage",
      "changes": [
        "objective_scores",
        "trial_ranking"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.score_data.conformal_coverage",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.score_data.conformal_coverage",
      "reads": [
        "development_calibration",
        "objective_scoring"
      ],
      "scope": "objective_scoring",
      "status": "partial",
      "summary": "Selects the nominal coverage for the temporary conformal scorer inside score_data. It requires score_data.conformal_calibration and affects only trial ranking, not the final run(calibration=...) result.",
      "surface": "nested_key",
      "token": "conformal_coverage",
      "ui": {
        "control": "number",
        "group": "tuning",
        "label": "Dev conformal score coverage",
        "order": 110
      },
      "value_schema": {
        "exclusiveMaximum": 1,
        "exclusiveMinimum": 0,
        "type": "number"
      }
    },
    {
      "aliases": [],
      "canonical_term": "continuation_training",
      "changes": [
        "predictor_weights"
      ],
      "docs_anchor": "continuation-training-retrain-finetune",
      "engine_support": {
        "dag-ml": "unsupported",
        "legacy": "partial"
      },
      "id": "retrain.mode.finetune",
      "invalidates_calibration": "always",
      "lifecycle_stage": "continuation",
      "path": "retrain.mode=finetune",
      "reads": [
        "existing_predictor",
        "new_training_data"
      ],
      "scope": "existing_predictor",
      "status": "partial",
      "summary": "Requests continuation from existing weights, never HPO. The public option exists, but weight continuation is not yet proven uniformly across model families.",
      "surface": "enum_value",
      "token": "finetune",
      "ui": {
        "control": "select",
        "group": "retraining",
        "label": "Continue model training",
        "order": 111
      },
      "value_schema": {
        "const": "finetune"
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibration_cohort",
      "changes": [
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data",
      "reads": [
        "calibration"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Exchangeable calibration cohort. The public API supports replayed-array mappings and explicit dataset-backed selectors, including DatasetConfigs/path sources, with replayed predictions, an in-memory predictor, a saved predictor bundle, a RunResult.best-like prediction entry, or a stored workspace chain plus physical sample ids.",
      "surface": "calibrate_argument",
      "token": "calibration_data",
      "ui": {
        "control": "dataset",
        "group": "calibration",
        "label": "Calibration dataset",
        "order": 121
      },
      "value_schema": {
        "oneOf": [
          {
            "type": "object"
          },
          {
            "type": "array"
          },
          {
            "type": "string"
          }
        ]
      }
    },
    {
      "aliases": [
        {
          "canonical": "dataset",
          "kind": "token",
          "mode": "read_only",
          "name": "spectro_dataset"
        }
      ],
      "canonical_term": "calibration_dataset_source",
      "changes": [
        "calibration_targets",
        "calibration_identity_source"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.dataset",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.dataset",
      "reads": [
        "calibration"
      ],
      "scope": "calibration_cohort",
      "status": "partial",
      "summary": "Selects explicit dataset-backed calibration evidence from a SpectroDataset, DatasetConfigs object, dataset config mapping, or config/path string. Replay sources include calibration_data.y_pred, predictor, predictor_bundle, predictor_result and predictor_chain_id.",
      "surface": "nested_key",
      "token": "dataset",
      "ui": {
        "control": "dataset",
        "group": "calibration",
        "label": "Calibration SpectroDataset",
        "order": 122
      },
      "value_schema": {
        "oneOf": [
          {
            "type": "object"
          },
          {
            "type": "string"
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibration_selector",
      "changes": [
        "calibration_rows"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.selector",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.selector",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_cohort",
      "status": "partial",
      "summary": "Filters the explicit dataset-backed calibration cohort with a strict JSON-native selector mapping. It is mandatory so nirs4all never guesses a calibration partition.",
      "surface": "nested_key",
      "token": "selector",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Calibration selector",
        "order": 123
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [
        {
          "canonical": "y_pred",
          "kind": "token",
          "mode": "read_only",
          "name": "y_pred_calibration"
        },
        {
          "canonical": "y_pred",
          "kind": "token",
          "mode": "read_only",
          "name": "calibration_predictions"
        }
      ],
      "canonical_term": "replayed_calibration_predictions",
      "changes": [
        "nonconformity_scores",
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.y_pred",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.y_pred",
      "reads": [
        "calibration_predictions"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Provides already replayed point predictions for the calibration cohort. It does not trigger model replay.",
      "surface": "nested_key",
      "token": "y_pred",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Calibration predictions",
        "order": 124
      },
      "value_schema": {
        "items": {
          "type": "number"
        },
        "minItems": 1,
        "type": "array"
      }
    },
    {
      "aliases": [
        {
          "canonical": "predictor",
          "kind": "token",
          "mode": "read_only",
          "name": "model"
        },
        {
          "canonical": "predictor",
          "kind": "token",
          "mode": "read_only",
          "name": "estimator"
        }
      ],
      "canonical_term": "in_memory_calibration_predictor",
      "changes": [
        "calibration_predictions",
        "nonconformity_scores",
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.predictor",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.predictor",
      "reads": [
        "calibration_features",
        "calibration_identities"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Replays an in-memory sklearn-like predictor on the selected dataset-backed calibration cohort. sample_ids/groups/metadata are forwarded when predict() accepts them; y_pred, predictor, predictor_bundle, predictor_result and predictor_chain_id are mutually exclusive.",
      "surface": "nested_key",
      "token": "predictor",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Calibration predictor",
        "order": 125
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "model_bundle"
        },
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "predictor_path"
        },
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "model_path"
        }
      ],
      "canonical_term": "saved_calibration_predictor",
      "changes": [
        "calibration_predictions",
        "nonconformity_scores",
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "partial"
      },
      "id": "calibrate.calibration_data.predictor_bundle",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.predictor_bundle",
      "reads": [
        "calibration_features",
        "calibration_identities",
        "saved_predictor"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Replays a saved predictor path through nirs4all.predict() on the selected dataset-backed calibration cohort. y_pred, predictor, predictor_bundle, predictor_result and predictor_chain_id are mutually exclusive.",
      "surface": "nested_key",
      "token": "predictor_bundle",
      "ui": {
        "control": "path",
        "group": "calibration",
        "label": "Calibration predictor bundle",
        "order": 126
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "predictor_result",
          "kind": "token",
          "mode": "read_only",
          "name": "run_result"
        },
        {
          "canonical": "predictor_result",
          "kind": "token",
          "mode": "read_only",
          "name": "prediction_entry"
        },
        {
          "canonical": "predictor_result",
          "kind": "token",
          "mode": "read_only",
          "name": "prediction"
        }
      ],
      "canonical_term": "run_result_calibration_predictor",
      "changes": [
        "calibration_predictions",
        "nonconformity_scores",
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "partial"
      },
      "id": "calibrate.calibration_data.predictor_result",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.predictor_result",
      "reads": [
        "calibration_features",
        "calibration_identities",
        "prediction_entry"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Replays a RunResult.best-like prediction entry through nirs4all.predict() on the selected dataset-backed calibration cohort. y_pred, predictor, predictor_bundle, predictor_result and predictor_chain_id are mutually exclusive.",
      "surface": "nested_key",
      "token": "predictor_result",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Calibration predictor result",
        "order": 127
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "predictor_chain_id",
          "kind": "token",
          "mode": "read_only",
          "name": "workspace_chain_id"
        }
      ],
      "canonical_term": "workspace_chain_calibration_predictor",
      "changes": [
        "calibration_predictions",
        "nonconformity_scores",
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "unsupported",
        "legacy": "partial"
      },
      "id": "calibrate.calibration_data.predictor_chain_id",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.predictor_chain_id",
      "reads": [
        "calibration_features",
        "calibration_identities",
        "workspace_chain"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Replays a stored workspace chain through nirs4all.predict(chain_id=...) on the selected dataset-backed calibration cohort. Requires calibration_data.workspace_path and is mutually exclusive with other calibration replay sources.",
      "surface": "nested_key",
      "token": "predictor_chain_id",
      "ui": {
        "control": "text",
        "group": "calibration",
        "label": "Calibration workspace chain",
        "order": 128
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibration_predictor_workspace_path",
      "changes": [
        "calibration_predictions"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "unsupported",
        "legacy": "partial"
      },
      "id": "calibrate.calibration_data.workspace_path",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.workspace_path",
      "reads": [
        "workspace"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Provides the explicit workspace root used by predictor_result or predictor_chain_id replay during dataset-backed calibration. It is not the conformal result persistence workspace.",
      "surface": "nested_key",
      "token": "workspace_path",
      "ui": {
        "control": "path",
        "group": "calibration",
        "label": "Predictor workspace path",
        "order": 129
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "sample_ids",
          "kind": "token",
          "mode": "read_only",
          "name": "calibration_sample_ids"
        },
        {
          "canonical": "sample_ids",
          "kind": "token",
          "mode": "read_only",
          "name": "prediction_sample_ids"
        },
        {
          "canonical": "sample_ids",
          "kind": "token",
          "mode": "read_only",
          "name": "physical_sample_ids"
        }
      ],
      "canonical_term": "calibration_physical_sample_ids",
      "changes": [
        "calibration_cohort_manifest",
        "coverage_claim_unit"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.sample_ids",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.sample_ids",
      "reads": [
        "calibration_identities"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Supplies explicit row-aligned physical sample ids for calibration. calibration_sample_ids and physical_sample_ids are accepted raw aliases; missing or duplicated ids remain fail-closed.",
      "surface": "nested_key",
      "token": "sample_ids",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Calibration sample IDs",
        "order": 130
      },
      "value_schema": {
        "items": {
          "minLength": 1,
          "type": "string"
        },
        "minItems": 1,
        "type": "array"
      }
    },
    {
      "aliases": [
        {
          "canonical": "groups",
          "kind": "token",
          "mode": "read_only",
          "name": "calibration_groups"
        }
      ],
      "canonical_term": "calibration_groups",
      "changes": [
        "calibration_cohort_manifest",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.groups",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.groups",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Supplies optional row-aligned group labels for raw replayed-array calibration_data mappings. group_by='group' consumes these labels for grouped conformal calibration; aliases are canonicalized exactly once and ambiguous payloads fail closed.",
      "surface": "nested_key",
      "token": "groups",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Calibration groups",
        "order": 131
      },
      "value_schema": {
        "items": {
          "minLength": 1,
          "type": "string"
        },
        "minItems": 1,
        "type": "array"
      }
    },
    {
      "aliases": [
        {
          "canonical": "metadata",
          "kind": "token",
          "mode": "read_only",
          "name": "calibration_metadata"
        }
      ],
      "canonical_term": "calibration_metadata",
      "changes": [
        "calibration_cohort_manifest",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.metadata",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.metadata",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Supplies optional row-aligned metadata for raw replayed-array calibration_data mappings. Metadata keys used by group_by select grouped conformal partitions; keys and JSON-native values remain fail-closed before publication.",
      "surface": "nested_key",
      "token": "metadata",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Calibration metadata",
        "order": 132
      },
      "value_schema": {
        "$ref": "#/$defs/json_native_metadata"
      }
    },
    {
      "aliases": [
        {
          "canonical": "sample_id_column",
          "kind": "token",
          "mode": "read_only",
          "name": "physical_sample_id_column"
        }
      ],
      "canonical_term": "calibration_physical_sample_id_column",
      "changes": [
        "calibration_cohort_manifest",
        "coverage_claim_unit"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.sample_id_column",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.sample_id_column",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Extracts physical sample ids from the selected SpectroDataset metadata column when sample_ids are not supplied directly.",
      "surface": "nested_key",
      "token": "sample_id_column",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Sample ID column",
        "order": 133
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibration_group_column",
      "changes": [
        "calibration_cohort_manifest"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.group_column",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.group_column",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Extracts optional row-aligned group labels into the calibration cohort manifest; it does not enable grouped conformal guarantees by itself.",
      "surface": "nested_key",
      "token": "group_column",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Group column",
        "order": 134
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibration_metadata_columns",
      "changes": [
        "calibration_cohort_manifest"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.calibration_data.metadata_columns",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.calibration_data.metadata_columns",
      "reads": [
        "calibration_metadata"
      ],
      "scope": "calibration_identity",
      "status": "partial",
      "summary": "Copies selected SpectroDataset metadata fields into the calibration cohort manifest for audit and diagnostics.",
      "surface": "nested_key",
      "token": "metadata_columns",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Metadata columns",
        "order": 135
      },
      "value_schema": {
        "oneOf": [
          {
            "minLength": 1,
            "type": "string"
          },
          {
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "conformal_method",
      "changes": [
        "calibrator"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.method",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.method",
      "reads": [
        "calibration_predictions",
        "calibration_targets"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Conformal score and interval construction method. V1 currently supports split absolute residuals on replayed regression predictions.",
      "surface": "calibrate_argument",
      "token": "method",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Conformal method",
        "order": 136
      },
      "value_schema": {
        "enum": [
          "split_absolute_residual"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "nominal_coverage",
      "changes": [
        "quantile",
        "prediction_bounds"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.coverage",
      "invalidates_calibration": "extends_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.coverage",
      "reads": [
        "calibration_scores"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Nominal coverage used to select the finite-sample conformal quantile; retained scores allow deterministic interval materialization for replayed-array calibration.",
      "surface": "calibrate_argument",
      "token": "coverage",
      "ui": {
        "control": "number",
        "group": "calibration",
        "label": "Nominal coverage",
        "order": 140
      },
      "value_schema": {
        "oneOf": [
          {
            "exclusiveMaximum": 1.0,
            "exclusiveMinimum": 0.0,
            "type": "number"
          },
          {
            "items": {
              "exclusiveMaximum": 1.0,
              "exclusiveMinimum": 0.0,
              "type": "number"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "exchangeability_unit",
      "changes": [
        "score_aggregation",
        "coverage_claim"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.unit",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.unit",
      "reads": [
        "calibration_relations",
        "calibration_identities"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "V1 exchangeability unit. The current public surface requires explicit physical sample ids for replayed-array calibration.",
      "surface": "calibrate_argument",
      "token": "unit",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Exchangeability unit",
        "order": 150
      },
      "value_schema": {
        "const": "physical_sample"
      }
    },
    {
      "aliases": [],
      "canonical_term": "ordered_search_space",
      "changes": [
        "parameter_patches",
        "candidate_predictors",
        "selection"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.space",
      "invalidates_calibration": "always",
      "lifecycle_stage": "search",
      "path": "run.tuning.space",
      "reads": [
        "development"
      ],
      "scope": "full_dag",
      "status": "partial",
      "summary": "Fixed-topology parameter search space. The public subset supports value patches on a single estimator; structural axes and full pipeline recompilation remain planned.",
      "surface": "nested_key",
      "token": "space",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Full-DAG search space",
        "order": 160
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "explicit_warm_start_trial",
      "changes": [
        "trial_sequence",
        "candidate_fit",
        "selection"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.force_params",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.force_params",
      "reads": [
        "development",
        "run.tuning.space"
      ],
      "scope": "full_dag",
      "status": "partial",
      "summary": "Enqueues a caller-provided parameter assignment as the first optimizer trial. Keys must be a subset of run.tuning.space; values use the public decoded syntax, not optimizer-internal categorical labels.",
      "surface": "nested_key",
      "token": "force_params",
      "ui": {
        "control": "object",
        "group": "tuning",
        "label": "Forced first HPO trial",
        "order": 165
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [],
      "canonical_term": "optimizer_seed",
      "changes": [
        "trial_sequence",
        "selected_predictor"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "n4m": "partial",
        "optuna": "partial"
      },
      "id": "run.tuning.seed",
      "invalidates_calibration": "if_predictor_changes",
      "lifecycle_stage": "search",
      "path": "run.tuning.seed",
      "reads": [],
      "scope": "full_dag",
      "status": "partial",
      "summary": "Seeds the HPO trajectory. A different seed invalidates calibration only when it changes the selected predictor.",
      "surface": "nested_key",
      "token": "seed",
      "ui": {
        "control": "number",
        "group": "tuning",
        "label": "HPO seed",
        "order": 170
      },
      "value_schema": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      }
    },
    {
      "aliases": [],
      "canonical_term": "mondrian_grouping",
      "changes": [
        "calibration_partitions",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.group_by",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.group_by",
      "reads": [
        "calibration_metadata",
        "prediction_groups",
        "prediction_metadata"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Executes grouped split-conformal calibration for the replayed-array substrate when group_by keys are present in calibration evidence and prediction rows provide matching prediction_groups or prediction_metadata. Unseen or missing prediction groups fail closed; report slices alone never create a grouped conformal guarantee.",
      "surface": "calibrate_argument",
      "token": "group_by",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Calibration groups",
        "order": 180
      },
      "value_schema": {
        "oneOf": [
          {
            "type": "null"
          },
          {
            "minLength": 1,
            "type": "string"
          },
          {
            "items": {
              "minLength": 1,
              "type": "string"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "prediction_group_values",
      "changes": [
        "selected_prediction_bounds",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.prediction_groups",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction",
      "path": "calibrate.prediction_groups",
      "reads": [
        "prediction_rows"
      ],
      "scope": "prediction",
      "status": "partial",
      "summary": "Row-aligned group labels for prediction rows when calibrate.group_by includes the reserved key 'group'. The labels must resolve to groups seen in calibration; missing or unseen labels fail closed without global fallback.",
      "surface": "calibrate_argument",
      "token": "prediction_groups",
      "ui": {
        "control": "array",
        "group": "calibration",
        "label": "Prediction groups",
        "order": 181
      },
      "value_schema": {
        "type": "array"
      }
    },
    {
      "aliases": [],
      "canonical_term": "prediction_group_metadata",
      "changes": [
        "selected_prediction_bounds",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.prediction_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction",
      "path": "calibrate.prediction_metadata",
      "reads": [
        "prediction_rows"
      ],
      "scope": "prediction",
      "status": "partial",
      "summary": "Row-aligned prediction metadata used to resolve non-'group' calibrate.group_by keys. Every key named by group_by must be present, non-null and JSON-compatible for every prediction row.",
      "surface": "calibrate_argument",
      "token": "prediction_metadata",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Prediction metadata",
        "order": 182
      },
      "value_schema": {
        "oneOf": [
          {
            "type": "object"
          },
          {
            "type": "array"
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "multi_target_policy",
      "changes": [
        "nonconformity_score",
        "prediction_region",
        "coverage_claim_scope"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.multi_target",
      "invalidates_calibration": "replaces_existing",
      "lifecycle_stage": "calibration",
      "path": "calibrate.multi_target",
      "reads": [
        "calibration_targets"
      ],
      "scope": "calibrator",
      "status": "partial",
      "summary": "Selects per-target marginal intervals or the replayed-array joint_max simultaneous region. joint_max requires two-dimensional y_true/y_pred arrays and uses max(abs residual) across targets per physical sample; changing it creates a different calibrator.",
      "surface": "calibrate_argument",
      "token": "multi_target",
      "ui": {
        "control": "select",
        "group": "calibration",
        "label": "Multi-target policy",
        "order": 190
      },
      "value_schema": {
        "enum": [
          "marginal",
          "joint_max"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibrated_result_metadata",
      "changes": [
        "calibrated_result_metadata",
        "calibrated_result_fingerprint"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "calibrate.result_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "calibration",
      "path": "calibrate.result_metadata",
      "reads": [
        "caller_metadata"
      ],
      "scope": "calibrated_result",
      "status": "partial",
      "summary": "Publishes caller-provided strict JSON-native metadata on the CalibratedRunResult before generated guarantee metadata is merged. It changes the calibrated result fingerprint but not the fitted conformal artifact or coverage guarantee.",
      "surface": "calibrate_argument",
      "token": "result_metadata",
      "ui": {
        "control": "object",
        "group": "calibration",
        "label": "Calibrated result metadata",
        "order": 191
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "calibrated_prediction_metadata",
      "changes": [
        "calibrated_result_metadata",
        "calibrated_result_fingerprint",
        "source_calibrated_result_fingerprint"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "predict_calibrated.result_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction",
      "path": "predict_calibrated.result_metadata",
      "reads": [
        "caller_metadata",
        "stored_calibrator"
      ],
      "scope": "calibrated_prediction",
      "status": "partial",
      "summary": "Publishes caller-provided strict JSON-native metadata when applying an existing calibrated result to new replayed predictions. Generated guarantee metadata and source fingerprints are added by nirs4all after validation.",
      "surface": "predict_calibrated_argument",
      "token": "result_metadata",
      "ui": {
        "control": "object",
        "group": "prediction",
        "label": "Predict calibrated metadata",
        "order": 192
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "requested_coverage",
      "changes": [
        "selected_prediction_bounds"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "predict.coverage",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction",
      "path": "predict.coverage",
      "reads": [
        "stored_calibration_quantiles"
      ],
      "scope": "prediction",
      "status": "partial",
      "summary": "Selects already materialized calibrated coverages at prediction time for calibrated replayed-array results/stores/bundles and model .n4a bundles with a conformal sidecar; requesting a valid but non-materialized coverage fails closed with the available coverages, and an invalid conformal sidecar fails validation instead of falling back to uncalibrated prediction. Full native predictor replay remains planned.",
      "surface": "predict_argument",
      "token": "coverage",
      "ui": {
        "control": "number",
        "group": "prediction",
        "label": "Prediction coverage",
        "order": 200
      },
      "value_schema": {
        "oneOf": [
          {
            "exclusiveMaximum": 1.0,
            "exclusiveMinimum": 0.0,
            "type": "number"
          },
          {
            "items": {
              "exclusiveMaximum": 1.0,
              "exclusiveMinimum": 0.0,
              "type": "number"
            },
            "minItems": 1,
            "type": "array",
            "uniqueItems": true
          }
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "prediction_entry_selection",
      "changes": [
        "prediction_entries"
      ],
      "docs_anchor": "planned-conformal-calibration",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "predict.all_predictions",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction",
      "path": "predict.all_predictions",
      "reads": [
        "model_bundle",
        "stored_calibration_quantiles"
      ],
      "scope": "prediction",
      "status": "partial",
      "summary": "Requests all model prediction entries instead of the selected prediction. For model .n4a bundles with a conformal sidecar and coverage=..., all_predictions=True remains fail-closed until each entry carries calibrated identity mapping.",
      "surface": "predict_argument",
      "token": "all_predictions",
      "ui": {
        "control": "select",
        "group": "prediction",
        "label": "All prediction entries",
        "order": 201
      },
      "value_schema": {
        "type": "boolean"
      }
    },
    {
      "aliases": [],
      "canonical_term": "workspace_prediction_publisher",
      "changes": [
        "workspace_prediction_rows",
        "prediction_arrays",
        "result_metadata",
        "workspace_prediction_id"
      ],
      "docs_anchor": "workspace-prediction-bridge",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "predict.save_to_workspace",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction_storage",
      "path": "predict.save_to_workspace",
      "reads": [
        "prediction_result",
        "prediction_input_X"
      ],
      "scope": "prediction_publishing",
      "status": "partial",
      "summary": "Publishes the returned PredictResult through the workspace prediction store, including y_pred, sample ids, model metadata, executable X/spectra when available from data, and result metadata. It does not persist conformal artifacts or renew guarantees; use save_workspace_calibrated_result for calibrated results.",
      "surface": "predict_argument",
      "token": "save_to_workspace",
      "ui": {
        "control": "select",
        "group": "prediction",
        "label": "Save prediction to workspace",
        "order": 202
      },
      "value_schema": {
        "type": "boolean"
      }
    },
    {
      "aliases": [],
      "canonical_term": "workspace_prediction_sample_metadata",
      "changes": [
        "prediction_sample_metadata"
      ],
      "docs_anchor": "workspace-prediction-bridge",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "predict.workspace_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction_storage",
      "path": "predict.workspace_metadata",
      "reads": [
        "caller_metadata"
      ],
      "scope": "prediction_publishing",
      "status": "partial",
      "summary": "Stores caller-provided strict JSON-native sample-level metadata alongside the workspace prediction sidecar when predict.save_to_workspace is true. It affects workspace diagnostics and Studio display only, not predictions or conformal guarantees.",
      "surface": "predict_argument",
      "token": "workspace_metadata",
      "ui": {
        "control": "object",
        "group": "prediction",
        "label": "Prediction sample metadata",
        "order": 203
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "workspace_prediction_result_metadata",
      "changes": [
        "result_metadata",
        "robustness_evidence"
      ],
      "docs_anchor": "workspace-prediction-bridge",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "supported"
      },
      "id": "predict.workspace_result_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "prediction_storage",
      "path": "predict.workspace_result_metadata",
      "reads": [
        "caller_metadata",
        "prediction_result_metadata"
      ],
      "scope": "prediction_publishing",
      "status": "partial",
      "summary": "Merges caller-provided strict JSON-native result-level metadata into the workspace prediction row when predict.save_to_workspace is true. This is the supported place to publish robustness_evidence such as predictor_bundle for later spectral/OOD replay; provenance-only markers are not treated as executable arrays.",
      "surface": "predict_argument",
      "token": "workspace_result_metadata",
      "ui": {
        "control": "object",
        "group": "prediction",
        "label": "Prediction result metadata",
        "order": 204
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_reuse_policy",
      "changes": [
        "robustness_report"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.mode",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.mode",
      "reads": [
        "external_test_or_production"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Selects the robustness reuse policy. The current public API supports clean_frozen audit-only reports on already replayed predictions; matched_recalibration and structural_refit remain planned.",
      "surface": "robustness_argument",
      "token": "mode",
      "ui": {
        "control": "select",
        "group": "robustness",
        "label": "Robustness mode",
        "order": 210
      },
      "value_schema": {
        "enum": [
          "clean_frozen",
          "matched_recalibration",
          "structural_refit"
        ],
        "type": "string",
        "x-executable-values": [
          "clean_frozen"
        ]
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_scenarios",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.scenarios",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.scenarios",
      "reads": [
        "external_test_or_production"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Defines report cells for robustness diagnostics. The current public API accepts RobustnessScenarioSpec helpers or equivalent TCV1 JSON-native mappings for observed severity 0.0, deterministic prediction_bias, seeded prediction_noise, explicit-X spectral_noise, deterministic explicit-X spectral_offset, deterministic explicit-X spectral_scale, deterministic explicit-X spectral_slope, and deterministic explicit-X spectral_shift scenarios. Spectral scenarios require robustness.X plus either robustness.predictor or robustness.predictor_bundle; broader spectral perturbations remain planned.",
      "surface": "robustness_argument",
      "token": "scenarios",
      "ui": {
        "control": "array",
        "group": "robustness",
        "label": "Robustness scenarios",
        "order": 220
      },
      "value_schema": {
        "items": {
          "additionalProperties": true,
          "allOf": [
            {
              "else": {
                "not": {
                  "required": [
                    "distribution"
                  ]
                }
              },
              "if": {
                "properties": {
                  "kind": {
                    "enum": [
                      "prediction_noise",
                      "spectral_noise"
                    ]
                  }
                },
                "required": [
                  "kind"
                ]
              },
              "then": {}
            }
          ],
          "properties": {
            "distribution": {
              "enum": [
                "normal",
                "uniform"
              ],
              "type": "string"
            },
            "kind": {
              "enum": [
                "observed",
                "prediction_bias",
                "prediction_noise",
                "spectral_noise",
                "spectral_offset",
                "spectral_scale",
                "spectral_slope",
                "spectral_shift"
              ],
              "type": "string"
            },
            "severity": {
              "type": "number"
            }
          },
          "required": [
            "kind"
          ],
          "type": "object",
          "x-tcv1-json-native": true
        },
        "minItems": 1,
        "type": "array"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_scenario_kind",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.scenarios.kind",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.scenarios[].kind",
      "reads": [
        "external_test_or_production"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Selects the audit-only scenario cell. observed leaves predictions unchanged, prediction_bias shifts already materialized predictions, prediction_noise adds seeded post-prediction noise, spectral_noise replays an explicit frozen predictor or predictor_bundle on noisy X, spectral_offset replays it on X shifted by a deterministic additive offset, spectral_scale replays it on X scaled by 1.0 + severity, spectral_slope replays it on X plus a centered linear feature ramp, and spectral_shift replays it on a feature-axis shifted X interpolation.",
      "surface": "nested_key",
      "token": "kind",
      "ui": {
        "control": "select",
        "group": "robustness",
        "label": "Robustness scenario kind",
        "order": 221
      },
      "value_schema": {
        "enum": [
          "observed",
          "prediction_bias",
          "prediction_noise",
          "spectral_noise",
          "spectral_offset",
          "spectral_scale",
          "spectral_slope",
          "spectral_shift"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_scenario_severity",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.scenarios.severity",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.scenarios[].severity",
      "reads": [],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Controls the scenario magnitude: observed requires 0.0, prediction_bias uses it as a prediction additive offset, prediction_noise/spectral_noise use it as the normal-noise standard deviation or the uniform-noise half-width, spectral_offset uses it as an additive offset applied to every X feature, spectral_scale uses 1.0 + severity as a multiplicative factor for every X feature, spectral_slope uses it as the total centered linear ramp amplitude across the feature axis, and spectral_shift uses it as a fractional feature-axis shift.",
      "surface": "nested_key",
      "token": "severity",
      "ui": {
        "control": "number",
        "group": "robustness",
        "label": "Robustness severity",
        "order": 222
      },
      "value_schema": {
        "type": "number"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_scenario_distribution",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.scenarios.distribution",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.scenarios[].distribution",
      "reads": [],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Selects the stochastic scenario distribution. The current executable subset accepts distribution only for prediction_noise and spectral_noise, with normal noise and centered uniform noise supported fail-closed.",
      "surface": "nested_key",
      "token": "distribution",
      "ui": {
        "control": "select",
        "group": "robustness",
        "label": "Robustness distribution",
        "order": 223
      },
      "value_schema": {
        "enum": [
          "normal",
          "uniform"
        ],
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_input_matrix",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.X",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.X",
      "reads": [
        "external_test_or_production"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Supplies the explicit input matrix used by spectral scenarios. It is never fitted on; it is perturbed for evaluation-only frozen predictor or predictor_bundle replay.",
      "surface": "robustness_argument",
      "token": "X",
      "ui": {
        "control": "array",
        "group": "robustness",
        "label": "Robustness X",
        "order": 224
      },
      "value_schema": {
        "type": "array"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_frozen_predictor",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.predictor",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.predictor",
      "reads": [
        "frozen_predictor"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Frozen predictor replay hook for spectral scenarios. The current Python surface accepts predictor.predict(X) or a callable and does not refit or recalibrate it. It is mutually exclusive with robustness.predictor_bundle.",
      "surface": "robustness_argument",
      "token": "predictor",
      "ui": {
        "control": "object",
        "group": "robustness",
        "label": "Robustness predictor",
        "order": 225
      },
      "value_schema": {
        "type": "object"
      }
    },
    {
      "aliases": [
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "model_bundle"
        },
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "predictor_path"
        },
        {
          "canonical": "predictor_bundle",
          "kind": "token",
          "mode": "read_only",
          "name": "model_path"
        }
      ],
      "canonical_term": "robustness_frozen_predictor_bundle",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.predictor_bundle",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.predictor_bundle",
      "reads": [
        "frozen_predictor_bundle"
      ],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Saved predictor path replay hook for spectral scenarios. The current Python surface routes perturbed X through public nirs4all.predict(model=predictor_bundle, data={\"X\": X, \"sample_ids\": ...}, all_predictions=False), then recenters existing intervals by the prediction delta without refit or recalibration. It is mutually exclusive with robustness.predictor.",
      "surface": "robustness_argument",
      "token": "predictor_bundle",
      "ui": {
        "control": "path",
        "group": "robustness",
        "label": "Robustness predictor bundle",
        "order": 226
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "diagnostic_slices",
      "changes": [
        "reported_metrics"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.slice_by",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "reporting",
      "path": "robustness.slice_by",
      "reads": [
        "external_metadata"
      ],
      "scope": "robustness_report",
      "status": "partial",
      "summary": "Adds diagnostic report slices over supplied metadata. A sliced empirical coverage is not a conditional conformal guarantee unless a separate valid grouped calibrator supports it.",
      "surface": "robustness_argument",
      "token": "slice_by",
      "ui": {
        "control": "array",
        "group": "robustness",
        "label": "Diagnostic slices",
        "order": 230
      },
      "value_schema": {
        "items": {
          "minLength": 1,
          "type": "string"
        },
        "type": "array",
        "uniqueItems": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_rng_seed",
      "changes": [
        "robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.seed",
      "invalidates_calibration": "mode_dependent",
      "lifecycle_stage": "robustness",
      "path": "robustness.seed",
      "reads": [],
      "scope": "robustness_campaign",
      "status": "partial",
      "summary": "Controls reproducible audit-only stochastic post-prediction scenarios such as prediction_noise. It does not change a frozen predictor or calibrator; omitted seeds use effective_seed=0 for deterministic reports.",
      "surface": "robustness_argument",
      "token": "seed",
      "ui": {
        "control": "number",
        "group": "robustness",
        "label": "Robustness seed",
        "order": 240
      },
      "value_schema": {
        "maximum": 9007199254740991,
        "minimum": 0,
        "type": "integer"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_workspace_path",
      "changes": [
        "workspace_robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.workspace_path",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "reporting",
      "path": "robustness.workspace_path",
      "reads": [
        "workspace_store"
      ],
      "scope": "robustness_report",
      "status": "partial",
      "summary": "Persists the verified RobustnessReport in the workspace robustness_results table after the audit is computed. This does not change metrics, fingerprints, predictions, or conformal guarantees.",
      "surface": "robustness_argument",
      "token": "workspace_path",
      "ui": {
        "control": "path",
        "group": "robustness",
        "label": "Robustness workspace",
        "order": 250
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [
        {
          "canonical": "workspace_robustness_id",
          "kind": "token",
          "mode": "read_only",
          "name": "robustness_id"
        }
      ],
      "canonical_term": "robustness_workspace_id",
      "changes": [
        "workspace_robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.workspace_robustness_id",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "reporting",
      "path": "robustness.workspace_robustness_id",
      "reads": [],
      "scope": "robustness_report",
      "status": "partial",
      "summary": "Stable id for the workspace robustness_results row produced by robustness(workspace_path=...). If omitted, the store generates an id that is not injected into the report fingerprint.",
      "surface": "robustness_argument",
      "token": "workspace_robustness_id",
      "ui": {
        "control": "text",
        "group": "robustness",
        "label": "Robustness report id",
        "order": 251
      },
      "value_schema": {
        "minLength": 1,
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_workspace_name",
      "changes": [
        "workspace_robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.workspace_name",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "reporting",
      "path": "robustness.workspace_name",
      "reads": [],
      "scope": "robustness_report",
      "status": "partial",
      "summary": "Human-readable workspace label for a persisted robustness report. It affects only workspace inventory and does not enter the report fingerprint.",
      "surface": "robustness_argument",
      "token": "workspace_name",
      "ui": {
        "control": "text",
        "group": "robustness",
        "label": "Robustness report name",
        "order": 252
      },
      "value_schema": {
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "robustness_workspace_metadata",
      "changes": [
        "workspace_robustness_results"
      ],
      "docs_anchor": "planned-robustness-campaigns",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported"
      },
      "id": "robustness.workspace_metadata",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "reporting",
      "path": "robustness.workspace_metadata",
      "reads": [],
      "scope": "robustness_report",
      "status": "partial",
      "summary": "Strict JSON-native workspace metadata stored alongside the robustness report row for CI/Studio indexing. Keys must be canonical strings, numeric values must be finite, and it does not enter the report fingerprint.",
      "surface": "robustness_argument",
      "token": "workspace_metadata",
      "ui": {
        "control": "object",
        "group": "robustness",
        "label": "Robustness workspace metadata",
        "order": 253
      },
      "value_schema": {
        "$defs": {
          "canonical_string_key": {
            "minLength": 1,
            "pattern": "^(?!\\s)(?!.*\\s$)(?!.*\\u0000).+$",
            "type": "string"
          },
          "json_native_mapping": {
            "additionalProperties": {
              "$ref": "#/$defs/json_native_value"
            },
            "propertyNames": {
              "$ref": "#/$defs/canonical_string_key"
            },
            "type": "object",
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_metadata": {
            "oneOf": [
              {
                "$ref": "#/$defs/json_native_mapping"
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_mapping"
                },
                "type": "array"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          },
          "json_native_value": {
            "oneOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              },
              {
                "type": "boolean"
              },
              {
                "type": "number",
                "x-nirs4all-finite-number": true
              },
              {
                "items": {
                  "$ref": "#/$defs/json_native_value"
                },
                "type": "array"
              },
              {
                "additionalProperties": {
                  "$ref": "#/$defs/json_native_value"
                },
                "propertyNames": {
                  "$ref": "#/$defs/canonical_string_key"
                },
                "type": "object"
              }
            ],
            "x-nirs4all-finite-numbers": true,
            "x-nirs4all-json-native": true
          }
        },
        "$ref": "#/$defs/json_native_mapping",
        "x-nirs4all-finite-numbers": true,
        "x-nirs4all-json-native": true
      }
    },
    {
      "aliases": [],
      "canonical_term": "optimizer_storage_uri",
      "changes": [
        "optimizer_state"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.storage",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "storage",
      "path": "run.tuning.storage",
      "reads": [
        "optimizer_state"
      ],
      "scope": "optimizer_persistence",
      "status": "partial",
      "summary": "Optimizer-state storage URI. Optuna uses study storage such as sqlite:///study.db; n4m supports file:///absolute/checkpoint-dir for local N4MOPT checkpoint manifests in the shared PipelineObjective subset. Bare paths are rejected.",
      "surface": "nested_key",
      "token": "storage",
      "ui": {
        "control": "text",
        "group": "tuning",
        "label": "Optimizer storage URI",
        "order": 254
      },
      "value_schema": {
        "minLength": 1,
        "pattern": "^[A-Za-z][A-Za-z0-9+.-]*://",
        "type": "string"
      }
    },
    {
      "aliases": [],
      "canonical_term": "optimizer_study_name",
      "changes": [
        "optimizer_state"
      ],
      "docs_anchor": "planned-full-dag-tuning",
      "engine_support": {
        "dag-ml": "partial",
        "legacy": "unsupported",
        "n4m": "partial",
        "optuna": "supported"
      },
      "id": "run.tuning.study_name",
      "invalidates_calibration": "not_applicable",
      "lifecycle_stage": "storage",
      "path": "run.tuning.study_name",
      "reads": [
        "optimizer_state"
      ],
      "scope": "optimizer_persistence",
      "status": "partial",
      "summary": "Optuna study name or n4m local checkpoint filename stem. Whitespace is trimmed and NUL characters are rejected; n4m additionally requires a filename-safe value.",
      "surface": "nested_key",
      "token": "study_name",
      "ui": {
        "control": "text",
        "group": "tuning",
        "label": "Optimizer study name",
        "order": 255
      },
      "value_schema": {
        "minLength": 1,
        "pattern": "^[^\\u0000]+$",
        "type": "string"
      }
    }
  ],
  "registry_version": "1.0.3",
  "schema_id": "https://nirs4all.org/schemas/keyword-effects/v1",
  "schema_version": 1,
  "scope": "lifecycle-v1"
}
