{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-controller-d05-g04-bootstrap-component-implementation-qualification.v1.schema.json",
  "title": "D05 Cut 66 G04 Bootstrap Component Implementation Qualification",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion", "status", "evaluatedAt", "mode", "program", "discovery", "summary",
    "upstreamContractMatrix", "componentImplementationMatrix", "qualificationControlMatrix",
    "implementationLifecycleMatrix", "componentConformanceSuiteMatrix", "reverseComponentDisposalProofMatrix",
    "implementationQualificationProtocolMatrix", "authorityMatrix", "implementationQualificationGateMatrix",
    "receiptChainMatrix", "terminalReceiptFieldMatrix", "fixtureResults", "decisionCodes", "invariants",
    "selectedProductionPackFailureTrace", "selectedEffectBoundaryTrace", "productionEvaluation", "safetyTruth"
  ],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-controller-d05-g04-bootstrap-component-implementation-qualification/v1" },
    "status": { "const": "D05_G04_BOOTSTRAP_COMPONENT_IMPLEMENTATION_QUALIFICATION_BOUND_PRODUCTION_PACK_ABSENT" },
    "evaluatedAt": { "type": "string", "format": "date-time" },
    "mode": { "const": "DESIGN_AND_FIXTURE_ONLY_NO_PRODUCTION_FACTORY_NO_SOURCE_READ_NO_LISTENER" },
    "program": { "type": "object" },
    "discovery": { "type": "object" },
    "summary": {
      "type": "object",
      "required": ["componentsRequired", "readerFactoriesRequired", "verifierFactoriesRequired", "productionComponentPacks", "qualificationControlsRequired", "lifecycleStates", "implementationPacketsRequired", "conformanceSuitesRequired", "reverseDisposalProofsRequired", "protocolStagesRequired", "authorityRolesRequired", "qualificationGates", "receiptChainEntries", "terminalReceiptFields", "fixtureCases", "fixtureAssertionsPassed", "fixtureQualified", "fixtureDenied", "invariantAssertions", "d05G04Satisfied"],
      "properties": {
        "componentsRequired": { "const": 6 },
        "readerFactoriesRequired": { "const": 5 },
        "verifierFactoriesRequired": { "const": 1 },
        "productionComponentPacks": { "const": 0 },
        "qualificationControlsRequired": { "const": 12 },
        "lifecycleStates": { "const": 8 },
        "implementationPacketsRequired": { "const": 6 },
        "conformanceSuitesRequired": { "const": 6 },
        "reverseDisposalProofsRequired": { "const": 6 },
        "protocolStagesRequired": { "const": 18 },
        "authorityRolesRequired": { "const": 12 },
        "qualificationGates": { "const": 20 },
        "receiptChainEntries": { "const": 17 },
        "terminalReceiptFields": { "const": 72 },
        "fixtureCases": { "const": 126 },
        "fixtureAssertionsPassed": { "const": 126 },
        "fixtureQualified": { "const": 6 },
        "fixtureDenied": { "const": 120 },
        "invariantAssertions": { "const": 96 },
        "d05G04Satisfied": { "const": false }
      },
      "additionalProperties": true
    },
    "upstreamContractMatrix": { "$ref": "#/$defs/three" },
    "componentImplementationMatrix": { "$ref": "#/$defs/six" },
    "qualificationControlMatrix": { "$ref": "#/$defs/twelve" },
    "implementationLifecycleMatrix": { "$ref": "#/$defs/eight" },
    "componentConformanceSuiteMatrix": { "$ref": "#/$defs/six" },
    "reverseComponentDisposalProofMatrix": { "$ref": "#/$defs/six" },
    "implementationQualificationProtocolMatrix": { "$ref": "#/$defs/eighteen" },
    "authorityMatrix": { "$ref": "#/$defs/twelve" },
    "implementationQualificationGateMatrix": { "$ref": "#/$defs/twenty" },
    "receiptChainMatrix": { "$ref": "#/$defs/seventeen" },
    "terminalReceiptFieldMatrix": { "$ref": "#/$defs/seventyTwo" },
    "fixtureResults": { "$ref": "#/$defs/oneHundredTwentySix" },
    "decisionCodes": { "$ref": "#/$defs/oneHundredTwentySixStrings" },
    "invariants": { "$ref": "#/$defs/ninetySixStrings" },
    "selectedProductionPackFailureTrace": { "type": "object" },
    "selectedEffectBoundaryTrace": { "type": "object" },
    "productionEvaluation": {
      "type": "object",
      "required": ["code", "failedGate", "productionComponentPacksVerified", "productionReaderFactoriesBound", "productionVerifierFactoriesBound", "productionComponentsConstructed", "productionSourceReads", "productionSecretReads", "productionExternalWrites", "productionListenerStarts", "productionPort8110Calls", "resourcesCreated", "d05G04Satisfied", "productionReady"],
      "properties": {
        "productionComponentPacksVerified": { "const": 0 },
        "productionReaderFactoriesBound": { "const": 0 },
        "productionVerifierFactoriesBound": { "const": 0 },
        "productionComponentsConstructed": { "const": 0 },
        "productionSourceReads": { "const": 0 },
        "productionSecretReads": { "const": 0 },
        "productionExternalWrites": { "const": 0 },
        "productionListenerStarts": { "const": 0 },
        "productionPort8110Calls": { "const": 0 },
        "resourcesCreated": { "const": 0 },
        "d05G04Satisfied": { "const": false },
        "productionReady": { "const": false }
      },
      "additionalProperties": true
    },
    "safetyTruth": { "type": "object" }
  },
  "$defs": {
    "object": { "type": "object" },
    "string": { "type": "string" },
    "three": { "type": "array", "minItems": 3, "maxItems": 3, "items": { "$ref": "#/$defs/object" } },
    "six": { "type": "array", "minItems": 6, "maxItems": 6, "items": { "$ref": "#/$defs/object" } },
    "eight": { "type": "array", "minItems": 8, "maxItems": 8, "items": { "$ref": "#/$defs/object" } },
    "twelve": { "type": "array", "minItems": 12, "maxItems": 12, "items": { "$ref": "#/$defs/object" } },
    "seventeen": { "type": "array", "minItems": 17, "maxItems": 17, "items": { "$ref": "#/$defs/object" } },
    "eighteen": { "type": "array", "minItems": 18, "maxItems": 18, "items": { "$ref": "#/$defs/object" } },
    "twenty": { "type": "array", "minItems": 20, "maxItems": 20, "items": { "$ref": "#/$defs/object" } },
    "seventyTwo": { "type": "array", "minItems": 72, "maxItems": 72, "items": { "$ref": "#/$defs/object" } },
    "oneHundredTwentySix": { "type": "array", "minItems": 126, "maxItems": 126, "items": { "$ref": "#/$defs/object" } },
    "oneHundredTwentySixStrings": { "type": "array", "minItems": 126, "maxItems": 126, "items": { "$ref": "#/$defs/string" } },
    "ninetySixStrings": { "type": "array", "minItems": 96, "maxItems": 96, "items": { "$ref": "#/$defs/string" } }
  }
}
