{
  "title": "Ax0s public capability matrix",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schema_version",
    "canonical_page",
    "reviewed_on",
    "evidence_note",
    "rows"
  ],
  "properties": {
    "schema_version": {
      "const": 1
    },
    "canonical_page": {
      "const": "/capabilities/"
    },
    "reviewed_on": {
      "type": "string",
      "format": "date"
    },
    "evidence_note": {
      "type": "string",
      "minLength": 1
    },
    "rows": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "capability",
          "lifecycle_state",
          "verified_scope",
          "evidence_link",
          "evidence_status",
          "last_reviewed",
          "known_limitation",
          "consequence",
          "safe_workaround",
          "next_validation_gate"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^cap-[a-z0-9-]+$"
          },
          "capability": {
            "type": "string",
            "minLength": 1
          },
          "lifecycle_state": {
            "enum": [
              "Implemented",
              "Shipped",
              "Experimental",
              "Roadmap",
              "Unsupported",
              "Disconfirmed",
              "Not yet verified"
            ]
          },
          "verified_scope": {
            "type": "string",
            "minLength": 1
          },
          "evidence_link": {
            "type": "string",
            "pattern": "^/"
          },
          "evidence_status": {
            "oneOf": [
              {
                "enum": [
                  "Method published",
                  "Re-run pending",
                  "Internal dogfood",
                  "In build",
                  "Direction",
                  "Experimental",
                  "Roadmap",
                  "Disconfirmed",
                  "Superseded"
                ]
              },
              {
                "type": "string",
                "pattern": "^Verified [0-9]{4}-[0-9]{2}-[0-9]{2}$"
              }
            ]
          },
          "last_reviewed": {
            "type": "string",
            "format": "date"
          },
          "known_limitation": {
            "type": "string",
            "minLength": 1
          },
          "consequence": {
            "type": "string",
            "minLength": 1
          },
          "safe_workaround": {
            "type": "string",
            "minLength": 1
          },
          "next_validation_gate": {
            "type": "string",
            "minLength": 1
          }
        }
      }
    }
  }
}
