{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://www.aomsites.com/schemas/guide.schema.json",
  "title": "Agent Optimization proposed worksheet",
  "type": "object",
  "required": [
    "id",
    "title",
    "version",
    "decision",
    "fit",
    "skip",
    "steps",
    "acceptance",
    "stop",
    "limits",
    "authorization",
    "runtime_tests_performed",
    "evidence_plan",
    "evidence_plan_note"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "version": {
      "type": "string"
    },
    "decision": {
      "type": "string"
    },
    "fit": {
      "type": "string"
    },
    "skip": {
      "type": "string"
    },
    "steps": {
      "type": "array",
      "items": {
        "type": "array",
        "prefixItems": [
          {
            "type": "string"
          },
          {
            "type": "string"
          }
        ],
        "minItems": 2,
        "maxItems": 2
      }
    },
    "acceptance": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1
    },
    "stop": {
      "type": "string"
    },
    "limits": {
      "type": "string"
    },
    "authorization": {
      "type": "string"
    },
    "runtime_tests_performed": {
      "const": false
    },
    "evidence_plan_note": {
      "type": "string",
      "minLength": 1,
      "description": "Planning limits. Not observed evidence or authority."
    },
    "evidence_plan": {
      "type": "array",
      "minItems": 1,
      "description": "Proposed evidence to collect; each item maps to a one-based acceptance index. Not task results.",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "acceptance_check",
          "collect",
          "not_enough"
        ],
        "properties": {
          "acceptance_check": {
            "type": "integer",
            "minimum": 1
          },
          "collect": {
            "type": "string",
            "minLength": 1
          },
          "not_enough": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    }
  },
  "additionalProperties": true
}
