{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://finance.entelekron.org/schemas/release-authorization-control-profile.schema.json",
  "title": "TVKUSD release authorization control profile",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "schemaVersion", "controlPlaneId", "canonicalAssetId", "profileId", "status", "asOf", "productionReleaseEndpoint", "currentRelease", "approvedReleaseIds", "approvalRecords", "requiredGateIds", "requiredApprovalDomains", "minimumIndependentApprovals", "requiredEvidence", "activationBoundary", "rollback", "notice"],
  "properties": {
    "$schema": {"const": "https://finance.entelekron.org/schemas/release-authorization-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-denied"},
    "asOf": {"type": "string", "format": "date-time"},
    "productionReleaseEndpoint": {"type": "null"},
    "currentRelease": {"type": "null"},
    "approvedReleaseIds": {"type": "array", "maxItems": 0},
    "approvalRecords": {"type": "array", "maxItems": 0},
    "requiredGateIds": {"type": "array", "minItems": 10, "maxItems": 10, "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
    "requiredApprovalDomains": {"type": "array", "minItems": 4, "maxItems": 4, "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
    "minimumIndependentApprovals": {"type": "integer", "minimum": 4},
    "requiredEvidence": {"type": "array", "minItems": 10, "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
    "activationBoundary": {
      "type": "object", "additionalProperties": false,
      "required": ["repositoryMergeCanActivate", "environmentVariableCanActivate", "domainOrDnsCanActivate", "providerIntegrationCanActivate", "aiDecisionCanActivate", "singleApprovalCanActivate", "expiredEvidenceCanActivate", "partialGateSatisfactionCanActivate"],
      "properties": {
        "repositoryMergeCanActivate": {"const": false},
        "environmentVariableCanActivate": {"const": false},
        "domainOrDnsCanActivate": {"const": false},
        "providerIntegrationCanActivate": {"const": false},
        "aiDecisionCanActivate": {"const": false},
        "singleApprovalCanActivate": {"const": false},
        "expiredEvidenceCanActivate": {"const": false},
        "partialGateSatisfactionCanActivate": {"const": false}
      }
    },
    "rollback": {
      "type": "object", "additionalProperties": false,
      "required": ["automaticRollbackMayMoveValue", "previousReleaseMustBeApproved", "reconciliationRequiredBeforeAndAfter", "independentRollbackApprovalRequired", "evidencePreservationRequired"],
      "properties": {
        "automaticRollbackMayMoveValue": {"const": false},
        "previousReleaseMustBeApproved": {"const": true},
        "reconciliationRequiredBeforeAndAfter": {"const": true},
        "independentRollbackApprovalRequired": {"const": true},
        "evidencePreservationRequired": {"const": true}
      }
    },
    "notice": {"type": "string", "minLength": 1}
  }
}
