{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://finance.entelekron.org/schemas/publication-control-profile.schema.json",
  "title": "TVKUSD publication integrity control profile",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "schemaVersion", "controlPlaneId", "canonicalAssetId", "profileId", "status", "asOf", "publicationRequirements", "antiRollback", "signatureState", "authority", "notice"],
  "properties": {
    "$schema": {"const": "https://finance.entelekron.org/schemas/publication-control-profile.schema.json"},
    "schemaVersion": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"},
    "controlPlaneId": {"const": "tvk-group:entelekron-financial-infrastructure"},
    "canonicalAssetId": {"const": "tvk-group:tvkusd"},
    "profileId": {"type": "string", "minLength": 1},
    "status": {"const": "unsigned-prelaunch-publication"},
    "asOf": {"type": "string", "format": "date-time"},
    "publicationRequirements": {
      "type": "object",
      "additionalProperties": false,
      "required": ["canonicalFramingRequired", "sha256RootRequired", "monotonicSequenceRequired", "previousManifestDigestRequiredAfterGenesis", "maximumPublicationAgeSeconds", "minimumIndependentSignaturesForProduction", "hardwareProtectedSigningRequiredForProduction", "publicKeyRegistryRequiredForProduction", "transparencyLogInclusionRequiredForProduction", "independentTimestampRequiredForProduction", "revocationAndRotationEvidenceRequiredForProduction"],
      "properties": {
        "canonicalFramingRequired": {"const": true},
        "sha256RootRequired": {"const": true},
        "monotonicSequenceRequired": {"const": true},
        "previousManifestDigestRequiredAfterGenesis": {"const": true},
        "maximumPublicationAgeSeconds": {"type": "integer", "minimum": 3600, "maximum": 2592000},
        "minimumIndependentSignaturesForProduction": {"type": "integer", "minimum": 2},
        "hardwareProtectedSigningRequiredForProduction": {"const": true},
        "publicKeyRegistryRequiredForProduction": {"const": true},
        "transparencyLogInclusionRequiredForProduction": {"const": true},
        "independentTimestampRequiredForProduction": {"const": true},
        "revocationAndRotationEvidenceRequiredForProduction": {"const": true}
      }
    },
    "antiRollback": {
      "type": "object",
      "additionalProperties": false,
      "required": ["currentSequence", "genesis", "previousManifestSha256", "lastSignedSequence", "rollbackAcceptancePermitted", "sequenceReusePermitted", "manifestOmissionPermitted", "staleManifestMayAuthorizeProduction", "unverifiableDigestMayAuthorizeProduction"],
      "properties": {
        "currentSequence": {"type": "integer", "minimum": 1},
        "genesis": {"type": "boolean"},
        "previousManifestSha256": {"anyOf": [{"type": "null"}, {"type": "string", "pattern": "^[a-f0-9]{64}$"}]},
        "lastSignedSequence": {"anyOf": [{"type": "null"}, {"type": "integer", "minimum": 1}]},
        "rollbackAcceptancePermitted": {"const": false},
        "sequenceReusePermitted": {"const": false},
        "manifestOmissionPermitted": {"const": false},
        "staleManifestMayAuthorizeProduction": {"const": false},
        "unverifiableDigestMayAuthorizeProduction": {"const": false}
      }
    },
    "signatureState": {
      "type": "object",
      "additionalProperties": false,
      "required": ["provider", "publicKeyRegistry", "signatures", "transparencyLogEntries", "productionSigningConfigured", "productionStatusTransitionsAuthorized"],
      "properties": {
        "provider": {"type": "null"},
        "publicKeyRegistry": {"type": "array", "maxItems": 0},
        "signatures": {"type": "array", "maxItems": 0},
        "transparencyLogEntries": {"type": "array", "maxItems": 0},
        "productionSigningConfigured": {"const": false},
        "productionStatusTransitionsAuthorized": {"const": false}
      }
    },
    "authority": {
      "type": "object",
      "additionalProperties": false,
      "required": ["aiCanSign", "singleMaintainerCanSignProduction", "repositoryMergeCanAuthorizeProduction", "vercelDeploymentCanAuthorizeProduction", "unsignedManifestCanAuthorizeProduction"],
      "properties": {
        "aiCanSign": {"const": false},
        "singleMaintainerCanSignProduction": {"const": false},
        "repositoryMergeCanAuthorizeProduction": {"const": false},
        "vercelDeploymentCanAuthorizeProduction": {"const": false},
        "unsignedManifestCanAuthorizeProduction": {"const": false}
      }
    },
    "notice": {"type": "string", "minLength": 1}
  }
}
