{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://finance.entelekron.org/schemas/continuity-recovery-control-profile.schema.json",
  "title": "TVKUSD continuity and recovery control profile",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "schemaVersion", "controlPlaneId", "canonicalAssetId", "profileId", "status", "asOf", "approvedPlanVersion", "recoveryTimeObjectiveSeconds", "recoveryPointObjectiveSeconds", "productionBackupProviders", "verifiedBackupSnapshotCount", "completedRestoreTests", "approvedAlternateProviders", "approvedRecoveryEnvironments", "continuityRequirements", "recoveryBoundary", "authority", "notice"],
  "properties": {
    "$schema": {"const": "https://finance.entelekron.org/schemas/continuity-recovery-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": "not-configured"},
    "asOf": {"type": "string", "format": "date-time"},
    "approvedPlanVersion": {"type": "null"},
    "recoveryTimeObjectiveSeconds": {"type": "null"},
    "recoveryPointObjectiveSeconds": {"type": "null"},
    "productionBackupProviders": {"type": "array", "maxItems": 0},
    "verifiedBackupSnapshotCount": {"const": 0},
    "completedRestoreTests": {"type": "array", "maxItems": 0},
    "approvedAlternateProviders": {"type": "array", "maxItems": 0},
    "approvedRecoveryEnvironments": {"type": "array", "maxItems": 0},
    "continuityRequirements": {
      "type": "object", "additionalProperties": false,
      "required": ["encryptedImmutableBackupsRequired", "geographicAndProviderSeparationRequired", "backupIntegrityVerificationRequired", "documentedDependencyInventoryRequired", "offlineRunbookRequired", "reconciliationBeforeResumeRequired", "keyAndContractRevalidationRequired", "jurisdictionAndProviderEntitlementRevalidationRequired", "independentRecoveryApprovalRequired", "postRecoveryEvidenceRequired"],
      "properties": {
        "encryptedImmutableBackupsRequired": {"const": true},
        "geographicAndProviderSeparationRequired": {"const": true},
        "backupIntegrityVerificationRequired": {"const": true},
        "documentedDependencyInventoryRequired": {"const": true},
        "offlineRunbookRequired": {"const": true},
        "reconciliationBeforeResumeRequired": {"const": true},
        "keyAndContractRevalidationRequired": {"const": true},
        "jurisdictionAndProviderEntitlementRevalidationRequired": {"const": true},
        "independentRecoveryApprovalRequired": {"const": true},
        "postRecoveryEvidenceRequired": {"const": true}
      }
    },
    "recoveryBoundary": {
      "type": "object", "additionalProperties": false,
      "required": ["backupContainsRawPrivateKeys", "backupRestorationGrantsFinancialAuthority", "providerFailoverMayMoveValueAutomatically", "readOnlyFailoverMayImplySettlementFinality", "degradedModeMayFailOpen", "recoveryMayCombineSegregatedBooks", "unreconciledStateMayResumeProduction"],
      "properties": {
        "backupContainsRawPrivateKeys": {"const": false},
        "backupRestorationGrantsFinancialAuthority": {"const": false},
        "providerFailoverMayMoveValueAutomatically": {"const": false},
        "readOnlyFailoverMayImplySettlementFinality": {"const": false},
        "degradedModeMayFailOpen": {"const": false},
        "recoveryMayCombineSegregatedBooks": {"const": false},
        "unreconciledStateMayResumeProduction": {"const": false}
      }
    },
    "authority": {
      "type": "object", "additionalProperties": false,
      "required": ["aiCanDeclareRecoveryComplete", "aiCanRestoreProductionSecrets", "singleOperatorCanRestoreAndResume", "incidentCommanderCanBypassIndependentApproval"],
      "properties": {
        "aiCanDeclareRecoveryComplete": {"const": false},
        "aiCanRestoreProductionSecrets": {"const": false},
        "singleOperatorCanRestoreAndResume": {"const": false},
        "incidentCommanderCanBypassIndependentApproval": {"const": false}
      }
    },
    "notice": {"type": "string", "minLength": 1}
  }
}
