{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://docs.caracal.run/schemas/caracal-resource-verifier-manifest-2026-05-21.schema.json",
  "title": "Caracal Resource Verifier Manifest",
  "description": "Offline compatibility metadata for resource verifier middleware, libraries, and sidecars.",
  "type": "object",
  "required": ["schema_version", "name", "version", "languages", "claim_profile", "revocation", "w3c_context", "audit", "conformance"],
  "properties": {
    "schema_version": {
      "const": "2026-05-21"
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "version": {
      "type": "string",
      "minLength": 1
    },
    "languages": {
      "type": "array",
      "items": {
        "enum": ["typescript", "go", "python", "java", "rust", "other"]
      },
      "minItems": 1,
      "uniqueItems": true
    },
    "claim_profile": {
      "type": "object",
      "required": ["jwt_claim_schema_version", "requires_audience", "requires_target", "requires_scope", "requires_use_resource"],
      "properties": {
        "jwt_claim_schema_version": {
          "const": "2026-05-21"
        },
        "requires_audience": {
          "type": "boolean"
        },
        "requires_target": {
          "type": "boolean"
        },
        "requires_scope": {
          "type": "boolean"
        },
        "requires_use_resource": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "revocation": {
      "type": "object",
      "required": ["supported", "anchors"],
      "properties": {
        "supported": {
          "type": "boolean"
        },
        "anchors": {
          "description": "Supported raw revocation anchors: sid is an Authority record ID, root_sid is a Root authority record ID, agent_session_id is a Session ID, and delegation_edge_id is a Delegation ID.",
          "type": "array",
          "items": {
            "enum": ["sid", "root_sid", "agent_session_id", "delegation_edge_id"]
          },
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    },
    "w3c_context": {
      "type": "object",
      "required": ["trace_context", "baggage"],
      "properties": {
        "trace_context": {
          "type": "boolean"
        },
        "baggage": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "audit": {
      "type": "object",
      "required": ["action_result_emitter"],
      "properties": {
        "action_result_emitter": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "conformance": {
      "type": "object",
      "required": ["fixtures"],
      "properties": {
        "fixtures": {
          "type": "array",
          "items": {
            "type": "string",
            "minLength": 1
          },
          "minItems": 1,
          "uniqueItems": true
        }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
