{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "recordType",
    "authorityRootId",
    "issuerId",
    "issuerClass",
    "issuerName",
    "organizationId",
    "legalName",
    "jurisdiction",
    "registrationReference",
    "entityStatus",
    "verifiedAtUtc",
    "expiresAtUtc",
    "registryResponsePath",
    "registryResponseSha256",
    "signedPayloadSha256",
    "signatureBase64"
  ],
  "properties": {
    "schemaVersion": {
      "const": "1.0.0"
    },
    "recordType": {
      "const": "independent-legal-entity-verification"
    },
    "authorityRootId": {
      "type": "string",
      "pattern": "^legal-registry-root:[0-9a-f]{64}$"
    },
    "issuerId": {
      "type": "string",
      "pattern": "^legal-registry-issuer:[0-9a-f]{64}$"
    },
    "issuerClass": {
      "enum": [
        "government-registry",
        "regulated-corporate-registry-provider"
      ]
    },
    "issuerName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 256
    },
    "organizationId": {
      "type": "string",
      "pattern": "^organization:[0-9a-f]{64}$"
    },
    "legalName": {
      "type": "string",
      "minLength": 3,
      "maxLength": 256
    },
    "jurisdiction": {
      "type": "string",
      "minLength": 3,
      "maxLength": 128
    },
    "registrationReference": {
      "type": "string",
      "minLength": 5,
      "maxLength": 128
    },
    "entityStatus": {
      "const": "active"
    },
    "verifiedAtUtc": {
      "type": "string",
      "format": "date-time"
    },
    "expiresAtUtc": {
      "type": "string",
      "format": "date-time"
    },
    "registryResponseSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "registryResponsePath": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1024
    },
    "signedPayloadSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "signatureBase64": {
      "type": "string",
      "pattern": "^[A-Za-z0-9+/]{86}==$"
    }
  }
}
