{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usedeed.app/contracts/deed.proof_card.onchain_revocation_request.v1.schema.json",
  "title": "DEED proof-card on-chain revocation request v1",
  "type": "object",
  "required": [
    "schema",
    "adr",
    "generatedAt",
    "status",
    "card",
    "registrySource",
    "deploymentRequest",
    "readRequest",
    "postDeploymentCommands",
    "standaloneVerifier",
    "custodyBoundary",
    "promotionBoundary"
  ],
  "properties": {
    "schema": { "const": "https://usedeed.app/contracts/deed.proof_card.onchain_revocation_request.v1.schema.json" },
    "adr": { "const": "ADR-197" },
    "generatedAt": { "type": "string", "format": "date-time" },
    "status": { "type": "string", "minLength": 1 },
    "card": { "type": "object" },
    "registrySource": { "type": "object" },
    "deploymentRequest": { "type": "object" },
    "readRequest": {
      "type": "object",
      "required": ["method", "selector", "cardIdHash", "callData", "requiredRpcMethods", "requiredFinality", "expectedPromotionRead"],
      "properties": {
        "method": { "const": "isRevoked(bytes32)" },
        "selector": { "const": "0x4294857f" },
        "cardIdHash": { "type": "string", "pattern": "^0x[0-9a-f]{64}$" },
        "callData": { "type": "string", "pattern": "^0x[0-9a-f]+$" },
        "requiredRpcMethods": { "type": "array", "minItems": 4, "uniqueItems": true },
        "requiredFinality": { "type": "object" },
        "expectedPromotionRead": { "type": "object" }
      },
      "additionalProperties": false
    },
    "postDeploymentCommands": { "type": "object" },
    "standaloneVerifier": { "type": "object" },
    "custodyBoundary": { "type": "string", "minLength": 1 },
    "promotionBoundary": { "type": "string", "minLength": 1 }
  },
  "additionalProperties": false
}
