{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-controller-dossier-regeneration.v1.schema.json",
  "title": "D05 point-in-time dossier regeneration candidate",
  "type": "object",
  "required": ["schemaVersion", "status", "observedAt", "mode", "program", "summary", "auditSubject", "priorDossier", "runtimeSnapshot", "inputSet", "bindingMatrix", "candidateDossier", "regenerationPipeline", "sealingRequirements", "invalidationRules", "operatorPlan", "safetyTruth", "verification", "discovery"],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-controller-dossier-regeneration/v1" },
    "status": { "const": "D05_DOSSIER_REGENERATION_CANDIDATE_PREPARED_UNQUALIFIED_NO_SEAL" },
    "observedAt": { "type": "string", "format": "date-time" },
    "mode": { "const": "READ_ONLY_DETERMINISTIC_POINT_IN_TIME_CANDIDATE_NO_SEAL_NO_SIGNATURE_NO_ACCEPTANCE" },
    "program": { "$ref": "#/$defs/program" },
    "summary": { "$ref": "#/$defs/summary" },
    "auditSubject": { "$ref": "#/$defs/auditSubject" },
    "priorDossier": { "$ref": "#/$defs/priorDossier" },
    "runtimeSnapshot": { "$ref": "#/$defs/runtimeSnapshot" },
    "inputSet": { "type": "array", "minItems": 6, "maxItems": 6, "items": { "$ref": "#/$defs/input" } },
    "bindingMatrix": { "type": "array", "minItems": 6, "maxItems": 6, "items": { "$ref": "#/$defs/binding" } },
    "candidateDossier": { "$ref": "#/$defs/candidate" },
    "regenerationPipeline": { "type": "array", "minItems": 7, "maxItems": 7, "items": { "$ref": "#/$defs/pipelineStep" } },
    "sealingRequirements": { "type": "array", "minItems": 8, "maxItems": 8, "items": { "$ref": "#/$defs/sealingRequirement" } },
    "invalidationRules": { "type": "array", "minItems": 8, "maxItems": 8, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
    "operatorPlan": { "$ref": "#/$defs/operatorPlan" },
    "safetyTruth": { "$ref": "#/$defs/safetyTruth" },
    "verification": { "$ref": "#/$defs/verification" },
    "discovery": { "$ref": "#/$defs/discovery" }
  },
  "$defs": {
    "source": { "type": "string", "pattern": "^[0-9a-f]{40}$" },
    "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
    "release": { "type": "string", "pattern": "^developer-portal@[0-9a-f]{12}-[0-9a-f]{12}$" },
    "program": {
      "type": "object",
      "required": ["acceptedKnives", "totalKnives", "currentKnife", "closeoutCut", "remainingIncludingCurrent", "remainingAfterAcceptance", "d05Accepted"],
      "properties": {
        "acceptedKnives": { "const": 4 }, "totalKnives": { "const": 36 }, "currentKnife": { "const": "D05" }, "closeoutCut": { "const": 9 },
        "remainingIncludingCurrent": { "const": 32 }, "remainingAfterAcceptance": { "const": 31 }, "d05Accepted": { "const": false }
      },
      "additionalProperties": false
    },
    "summary": {
      "type": "object",
      "required": ["inputsPresent", "inputsRequired", "inputContentsUnchangedFromPrior", "gateReceiptsObserved", "gateReceiptsRequired", "gatesSatisfied", "gatesRequired", "independentSignaturesObserved", "independentSignaturesRequired", "priorDossierMatchesAuditedRelease", "candidateBoundToAuditedRelease", "candidateSealable", "ownerReviewEligible", "decision"],
      "properties": {
        "inputsPresent": { "const": 6 }, "inputsRequired": { "const": 6 }, "inputContentsUnchangedFromPrior": { "const": 6 },
        "gateReceiptsObserved": { "const": 0 }, "gateReceiptsRequired": { "const": 11 }, "gatesSatisfied": { "const": 0 }, "gatesRequired": { "const": 11 },
        "independentSignaturesObserved": { "const": 0 }, "independentSignaturesRequired": { "const": 5 }, "priorDossierMatchesAuditedRelease": { "const": false },
        "candidateBoundToAuditedRelease": { "const": true }, "candidateSealable": { "const": false }, "ownerReviewEligible": { "const": false },
        "decision": { "const": "PREPARE_CANDIDATE_BUT_DENY_SEAL_REVIEW_AND_ACCEPTANCE" }
      },
      "additionalProperties": false
    },
    "auditSubject": {
      "type": "object",
      "required": ["pointInTime", "releaseId", "sourceRevision", "artifactDigest", "configurationDigest", "rollbackReleaseId", "liveIdentityApi", "statement"],
      "properties": {
        "pointInTime": { "const": true }, "releaseId": { "$ref": "#/$defs/release" }, "sourceRevision": { "$ref": "#/$defs/source" }, "artifactDigest": { "$ref": "#/$defs/digest" },
        "configurationDigest": { "$ref": "#/$defs/digest" }, "rollbackReleaseId": { "$ref": "#/$defs/release" }, "liveIdentityApi": { "const": "/api/release-unit" }, "statement": { "type": "string", "minLength": 1 }
      },
      "additionalProperties": false
    },
    "priorDossier": {
      "type": "object",
      "required": ["id", "digest", "releaseId", "sourceRevision", "artifactDigest", "rollbackReleaseId", "qualified", "state"],
      "properties": {
        "id": { "type": "string", "pattern": "^d05-closure@[0-9a-f]{12}-[0-9a-f]{12}$" }, "digest": { "$ref": "#/$defs/digest" }, "releaseId": { "$ref": "#/$defs/release" },
        "sourceRevision": { "$ref": "#/$defs/source" }, "artifactDigest": { "$ref": "#/$defs/digest" }, "rollbackReleaseId": { "$ref": "#/$defs/release" },
        "qualified": { "const": false }, "state": { "const": "STALE_RELEASE_MISMATCH_REJECT_FOR_NEW_APPROVALS" }
      },
      "additionalProperties": false
    },
    "ec2Snapshot": {
      "type": "object",
      "required": ["releaseId", "sourceRevision", "artifactDigest", "serviceState", "listeners", "controller8110Observed"],
      "properties": {
        "releaseId": { "$ref": "#/$defs/release" }, "sourceRevision": { "$ref": "#/$defs/source" }, "artifactDigest": { "$ref": "#/$defs/digest" },
        "serviceState": { "const": "ACTIVE" }, "listeners": { "const": ["127.0.0.1:8100"] }, "controller8110Observed": { "const": false }
      },
      "additionalProperties": false
    },
    "sitesSnapshot": {
      "type": "object",
      "required": ["releaseId", "sourceRevision", "artifactDigest", "version", "environmentRevision", "accessMode", "allowedUsers", "allowedGroups"],
      "properties": {
        "releaseId": { "$ref": "#/$defs/release" }, "sourceRevision": { "$ref": "#/$defs/source" }, "artifactDigest": { "$ref": "#/$defs/digest" },
        "version": { "const": 140 }, "environmentRevision": { "const": 20 }, "accessMode": { "const": "OWNER_ONLY_CUSTOM" }, "allowedUsers": { "const": 1 }, "allowedGroups": { "const": 0 }
      },
      "additionalProperties": false
    },
    "runtimeSnapshot": {
      "type": "object", "required": ["pointInTime", "ec2", "sites"],
      "properties": { "pointInTime": { "const": true }, "ec2": { "$ref": "#/$defs/ec2Snapshot" }, "sites": { "$ref": "#/$defs/sitesSnapshot" } }, "additionalProperties": false
    },
    "input": {
      "type": "object",
      "required": ["id", "path", "api", "covers", "gatesRequired", "priorDigest", "currentDigest", "contentMatchesPrior", "gatesSatisfied", "state"],
      "properties": {
        "id": { "enum": ["closure-contract", "capacity-evidence", "readiness-evidence", "activation-evidence", "installation-evidence", "release-evidence"] },
        "path": { "type": "string", "pattern": "^(data|ops)/" }, "api": { "type": "string", "pattern": "^/api/" }, "covers": { "type": "string", "pattern": "^D05-G" },
        "gatesRequired": { "type": "integer", "minimum": 2, "maximum": 11 }, "priorDigest": { "$ref": "#/$defs/digest" }, "currentDigest": { "$ref": "#/$defs/digest" },
        "contentMatchesPrior": { "const": true }, "gatesSatisfied": { "const": 0 }, "state": { "enum": ["PRESENT_DIRECTORY_ONLY_UNQUALIFIED", "PRESENT_DENIED_UNQUALIFIED"] }
      },
      "additionalProperties": false
    },
    "binding": {
      "type": "object", "required": ["field", "prior", "candidate", "matchesPrior", "candidateBound", "status"],
      "properties": {
        "field": { "enum": ["releaseId", "sourceRevision", "artifactDigest", "configurationDigest", "rollbackReleaseId", "compositeDigest"] },
        "prior": { "type": ["string", "null"] }, "candidate": { "type": "string", "minLength": 1 }, "matchesPrior": { "type": "boolean" }, "candidateBound": { "const": true },
        "status": { "enum": ["REBOUND_POINT_IN_TIME", "ADDED_POINT_IN_TIME", "UNCHANGED_CONTENT_NOT_RELEASE_PROOF", "CONTENT_CHANGED_REVIEW_REQUIRED"] }
      },
      "additionalProperties": false
    },
    "candidate": {
      "type": "object",
      "required": ["id", "digest", "releaseId", "sourceRevision", "artifactDigest", "configurationDigest", "rollbackReleaseId", "inputsPresent", "inputsRequired", "gatesSatisfied", "gatesRequired", "independentlySigned", "allReceiptsFresh", "qualified", "sealed", "reviewEligible", "state"],
      "properties": {
        "id": { "type": "string", "pattern": "^d05-candidate@[0-9a-f]{12}-[0-9a-f]{12}$" }, "digest": { "$ref": "#/$defs/digest" }, "releaseId": { "$ref": "#/$defs/release" },
        "sourceRevision": { "$ref": "#/$defs/source" }, "artifactDigest": { "$ref": "#/$defs/digest" }, "configurationDigest": { "$ref": "#/$defs/digest" }, "rollbackReleaseId": { "$ref": "#/$defs/release" },
        "inputsPresent": { "const": 6 }, "inputsRequired": { "const": 6 }, "gatesSatisfied": { "const": 0 }, "gatesRequired": { "const": 11 },
        "independentlySigned": { "const": false }, "allReceiptsFresh": { "const": false }, "qualified": { "const": false }, "sealed": { "const": false }, "reviewEligible": { "const": false },
        "state": { "const": "PREPARED_UNQUALIFIED_POINT_IN_TIME_CANDIDATE" }
      },
      "additionalProperties": false
    },
    "pipelineStep": {
      "type": "object", "required": ["ordinal", "id", "action", "result"],
      "properties": { "ordinal": { "type": "integer", "minimum": 1, "maximum": 7 }, "id": { "type": "string", "minLength": 1 }, "action": { "type": "string", "minLength": 1 }, "result": { "type": "string", "minLength": 1 } }, "additionalProperties": false
    },
    "sealingRequirement": {
      "type": "object", "required": ["id", "requirement", "observed", "status"],
      "properties": { "id": { "type": "string", "pattern": "^SR-0[1-8]$" }, "requirement": { "type": "string", "minLength": 1 }, "observed": { "const": false }, "status": { "type": "string", "minLength": 1 } }, "additionalProperties": false
    },
    "operatorPlan": {
      "type": "object", "required": ["nextAction", "forbiddenActions"],
      "properties": { "nextAction": { "type": "string", "minLength": 1 }, "forbiddenActions": { "type": "array", "minItems": 5, "maxItems": 5, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } } }, "additionalProperties": false
    },
    "safetyTruth": {
      "type": "object",
      "required": ["readOnlyAuditPerformed", "credentialsRecorded", "inputFilesRead", "liveGateReceiptsObserved", "signaturesVerified", "dossiersSealed", "ownerReviewsRequested", "approvalDecisionsWritten", "d05AcceptanceDecisionsWritten", "controllerListenerStarts", "productionSwitches", "rollbackTransitionsExecuted", "externalWritesExecuted", "paidResourcesCreated", "d05Accepted"],
      "properties": {
        "readOnlyAuditPerformed": { "const": true }, "credentialsRecorded": { "const": false }, "inputFilesRead": { "const": 6 }, "liveGateReceiptsObserved": { "const": 0 },
        "signaturesVerified": { "const": 0 }, "dossiersSealed": { "const": 0 }, "ownerReviewsRequested": { "const": 0 }, "approvalDecisionsWritten": { "const": 0 }, "d05AcceptanceDecisionsWritten": { "const": 0 },
        "controllerListenerStarts": { "const": 0 }, "productionSwitches": { "const": 0 }, "rollbackTransitionsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "paidResourcesCreated": { "const": false }, "d05Accepted": { "const": false }
      },
      "additionalProperties": false
    },
    "verification": {
      "type": "object",
      "required": ["status", "inputsPresent", "inputContentsUnchanged", "gatesSatisfied", "gatesRequired", "independentSignaturesObserved", "independentSignaturesRequired", "candidateSealed", "ownerReviewEligible", "controller8110Observed", "externalWritesExecuted", "d05Accepted"],
      "properties": {
        "status": { "const": "PASS_DETERMINISTIC_POINT_IN_TIME_CANDIDATE_UNQUALIFIED" }, "inputsPresent": { "const": 6 }, "inputContentsUnchanged": { "const": 6 }, "gatesSatisfied": { "const": 0 }, "gatesRequired": { "const": 11 },
        "independentSignaturesObserved": { "const": 0 }, "independentSignaturesRequired": { "const": 5 }, "candidateSealed": { "const": false }, "ownerReviewEligible": { "const": false }, "controller8110Observed": { "const": false }, "externalWritesExecuted": { "const": 0 }, "d05Accepted": { "const": false }
      },
      "additionalProperties": false
    },
    "discovery": {
      "type": "object", "required": ["workbench", "schema", "generator", "liveIdentity", "handoff", "ownerApproval", "closure", "releaseRegistry"],
      "properties": {
        "workbench": { "const": "/release-foundation#runner-controller-dossier-regeneration" }, "schema": { "const": "/schemas/runner-controller-dossier-regeneration.v1.schema.json" },
        "generator": { "const": "scripts/generate-runner-controller-dossier-regeneration.mjs" }, "liveIdentity": { "const": "/api/release-unit" }, "handoff": { "const": "/api/runner-controller/evidence-handoff" },
        "ownerApproval": { "const": "/api/runner-controller/owner-approval-evidence" }, "closure": { "const": "/api/runner-factory/controller/d05-acceptance-closure" }, "releaseRegistry": { "const": "/api/release-units" }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
