{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://finance.entelekron.org/schemas/negative-assurance-test-profile.schema.json",
  "title": "TVKUSD negative assurance test profile",
  "type": "object",
  "additionalProperties": false,
  "required": ["$schema", "schemaVersion", "controlPlaneId", "canonicalAssetId", "profileId", "status", "asOf", "buildTimeValidatorEnabled", "buildTimeCaseCount", "productionAssuranceStatus", "productionTestReports", "testFamilies", "acceptance", "limitations", "notice"],
  "properties": {
    "$schema": {"const": "https://finance.entelekron.org/schemas/negative-assurance-test-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": "build-time-catalog-enforced"},
    "asOf": {"type": "string", "format": "date-time"},
    "buildTimeValidatorEnabled": {"const": true},
    "buildTimeCaseCount": {"const": 30},
    "productionAssuranceStatus": {"const": "not-tested"},
    "productionTestReports": {"type": "array", "maxItems": 0},
    "testFamilies": {"type": "array", "minItems": 30, "maxItems": 30, "uniqueItems": true, "items": {"type": "string", "minLength": 1}},
    "acceptance": {
      "type": "object", "additionalProperties": false,
      "required": ["everyCaseMustDeny", "expectedReasonMustBeReturned", "noValueMovementEvidenceRequired", "tamperEvidentTestReportRequiredForProduction", "independentReviewRequiredForProduction", "happyPathOnlyTestingSufficient"],
      "properties": {
        "everyCaseMustDeny": {"const": true},
        "expectedReasonMustBeReturned": {"const": true},
        "noValueMovementEvidenceRequired": {"const": true},
        "tamperEvidentTestReportRequiredForProduction": {"const": true},
        "independentReviewRequiredForProduction": {"const": true},
        "happyPathOnlyTestingSufficient": {"const": false}
      }
    },
    "limitations": {
      "type": "object", "additionalProperties": false,
      "required": ["buildTimeTestsAreProductionPenetrationTest", "buildTimeTestsAreIndependentSecurityReview", "buildTimeTestsProveProviderOrBankControls", "buildTimeTestsGrantReleaseAuthority"],
      "properties": {
        "buildTimeTestsAreProductionPenetrationTest": {"const": false},
        "buildTimeTestsAreIndependentSecurityReview": {"const": false},
        "buildTimeTestsProveProviderOrBankControls": {"const": false},
        "buildTimeTestsGrantReleaseAuthority": {"const": false}
      }
    },
    "notice": {"type": "string", "minLength": 1}
  }
}
