{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "anu_v3/schemas/goal_type_profile_mapping.schema.json",
  "title": "goal_type -> policy_profile mapping (task-2553+52 / Track 3)",
  "description": "Static meta-schema for the DEFAULT dispatch-planning mapping table. The chair supplies only goal_type + boundary on the default path; this table is the single deterministic lookup that yields the policy_profile name the C1 engine (anu_v3.policy_profile_engine) then loads read-only. Additive bootstrap — existing profiles/anchors unchanged. Validated by the engine's offline draft-07 subset validator (validate_against_meta); per-entry shape is re-checked in code (fail-closed).",
  "type": "object",
  "required": ["schema_id", "version", "default_path", "mappings"],
  "additionalProperties": true,
  "properties": {
    "schema_id": { "type": "string", "minLength": 1 },
    "version": { "type": "string", "pattern": "^v[0-9]+$" },
    "task_id": { "type": "string" },
    "default_path": {
      "type": "boolean",
      "description": "true => this table is the default dispatch-planning resolution source (goal_type + boundary only)."
    },
    "resolution_semantics": { "type": "string" },
    "mappings": {
      "type": "object",
      "description": "goal_type -> single deterministic profile entry. ANY goal_type absent here is UNKNOWN => fail-closed (no guessing). additionalProperties:true so new goal_types validate; per-entry required keys are enforced in code.",
      "additionalProperties": true
    }
  }
}
