{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "schemaVersion": {
      "type": "number",
      "const": 1
    },
    "historyMeaning": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1000
    },
    "binding": {
      "type": "object",
      "properties": {
        "workspaceId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "projectId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "watchId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "occurrenceId": {
          "type": "string",
          "pattern": "^sha256:[a-f0-9]{64}$"
        },
        "captureId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        },
        "evidenceHash": {
          "type": "string",
          "pattern": "^sha256:[a-f0-9]{64}$"
        }
      },
      "required": [
        "workspaceId",
        "projectId",
        "watchId",
        "occurrenceId",
        "captureId",
        "evidenceHash"
      ],
      "additionalProperties": false
    },
    "asOfRevision": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9007199254740991
    },
    "readAt": {
      "type": "string",
      "format": "date-time",
      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
    },
    "items": {
      "maxItems": 50,
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 240,
            "description": "Resource identifier returned by the operation."
          },
          "kind": {
            "type": "string",
            "enum": [
              "model_receipt",
              "correction",
              "revocation",
              "concern"
            ]
          },
          "revision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991,
            "description": "Optimistic concurrency revision; supply it as expectedRevision on the next write."
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "recordedAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"
          },
          "actorId": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "axis": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "page_surface",
                  "link_role",
                  "region_inferred",
                  "relevance",
                  "risk_cues",
                  "acquisition"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "value": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              {
                "type": "null"
              }
            ]
          },
          "state": {
            "anyOf": [
              {
                "type": "string",
                "enum": [
                  "accepted_manual",
                  "accepted_auto",
                  "suggested",
                  "superseded",
                  "insufficient_evidence",
                  "not_evaluated"
                ],
                "description": "Saved lifecycle or evidence state, as enumerated for this record."
              },
              {
                "type": "null"
              }
            ],
            "description": "Saved lifecycle or evidence state, as enumerated for this record."
          },
          "reason": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 500,
                "description": "Recorded explanation; null when no explanation applies."
              },
              {
                "type": "null"
              }
            ],
            "description": "Recorded explanation; null when no explanation applies."
          },
          "receiptId": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              {
                "type": "null"
              }
            ]
          },
          "axes": {
            "minItems": 1,
            "maxItems": 6,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "axis": {
                  "type": "string",
                  "enum": [
                    "page_surface",
                    "link_role",
                    "region_inferred",
                    "relevance",
                    "risk_cues",
                    "acquisition"
                  ]
                },
                "value": {
                  "anyOf": [
                    {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "state": {
                  "type": "string",
                  "enum": [
                    "accepted_manual",
                    "accepted_auto",
                    "suggested",
                    "superseded",
                    "insufficient_evidence",
                    "not_evaluated"
                  ],
                  "description": "Saved lifecycle or evidence state, as enumerated for this record."
                },
                "basis": {
                  "type": "string",
                  "enum": [
                    "model",
                    "rule",
                    "manual",
                    "attributed"
                  ]
                }
              },
              "required": [
                "axis",
                "value",
                "state",
                "basis"
              ],
              "additionalProperties": false
            }
          },
          "policy": {
            "type": "object",
            "properties": {
              "taxonomyVersion": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "rubricVersion": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "extractorVersion": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "privacyRevision": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              }
            },
            "required": [
              "taxonomyVersion",
              "rubricVersion",
              "extractorVersion",
              "privacyRevision"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "kind",
          "revision",
          "occurredAt",
          "recordedAt",
          "actorId",
          "axis",
          "value",
          "state",
          "reason",
          "receiptId"
        ],
        "additionalProperties": false,
        "description": "Records in this bounded page."
      },
      "description": "Records in this bounded page."
    },
    "nextCursor": {
      "anyOf": [
        {
          "type": "string",
          "minLength": 1,
          "maxLength": 2048
        },
        {
          "type": "null"
        }
      ]
    },
    "hasMore": {
      "type": "boolean"
    },
    "coverage": {
      "type": "object",
      "properties": {
        "status": {
          "type": "string",
          "enum": [
            "retained",
            "expired",
            "unavailable"
          ],
          "description": "Resource lifecycle status."
        },
        "reason": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "description": "Recorded explanation; null when no explanation applies."
        },
        "meaning": {
          "type": "string",
          "minLength": 1,
          "maxLength": 1000
        }
      },
      "required": [
        "status",
        "reason",
        "meaning"
      ],
      "additionalProperties": false,
      "description": "Dataset scope and completeness, including limits on what these results establish."
    }
  },
  "required": [
    "schemaVersion",
    "historyMeaning",
    "binding",
    "asOfRevision",
    "readAt",
    "items",
    "nextCursor",
    "hasMore",
    "coverage"
  ],
  "additionalProperties": false
}
