{
  "additionalProperties": false,
  "properties": {
    "checks": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "code": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "detail": {
            "maxLength": 512,
            "minLength": 0,
            "type": "string"
          },
          "id": {
            "maxLength": 96,
            "minLength": 1,
            "type": "string"
          },
          "verdict": {
            "enum": [
              "PASS",
              "FAIL",
              "INCONCLUSIVE"
            ]
          }
        },
        "required": [
          "id",
          "verdict",
          "code",
          "detail"
        ],
        "type": "object"
      },
      "maxItems": 48,
      "minItems": 1,
      "type": "array"
    },
    "claims": {
      "additionalProperties": false,
      "properties": {
        "paidEndpointDelivery": {
          "const": false
        },
        "securityCertification": {
          "const": false
        },
        "semanticTruth": {
          "const": false
        },
        "seoRanking": {
          "const": false
        }
      },
      "required": [
        "seoRanking",
        "securityCertification",
        "semanticTruth",
        "paidEndpointDelivery"
      ],
      "type": "object"
    },
    "documents": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "complete": {
            "type": "boolean"
          },
          "contentEncoding": {
            "anyOf": [
              {
                "maxLength": 16384,
                "minLength": 0,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "contentType": {
            "anyOf": [
              {
                "maxLength": 16384,
                "minLength": 0,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "decodedBytes": {
            "anyOf": [
              {
                "maximum": 1048576,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "finalUrl": {
            "anyOf": [
              {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "id": {
            "maxLength": 64,
            "minLength": 1,
            "type": "string"
          },
          "observedAt": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
            "type": "string"
          },
          "rawBodySha256": {
            "anyOf": [
              {
                "pattern": "^[a-f0-9]{64}$",
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "rawBytes": {
            "anyOf": [
              {
                "maximum": 1048576,
                "minimum": 0,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          },
          "reason": {
            "anyOf": [
              {
                "maxLength": 64,
                "minLength": 1,
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "redirects": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "from": {
                  "maxLength": 2048,
                  "minLength": 1,
                  "type": "string"
                },
                "status": {
                  "maximum": 599,
                  "minimum": 200,
                  "type": "integer"
                },
                "to": {
                  "maxLength": 2048,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": [
                "from",
                "to",
                "status"
              ],
              "type": "object"
            },
            "maxItems": 3,
            "type": "array"
          },
          "requestedUrl": {
            "maxLength": 2048,
            "minLength": 1,
            "type": "string"
          },
          "status": {
            "anyOf": [
              {
                "maximum": 599,
                "minimum": 200,
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "requestedUrl",
          "finalUrl",
          "status",
          "rawBodySha256",
          "rawBytes",
          "decodedBytes",
          "contentType",
          "contentEncoding",
          "observedAt",
          "complete",
          "reason",
          "redirects"
        ],
        "type": "object"
      },
      "maxItems": 6,
      "minItems": 6,
      "type": "array"
    },
    "evidenceId": {
      "pattern": "^sha256:[a-f0-9]{64}$",
      "type": "string"
    },
    "hashSemantics": {
      "const": "SHA-256 of complete HTTP entity bytes before content decoding; excludes transfer framing. Missing/incomplete bodies have no hash."
    },
    "observedAt": {
      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
      "type": "string"
    },
    "page": {
      "additionalProperties": false,
      "properties": {
        "complete": {
          "type": "boolean"
        },
        "contentEncoding": {
          "anyOf": [
            {
              "maxLength": 16384,
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "contentType": {
          "anyOf": [
            {
              "maxLength": 16384,
              "minLength": 0,
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "decodedBytes": {
          "anyOf": [
            {
              "maximum": 1048576,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "finalUrl": {
          "anyOf": [
            {
              "maxLength": 2048,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "id": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "observedAt": {
          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$",
          "type": "string"
        },
        "rawBodySha256": {
          "anyOf": [
            {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "rawBytes": {
          "anyOf": [
            {
              "maximum": 1048576,
              "minimum": 0,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        },
        "reason": {
          "anyOf": [
            {
              "maxLength": 64,
              "minLength": 1,
              "type": "string"
            },
            {
              "type": "null"
            }
          ]
        },
        "redirects": {
          "items": {
            "additionalProperties": false,
            "properties": {
              "from": {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              },
              "status": {
                "maximum": 599,
                "minimum": 200,
                "type": "integer"
              },
              "to": {
                "maxLength": 2048,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": [
              "from",
              "to",
              "status"
            ],
            "type": "object"
          },
          "maxItems": 3,
          "type": "array"
        },
        "requestedUrl": {
          "maxLength": 2048,
          "minLength": 1,
          "type": "string"
        },
        "status": {
          "anyOf": [
            {
              "maximum": 599,
              "minimum": 200,
              "type": "integer"
            },
            {
              "type": "null"
            }
          ]
        }
      },
      "required": [
        "id",
        "requestedUrl",
        "finalUrl",
        "status",
        "rawBodySha256",
        "rawBytes",
        "decodedBytes",
        "contentType",
        "contentEncoding",
        "observedAt",
        "complete",
        "reason",
        "redirects"
      ],
      "type": "object"
    },
    "requestSha256": {
      "pattern": "^[a-f0-9]{64}$",
      "type": "string"
    },
    "ruleSetVersion": {
      "const": "website-release-audit/1.0.0"
    },
    "signature": {
      "type": "null"
    },
    "usage": {
      "additionalProperties": false,
      "properties": {
        "decodedBytesAdmitted": {
          "maximum": 2097152,
          "minimum": 0,
          "type": "integer"
        },
        "rawBytesAdmitted": {
          "maximum": 2097152,
          "minimum": 0,
          "type": "integer"
        },
        "redirects": {
          "maximum": 4,
          "minimum": 0,
          "type": "integer"
        },
        "requests": {
          "maximum": 10,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "requests",
        "redirects",
        "rawBytesAdmitted",
        "decodedBytesAdmitted"
      ],
      "type": "object"
    },
    "verdict": {
      "enum": [
        "PASS",
        "FAIL",
        "INCONCLUSIVE"
      ]
    },
    "warnings": {
      "items": {
        "maxLength": 256,
        "minLength": 1,
        "type": "string"
      },
      "maxItems": 32,
      "type": "array"
    }
  },
  "required": [
    "ruleSetVersion",
    "verdict",
    "checks",
    "page",
    "documents",
    "requestSha256",
    "evidenceId",
    "observedAt",
    "warnings",
    "usage",
    "claims",
    "hashSemantics",
    "signature"
  ],
  "type": "object"
}
