{
  "$comment": "The runtime validator also enforces bounded cross-field invariants that JSON Schema cannot fully express. Passing this schema is necessary but not sufficient for acceptance by ControlCurrent.",
  "$id": "https://slicedearth.github.io/controlcurrent/schemas/reduced-evidence-report.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "properties": {
    "composites": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "name": {
            "maxLength": 120,
            "minLength": 1,
            "type": "string"
          },
          "requirements": {
            "items": {
              "maxLength": 256,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 8,
            "type": "array"
          },
          "state": {
            "enum": ["satisfied", "review", "gap", "not_evaluated", "not_applicable"],
            "type": "string"
          },
          "summary": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": ["id", "name", "state", "summary", "requirements"],
        "type": "object"
      },
      "maxItems": 8,
      "type": "array"
    },
    "coverage": {
      "additionalProperties": false,
      "properties": {
        "authenticatedResponses": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "completeSurfaces": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "contextualisedResponses": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "errorResponses": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "expectedSurfaces": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "htmlDocuments": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "redirectResponses": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "requests": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "resourceBytes": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "responses": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "responseVariants": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        },
        "surfaceGaps": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "webauthn": {
          "maximum": 16,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "responses",
        "contextualisedResponses",
        "responseVariants",
        "redirectResponses",
        "errorResponses",
        "authenticatedResponses",
        "htmlDocuments",
        "resourceBytes",
        "requests",
        "webauthn",
        "expectedSurfaces",
        "completeSurfaces",
        "surfaceGaps"
      ],
      "type": "object"
    },
    "cspMarkupReports": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "broadSourceExpressionCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "crossDocumentNonceReuseCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "finding": {
            "additionalProperties": false,
            "properties": {
              "controlId": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "evidence": {
                "maxLength": 512,
                "minLength": 1,
                "type": "string"
              },
              "sourceHeaders": {
                "items": {
                  "maxLength": 128,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 4,
                "type": "array"
              },
              "state": {
                "enum": [
                  "observed",
                  "missing",
                  "invalid",
                  "not_evaluated",
                  "not_applicable",
                  "report_only",
                  "inconclusive"
                ],
                "type": "string"
              },
              "summary": {
                "maxLength": 1024,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": ["controlId", "state", "sourceHeaders", "summary"],
            "type": "object"
          },
          "inlineElementCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "matchedHashCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "matchedMixedCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "matchedNonceCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "schemaVersion": {
            "const": 1,
            "type": "number"
          },
          "surfaceId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          },
          "unmatchedInlineCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "schemaVersion",
          "surfaceId",
          "inlineElementCount",
          "matchedNonceCount",
          "matchedHashCount",
          "matchedMixedCount",
          "unmatchedInlineCount",
          "broadSourceExpressionCount",
          "crossDocumentNonceReuseCount",
          "finding"
        ],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array"
    },
    "findings": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "controlId": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "evidence": {
            "maxLength": 512,
            "minLength": 1,
            "type": "string"
          },
          "sourceHeaders": {
            "items": {
              "maxLength": 128,
              "minLength": 1,
              "type": "string"
            },
            "maxItems": 4,
            "type": "array"
          },
          "state": {
            "enum": [
              "observed",
              "missing",
              "invalid",
              "not_evaluated",
              "not_applicable",
              "report_only",
              "inconclusive"
            ],
            "type": "string"
          },
          "summary": {
            "maxLength": 1024,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": ["controlId", "state", "sourceHeaders", "summary"],
        "type": "object"
      },
      "maxItems": 64,
      "type": "array"
    },
    "htmlReports": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "absoluteReferenceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "algorithms": {
            "items": {
              "enum": ["sha256", "sha384", "sha512"],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "elementCount": {
            "maximum": 8192,
            "minimum": 0,
            "type": "integer"
          },
          "eligibleResourceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "finding": {
            "additionalProperties": false,
            "properties": {
              "controlId": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "evidence": {
                "maxLength": 512,
                "minLength": 1,
                "type": "string"
              },
              "sourceHeaders": {
                "items": {
                  "maxLength": 128,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 4,
                "type": "array"
              },
              "state": {
                "enum": [
                  "observed",
                  "missing",
                  "invalid",
                  "not_evaluated",
                  "not_applicable",
                  "report_only",
                  "inconclusive"
                ],
                "type": "string"
              },
              "summary": {
                "maxLength": 1024,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": ["controlId", "state", "sourceHeaders", "summary"],
            "type": "object"
          },
          "inputBytes": {
            "maximum": 131072,
            "minimum": 0,
            "type": "integer"
          },
          "invalidIntegrityCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "otherReferenceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "parseErrorCount": {
            "maximum": 64,
            "minimum": 0,
            "type": "integer"
          },
          "preloadCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "protectedResourceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "relativeReferenceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "schemaVersion": {
            "const": 1,
            "type": "number"
          },
          "scriptCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "styleCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          },
          "unprotectedResourceCount": {
            "maximum": 512,
            "minimum": 0,
            "type": "integer"
          }
        },
        "required": [
          "schemaVersion",
          "name",
          "inputBytes",
          "elementCount",
          "parseErrorCount",
          "eligibleResourceCount",
          "protectedResourceCount",
          "unprotectedResourceCount",
          "invalidIntegrityCount",
          "scriptCount",
          "styleCount",
          "preloadCount",
          "relativeReferenceCount",
          "absoluteReferenceCount",
          "otherReferenceCount",
          "algorithms",
          "finding"
        ],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array"
    },
    "identity": {
      "additionalProperties": false,
      "properties": {
        "capture": {
          "additionalProperties": false,
          "properties": {
            "completedAt": {
              "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))$",
              "type": "string"
            },
            "producer": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
                  "type": "string"
                },
                "kind": {
                  "enum": ["application_ci", "manual", "other"],
                  "type": "string"
                },
                "version": {
                  "maxLength": 64,
                  "minLength": 1,
                  "pattern": "^[A-Za-z0-9][A-Za-z0-9._+-]{0,63}$",
                  "type": "string"
                }
              },
              "required": ["kind", "id"],
              "type": "object"
            },
            "startedAt": {
              "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))$",
              "type": "string"
            }
          },
          "required": ["startedAt", "completedAt", "producer"],
          "type": "object"
        },
        "subject": {
          "additionalProperties": false,
          "properties": {
            "applicationId": {
              "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
              "type": "string"
            },
            "buildId": {
              "maxLength": 128,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]{0,127}$",
              "type": "string"
            },
            "environment": {
              "pattern": "^[a-z0-9][a-z0-9._-]{0,39}$",
              "type": "string"
            },
            "revision": {
              "maxLength": 128,
              "minLength": 1,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._:+-]{0,127}$",
              "type": "string"
            }
          },
          "required": ["applicationId", "environment", "revision"],
          "type": "object"
        }
      },
      "required": ["subject", "capture"],
      "type": "object"
    },
    "name": {
      "maxLength": 80,
      "minLength": 1,
      "type": "string"
    },
    "provenance": {
      "additionalProperties": false,
      "properties": {
        "analyserVersion": {
          "pattern": "^\\d+\\.\\d+\\.\\d+$",
          "type": "string"
        },
        "bcdTimestamp": {
          "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))$",
          "type": "string"
        },
        "bcdVersion": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "catalogueVersion": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        },
        "selectedSchemaFingerprint": {
          "pattern": "^[a-f0-9]{64}$",
          "type": "string"
        },
        "webFeaturesVersion": {
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "bcdVersion",
        "bcdTimestamp",
        "webFeaturesVersion",
        "selectedSchemaFingerprint",
        "analyserVersion",
        "catalogueVersion"
      ],
      "type": "object"
    },
    "reportFingerprint": {
      "pattern": "^[a-f0-9]{64}$",
      "type": "string"
    },
    "requestReports": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "finding": {
            "additionalProperties": false,
            "properties": {
              "controlId": {
                "maxLength": 80,
                "minLength": 1,
                "type": "string"
              },
              "evidence": {
                "maxLength": 512,
                "minLength": 1,
                "type": "string"
              },
              "sourceHeaders": {
                "items": {
                  "maxLength": 128,
                  "minLength": 1,
                  "type": "string"
                },
                "maxItems": 4,
                "type": "array"
              },
              "state": {
                "enum": [
                  "observed",
                  "missing",
                  "invalid",
                  "not_evaluated",
                  "not_applicable",
                  "report_only",
                  "inconclusive"
                ],
                "type": "string"
              },
              "summary": {
                "maxLength": 1024,
                "minLength": 1,
                "type": "string"
              }
            },
            "required": ["controlId", "state", "sourceHeaders", "summary"],
            "type": "object"
          },
          "inputHeaderCount": {
            "maximum": 64,
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "recognisedHeaderCount": {
            "maximum": 4,
            "minimum": 0,
            "type": "integer"
          },
          "schemaVersion": {
            "const": 1,
            "type": "number"
          }
        },
        "required": [
          "schemaVersion",
          "name",
          "inputHeaderCount",
          "recognisedHeaderCount",
          "finding"
        ],
        "type": "object"
      },
      "maxItems": 32,
      "type": "array"
    },
    "resourceVerificationReport": {
      "additionalProperties": false,
      "properties": {
        "finding": {
          "additionalProperties": false,
          "properties": {
            "controlId": {
              "maxLength": 80,
              "minLength": 1,
              "type": "string"
            },
            "evidence": {
              "maxLength": 512,
              "minLength": 1,
              "type": "string"
            },
            "sourceHeaders": {
              "items": {
                "maxLength": 128,
                "minLength": 1,
                "type": "string"
              },
              "maxItems": 4,
              "type": "array"
            },
            "state": {
              "enum": [
                "observed",
                "missing",
                "invalid",
                "not_evaluated",
                "not_applicable",
                "report_only",
                "inconclusive"
              ],
              "type": "string"
            },
            "summary": {
              "maxLength": 1024,
              "minLength": 1,
              "type": "string"
            }
          },
          "required": ["controlId", "state", "sourceHeaders", "summary"],
          "type": "object"
        },
        "invalidMetadataCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "matchedResourceCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "mismatchedResourceCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "schemaVersion": {
          "const": 1,
          "type": "number"
        },
        "suppliedBytes": {
          "maximum": 1048576,
          "minimum": 0,
          "type": "integer"
        },
        "suppliedResourceCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "unmatchedResourceCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        },
        "verifiedResourceCount": {
          "maximum": 32,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "schemaVersion",
        "suppliedResourceCount",
        "suppliedBytes",
        "matchedResourceCount",
        "verifiedResourceCount",
        "mismatchedResourceCount",
        "invalidMetadataCount",
        "unmatchedResourceCount",
        "finding"
      ],
      "type": "object"
    },
    "responseContexts": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "authentication": {
            "enum": ["anonymous", "authenticated", "unknown"],
            "type": "string"
          },
          "cache": {
            "enum": ["hit", "miss", "revalidated", "bypass", "unknown"],
            "type": "string"
          },
          "contentType": {
            "enum": [
              "html",
              "json",
              "javascript",
              "css",
              "font",
              "image",
              "text",
              "other",
              "unknown"
            ],
            "type": "string"
          },
          "errorKind": {
            "enum": ["timeout", "dns", "tls", "connection", "other"],
            "type": "string"
          },
          "outcome": {
            "enum": ["final", "redirect", "http_error", "transport_error"],
            "type": "string"
          },
          "redirectChainId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          },
          "redirectTarget": {
            "enum": ["same_origin", "cross_origin", "unknown"],
            "type": "string"
          },
          "sequence": {
            "maximum": 16,
            "minimum": 0,
            "type": "integer"
          },
          "status": {
            "maximum": 599,
            "minimum": 100,
            "type": "integer"
          },
          "statusClass": {
            "enum": [
              "informational",
              "success",
              "redirect",
              "client_error",
              "server_error",
              "not_available"
            ],
            "type": "string"
          },
          "surfaceId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          },
          "variantId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          }
        },
        "required": [
          "surfaceId",
          "variantId",
          "sequence",
          "outcome",
          "statusClass",
          "contentType",
          "authentication",
          "cache"
        ],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array"
    },
    "responseReports": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "findings": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "controlId": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "evidence": {
                  "maxLength": 512,
                  "minLength": 1,
                  "type": "string"
                },
                "sourceHeaders": {
                  "items": {
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 4,
                  "type": "array"
                },
                "state": {
                  "enum": [
                    "observed",
                    "missing",
                    "invalid",
                    "not_evaluated",
                    "not_applicable",
                    "report_only",
                    "inconclusive"
                  ],
                  "type": "string"
                },
                "summary": {
                  "maxLength": 1024,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": ["controlId", "state", "sourceHeaders", "summary"],
              "type": "object"
            },
            "maxItems": 64,
            "type": "array"
          },
          "inputHeaderCount": {
            "maximum": 64,
            "minimum": 0,
            "type": "integer"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "recognisedHeaderCount": {
            "maximum": 64,
            "minimum": 0,
            "type": "integer"
          },
          "schemaVersion": {
            "const": 2,
            "type": "number"
          },
          "summary": {
            "additionalProperties": false,
            "properties": {
              "inconclusive": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              },
              "invalid": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              },
              "missing": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              },
              "notEvaluated": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              },
              "observed": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              },
              "reportOnly": {
                "maximum": 64,
                "minimum": 0,
                "type": "integer"
              }
            },
            "required": [
              "observed",
              "missing",
              "invalid",
              "notEvaluated",
              "reportOnly",
              "inconclusive"
            ],
            "type": "object"
          }
        },
        "required": [
          "schemaVersion",
          "name",
          "inputHeaderCount",
          "recognisedHeaderCount",
          "summary",
          "findings"
        ],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array"
    },
    "schemaVersion": {
      "const": 7,
      "type": "number"
    },
    "scopeInventory": {
      "oneOf": [
        {
          "additionalProperties": false,
          "properties": {
            "schemaVersion": {
              "const": 1,
              "type": "number"
            },
            "state": {
              "const": "absent",
              "type": "string"
            }
          },
          "required": ["schemaVersion", "state"],
          "type": "object"
        },
        {
          "additionalProperties": false,
          "properties": {
            "completeness": {
              "enum": ["complete", "partial", "unknown"],
              "type": "string"
            },
            "excludedEntries": {
              "maximum": 255,
              "minimum": 0,
              "type": "integer"
            },
            "fingerprint": {
              "pattern": "^[a-f0-9]{64}$",
              "type": "string"
            },
            "generatedAt": {
              "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))$",
              "type": "string"
            },
            "includedEntries": {
              "maximum": 32,
              "minimum": 1,
              "type": "integer"
            },
            "kind": {
              "enum": ["declared", "framework_manifest", "authorised_crawl", "test_suite"],
              "type": "string"
            },
            "name": {
              "maxLength": 80,
              "minLength": 1,
              "type": "string"
            },
            "schemaVersion": {
              "const": 1,
              "type": "number"
            },
            "state": {
              "const": "present",
              "type": "string"
            },
            "totalEntries": {
              "maximum": 256,
              "minimum": 1,
              "type": "integer"
            }
          },
          "required": [
            "schemaVersion",
            "state",
            "name",
            "kind",
            "generatedAt",
            "completeness",
            "fingerprint",
            "totalEntries",
            "includedEntries",
            "excludedEntries"
          ],
          "type": "object"
        }
      ]
    },
    "summary": {
      "additionalProperties": false,
      "properties": {
        "inconclusive": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "invalid": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "missing": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "notApplicable": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "notEvaluated": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "observed": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        },
        "reportOnly": {
          "maximum": 64,
          "minimum": 0,
          "type": "integer"
        }
      },
      "required": [
        "observed",
        "missing",
        "invalid",
        "notEvaluated",
        "notApplicable",
        "reportOnly",
        "inconclusive"
      ],
      "type": "object"
    },
    "surfaceAssessments": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "composites": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "id": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "name": {
                  "maxLength": 120,
                  "minLength": 1,
                  "type": "string"
                },
                "requirements": {
                  "items": {
                    "maxLength": 256,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 8,
                  "type": "array"
                },
                "state": {
                  "enum": ["satisfied", "review", "gap", "not_evaluated", "not_applicable"],
                  "type": "string"
                },
                "summary": {
                  "maxLength": 1024,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": ["id", "name", "state", "summary", "requirements"],
              "type": "object"
            },
            "maxItems": 3,
            "type": "array"
          },
          "findings": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "controlId": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "evidence": {
                  "maxLength": 512,
                  "minLength": 1,
                  "type": "string"
                },
                "sourceHeaders": {
                  "items": {
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 4,
                  "type": "array"
                },
                "state": {
                  "enum": [
                    "observed",
                    "missing",
                    "invalid",
                    "not_evaluated",
                    "not_applicable",
                    "report_only",
                    "inconclusive"
                  ],
                  "type": "string"
                },
                "summary": {
                  "maxLength": 1024,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": ["controlId", "state", "sourceHeaders", "summary"],
              "type": "object"
            },
            "maxItems": 64,
            "type": "array"
          },
          "requiredComposites": {
            "items": {
              "enum": [
                "strict-csp-candidate",
                "cross-origin-isolation-candidate",
                "cookie-attribute-coverage"
              ],
              "type": "string"
            },
            "maxItems": 3,
            "type": "array"
          },
          "requiredControls": {
            "items": {
              "pattern": "^[a-z0-9][a-z0-9-]{0,79}$",
              "type": "string"
            },
            "maxItems": 64,
            "type": "array"
          },
          "responseContexts": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "authentication": {
                  "enum": ["anonymous", "authenticated", "unknown"],
                  "type": "string"
                },
                "cache": {
                  "enum": ["hit", "miss", "revalidated", "bypass", "unknown"],
                  "type": "string"
                },
                "contentType": {
                  "enum": [
                    "html",
                    "json",
                    "javascript",
                    "css",
                    "font",
                    "image",
                    "text",
                    "other",
                    "unknown"
                  ],
                  "type": "string"
                },
                "errorKind": {
                  "enum": ["timeout", "dns", "tls", "connection", "other"],
                  "type": "string"
                },
                "outcome": {
                  "enum": ["final", "redirect", "http_error", "transport_error"],
                  "type": "string"
                },
                "redirectChainId": {
                  "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
                  "type": "string"
                },
                "redirectTarget": {
                  "enum": ["same_origin", "cross_origin", "unknown"],
                  "type": "string"
                },
                "sequence": {
                  "maximum": 16,
                  "minimum": 0,
                  "type": "integer"
                },
                "status": {
                  "maximum": 599,
                  "minimum": 100,
                  "type": "integer"
                },
                "statusClass": {
                  "enum": [
                    "informational",
                    "success",
                    "redirect",
                    "client_error",
                    "server_error",
                    "not_available"
                  ],
                  "type": "string"
                },
                "surfaceId": {
                  "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
                  "type": "string"
                },
                "variantId": {
                  "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
                  "type": "string"
                }
              },
              "required": [
                "surfaceId",
                "variantId",
                "sequence",
                "outcome",
                "statusClass",
                "contentType",
                "authentication",
                "cache"
              ],
              "type": "object"
            },
            "maxItems": 16,
            "type": "array"
          },
          "role": {
            "enum": ["document", "api", "authentication", "logout", "embedded", "other"],
            "type": "string"
          },
          "surfaceId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          }
        },
        "required": [
          "surfaceId",
          "role",
          "requiredControls",
          "requiredComposites",
          "responseContexts",
          "findings",
          "composites"
        ],
        "type": "object"
      },
      "maxItems": 32,
      "type": "array"
    },
    "surfaceCoverage": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "missingEvidence": {
            "items": {
              "enum": ["response", "html", "resource_bytes", "request", "webauthn"],
              "type": "string"
            },
            "maxItems": 5,
            "type": "array"
          },
          "observedEvidence": {
            "items": {
              "enum": ["response", "html", "resource_bytes", "request", "webauthn"],
              "type": "string"
            },
            "maxItems": 5,
            "type": "array"
          },
          "requiredEvidence": {
            "items": {
              "enum": ["response", "html", "resource_bytes", "request", "webauthn"],
              "type": "string"
            },
            "maxItems": 5,
            "minItems": 1,
            "type": "array"
          },
          "role": {
            "enum": ["document", "api", "authentication", "logout", "embedded", "other"],
            "type": "string"
          },
          "state": {
            "enum": ["complete", "gap"],
            "type": "string"
          },
          "surfaceId": {
            "pattern": "^[a-z0-9][a-z0-9._-]{0,79}$",
            "type": "string"
          }
        },
        "required": [
          "surfaceId",
          "role",
          "state",
          "requiredEvidence",
          "observedEvidence",
          "missingEvidence"
        ],
        "type": "object"
      },
      "maxItems": 32,
      "type": "array"
    },
    "webauthnReports": {
      "items": {
        "additionalProperties": false,
        "properties": {
          "configuration": {
            "additionalProperties": false,
            "properties": {
              "attestation": {
                "enum": ["none", "indirect", "direct", "enterprise", "unspecified"],
                "type": "string"
              },
              "authenticatorAttachment": {
                "enum": ["platform", "cross-platform", "unspecified"],
                "type": "string"
              },
              "mediation": {
                "enum": ["conditional", "optional", "required", "silent", "unspecified"],
                "type": "string"
              },
              "prfRequested": {
                "type": "boolean"
              },
              "residentKey": {
                "enum": ["required", "preferred", "discouraged", "unspecified"],
                "type": "string"
              },
              "userVerification": {
                "enum": ["required", "preferred", "discouraged", "unspecified"],
                "type": "string"
              }
            },
            "required": [
              "authenticatorAttachment",
              "userVerification",
              "residentKey",
              "attestation",
              "mediation"
            ],
            "type": "object"
          },
          "findings": {
            "items": {
              "additionalProperties": false,
              "properties": {
                "controlId": {
                  "maxLength": 80,
                  "minLength": 1,
                  "type": "string"
                },
                "evidence": {
                  "maxLength": 512,
                  "minLength": 1,
                  "type": "string"
                },
                "sourceHeaders": {
                  "items": {
                    "maxLength": 128,
                    "minLength": 1,
                    "type": "string"
                  },
                  "maxItems": 4,
                  "type": "array"
                },
                "state": {
                  "enum": [
                    "observed",
                    "missing",
                    "invalid",
                    "not_evaluated",
                    "not_applicable",
                    "report_only",
                    "inconclusive"
                  ],
                  "type": "string"
                },
                "summary": {
                  "maxLength": 1024,
                  "minLength": 1,
                  "type": "string"
                }
              },
              "required": ["controlId", "state", "sourceHeaders", "summary"],
              "type": "object"
            },
            "maxItems": 3,
            "minItems": 3,
            "type": "array"
          },
          "name": {
            "maxLength": 80,
            "minLength": 1,
            "type": "string"
          },
          "operation": {
            "enum": ["create", "get"],
            "type": "string"
          },
          "schemaVersion": {
            "const": 1,
            "type": "number"
          }
        },
        "required": ["schemaVersion", "name", "operation", "configuration", "findings"],
        "type": "object"
      },
      "maxItems": 16,
      "type": "array"
    }
  },
  "required": [
    "schemaVersion",
    "name",
    "identity",
    "scopeInventory",
    "provenance",
    "reportFingerprint",
    "coverage",
    "surfaceCoverage",
    "surfaceAssessments",
    "summary",
    "findings",
    "composites",
    "responseContexts",
    "responseReports",
    "htmlReports",
    "resourceVerificationReport",
    "cspMarkupReports",
    "requestReports",
    "webauthnReports"
  ],
  "title": "ControlCurrent reduced evidence report",
  "type": "object"
}
