{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://finance.entelekron.org/schemas/data-governance-control-profile.schema.json",
  "title": "TVKUSD data governance control profile",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "schemaVersion", "controlPlaneId", "canonicalAssetId", "profileId", "status", "asOf", "productionDataStoreCount", "approvedDataProcessors", "approvedCrossBorderTransfers", "retentionSchedules", "classifications", "handlingRequirements", "recordIntegrity", "authority", "notice"],
  "properties": {
    "$schema": {"const": "https://finance.entelekron.org/schemas/data-governance-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": "prelaunch-no-production-data"},
    "asOf": {"type": "string", "format": "date-time"},
    "productionDataStoreCount": {"const": 0},
    "approvedDataProcessors": {"type": "array", "maxItems": 0},
    "approvedCrossBorderTransfers": {"type": "array", "maxItems": 0},
    "retentionSchedules": {"type": "array", "maxItems": 0},
    "classifications": {
      "type": "array", "minItems": 4, "maxItems": 4,
      "items": {
        "type": "object", "additionalProperties": false,
        "required": ["classificationId", "publicDisclosurePermitted", "logsPermitted", "examples", "prohibitedContent"],
        "properties": {
          "classificationId": {"enum": ["public", "internal", "confidential", "restricted"]},
          "publicDisclosurePermitted": {"type": "boolean"},
          "logsPermitted": {"type": "boolean"},
          "examples": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
          "prohibitedContent": {"type": "array", "minItems": 1, "uniqueItems": true, "items": {"type": "string", "minLength": 1}}
        }
      }
    },
    "handlingRequirements": {
      "type": "object", "additionalProperties": false,
      "required": ["dataMinimizationRequired", "purposeAndLegalBasisRequired", "collectionAndAccessEvidenceRequired", "encryptionInTransitRequired", "encryptionAtRestRequired", "fieldLevelProtectionForRestrictedDataRequired", "pseudonymousReferencesInPublicEvidenceRequired", "secretScanningAndRedactionRequired", "processorAndTransferApprovalRequired", "privacyIncidentEscalationRequired"],
      "properties": {
        "dataMinimizationRequired": {"const": true},
        "purposeAndLegalBasisRequired": {"const": true},
        "collectionAndAccessEvidenceRequired": {"const": true},
        "encryptionInTransitRequired": {"const": true},
        "encryptionAtRestRequired": {"const": true},
        "fieldLevelProtectionForRestrictedDataRequired": {"const": true},
        "pseudonymousReferencesInPublicEvidenceRequired": {"const": true},
        "secretScanningAndRedactionRequired": {"const": true},
        "processorAndTransferApprovalRequired": {"const": true},
        "privacyIncidentEscalationRequired": {"const": true}
      }
    },
    "recordIntegrity": {
      "type": "object", "additionalProperties": false,
      "required": ["privacyRequestMaySilentlyDeleteFinancialLedger", "correctionRequiresLinkedTombstoneOrRestatement", "legalRetentionMayBeInferredWithoutApproval", "publicEvidenceMayExposeRestrictedSource"],
      "properties": {
        "privacyRequestMaySilentlyDeleteFinancialLedger": {"const": false},
        "correctionRequiresLinkedTombstoneOrRestatement": {"const": true},
        "legalRetentionMayBeInferredWithoutApproval": {"const": false},
        "publicEvidenceMayExposeRestrictedSource": {"const": false}
      }
    },
    "authority": {
      "type": "object", "additionalProperties": false,
      "required": ["aiCanApproveNewPurpose", "aiCanApproveCrossBorderTransfer", "aiCanDeclassifyRestrictedData", "singleOperatorCanExportRestrictedDataset"],
      "properties": {
        "aiCanApproveNewPurpose": {"const": false},
        "aiCanApproveCrossBorderTransfer": {"const": false},
        "aiCanDeclassifyRestrictedData": {"const": false},
        "singleOperatorCanExportRestrictedDataset": {"const": false}
      }
    },
    "notice": {"type": "string", "minLength": 1}
  }
}
