{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/mmerterden/multi-agent-pipeline/pipeline/schemas/token-budget.schema.json",
  "title": "Phase token ceilings",
  "description": "token-budget.json: the per-phase and total token ceilings smoke-token-budget.sh holds the phase documents to.",
  "type": "object",
  "additionalProperties": false,
  "required": ["phases", "total_max_tokens"],
  "properties": {
    "$schema": { "type": "string" },
    "$id": { "type": "string" },
    "description": { "type": "string" },
    "phases": {
      "type": "object",
      "minProperties": 1,
      "propertyNames": { "pattern": "^phase-[0-9]+-[a-z-]+$" },
      "additionalProperties": {
        "type": "object",
        "additionalProperties": false,
        "required": ["max_tokens"],
        "properties": { "max_tokens": { "type": "integer", "minimum": 1 } }
      }
    },
    "total_max_tokens": { "type": "integer", "minimum": 1 }
  }
}
