{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-controller-dossier-artifact-projection.v1.schema.json",
  "title": "Runner Controller D05 Runtime Dossier Artifact Projection",
  "type": "object",
  "additionalProperties": false,
  "required": ["schemaVersion", "status", "evaluatedAt", "mode", "program", "summary", "liveIdentity", "projection", "inputSet", "storageAdmission", "artifactContract", "pipeline", "storeControls", "decisionStates", "invariants", "safetyTruth", "discovery"],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-controller-dossier-artifact-projection/v1" },
    "status": {
      "enum": [
        "LIVE_IDENTITY_UNVERIFIED_PROJECTION_DENIED",
        "IMMUTABLE_DOSSIER_PROJECTION_READY_STORE_UNAVAILABLE",
        "STORE_CONFIGURED_WRITE_AUTHORITY_UNVERIFIED",
        "DIGEST_KEY_CONFLICT_MANUAL_REVIEW_REQUIRED"
      ]
    },
    "evaluatedAt": { "type": "string", "format": "date-time" },
    "mode": { "const": "RUNTIME_DETERMINISTIC_CONTENT_ADDRESSING_NO_PERSISTENCE_NO_SIGNATURE_NO_SEAL" },
    "program": { "$ref": "#/$defs/program" },
    "summary": { "$ref": "#/$defs/summary" },
    "liveIdentity": { "type": "object", "required": ["schemaVersion", "status", "releaseId", "source", "artifact", "sbom", "configuration", "migration", "rollback"], "additionalProperties": true },
    "projection": {
      "oneOf": [
        { "type": "null" },
        {
          "type": "object",
          "additionalProperties": false,
          "required": ["id", "contentDigest", "canonicalBytes", "proposedObjectKey", "envelope"],
          "properties": {
            "id": { "type": "string", "pattern": "^d05-runtime-artifact@[0-9a-f]{12}-[0-9a-f]{12}$" },
            "contentDigest": { "$ref": "#/$defs/digest" },
            "canonicalBytes": { "type": "integer", "minimum": 1 },
            "proposedObjectKey": { "type": "string", "pattern": "^d05/runtime-dossiers/.+/[0-9a-f]{64}\\.json$" },
            "envelope": { "$ref": "#/$defs/envelope" }
          }
        }
      ]
    },
    "inputSet": {
      "type": "array",
      "minItems": 6,
      "maxItems": 6,
      "uniqueItems": true,
      "items": { "$ref": "#/$defs/input" }
    },
    "storageAdmission": {
      "type": "object",
      "additionalProperties": false,
      "required": ["objectStoreBinding", "metadataIndexBinding", "configuredControls", "requiredControls", "runtimeArtifactsObserved", "storageReceiptsObserved", "writerAuthoritiesObserved", "status", "storeWritePermitted", "writeAttempted", "missingControls", "nextRequiredBoundary"],
      "properties": {
        "objectStoreBinding": { "type": "null" },
        "metadataIndexBinding": { "type": "null" },
        "configuredControls": { "const": 0 },
        "requiredControls": { "const": 10 },
        "runtimeArtifactsObserved": { "const": 0 },
        "storageReceiptsObserved": { "const": 0 },
        "writerAuthoritiesObserved": { "const": 0 },
        "status": { "const": "NO_DURABLE_DOSSIER_STORE_CONFIGURED" },
        "storeWritePermitted": { "const": false },
        "writeAttempted": { "const": false },
        "missingControls": { "type": "array", "minItems": 10, "maxItems": 10, "items": { "type": "string", "pattern": "^SC-[0-9]{2}$" } },
        "nextRequiredBoundary": { "type": "string", "minLength": 1 }
      }
    },
    "artifactContract": { "$ref": "#/$defs/artifactContract" },
    "pipeline": {
      "type": "array",
      "minItems": 8,
      "maxItems": 8,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["ordinal", "id", "operation", "status"],
        "properties": {
          "ordinal": { "type": "integer", "minimum": 1, "maximum": 8 },
          "id": { "type": "string", "minLength": 1 },
          "operation": { "type": "string", "minLength": 1 },
          "status": { "enum": ["COMPUTED_IN_REQUEST", "INPUTS_HASHED_IDENTITY_BLOCKED", "BLOCKED_LIVE_IDENTITY_UNVERIFIED", "BLOCKED_STORE_AND_AUTHORITY_ABSENT"] }
        }
      }
    },
    "storeControls": {
      "type": "array",
      "minItems": 10,
      "maxItems": 10,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["id", "control", "owner", "observed", "status"],
        "properties": {
          "id": { "type": "string", "pattern": "^SC-[0-9]{2}$" },
          "control": { "type": "string", "minLength": 1 },
          "owner": { "type": "string", "minLength": 1 },
          "observed": { "const": false },
          "status": { "const": "MISSING" }
        }
      }
    },
    "decisionStates": {
      "type": "array",
      "minItems": 4,
      "maxItems": 4,
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": ["status", "condition", "projectionAvailable", "storeWritePermitted"],
        "properties": {
          "status": { "type": "string", "minLength": 1 },
          "condition": { "type": "string", "minLength": 1 },
          "projectionAvailable": { "type": "boolean" },
          "storeWritePermitted": { "const": false }
        }
      }
    },
    "invariants": { "type": "array", "minItems": 10, "maxItems": 10, "uniqueItems": true, "items": { "type": "string", "minLength": 1 } },
    "safetyTruth": { "$ref": "#/$defs/safetyTruth" },
    "discovery": {
      "type": "object",
      "additionalProperties": false,
      "required": ["workbench", "schema", "liveIdentity", "driftSentinel", "candidateHistory", "closure"],
      "properties": {
        "workbench": { "const": "/release-foundation#runner-controller-dossier-artifact-projection" },
        "schema": { "const": "/schemas/runner-controller-dossier-artifact-projection.v1.schema.json" },
        "liveIdentity": { "const": "/api/release-unit" },
        "driftSentinel": { "const": "/api/runner-controller/dossier-drift-status" },
        "candidateHistory": { "const": "/api/runner-controller/dossier-regeneration" },
        "closure": { "const": "/api/runner-factory/controller/d05-acceptance-closure" }
      }
    }
  },
  "$defs": {
    "digest": { "type": "string", "pattern": "^sha256:[0-9a-f]{64}$" },
    "program": {
      "type": "object",
      "additionalProperties": false,
      "required": ["acceptedKnives", "totalKnives", "currentKnife", "closeoutCut", "remainingIncludingCurrent", "remainingAfterAcceptance", "d05Accepted"],
      "properties": {
        "acceptedKnives": { "const": 4 },
        "totalKnives": { "const": 36 },
        "currentKnife": { "const": "D05" },
        "closeoutCut": { "const": 11 },
        "remainingIncludingCurrent": { "const": 32 },
        "remainingAfterAcceptance": { "const": 31 },
        "d05Accepted": { "const": false }
      }
    },
    "summary": {
      "type": "object",
      "additionalProperties": false,
      "required": ["runtimeBindingsPresent", "runtimeBindingsRequired", "inputsHashed", "inputsRequired", "projectionAvailable", "contentDigestComputed", "objectStoreConfigured", "metadataIndexConfigured", "configuredStoreControls", "requiredStoreControls", "externalWritesExecuted", "storedArtifactsCreated", "gateReceiptsObserved", "gateReceiptsRequired", "independentSignaturesObserved", "independentSignaturesRequired", "storeWritePermitted", "dossierSealed", "ownerReviewEligible", "decision"],
      "properties": {
        "runtimeBindingsPresent": { "type": "integer", "minimum": 0, "maximum": 7 },
        "runtimeBindingsRequired": { "const": 7 },
        "inputsHashed": { "const": 6 },
        "inputsRequired": { "const": 6 },
        "projectionAvailable": { "type": "boolean" },
        "contentDigestComputed": { "type": "boolean" },
        "objectStoreConfigured": { "const": false },
        "metadataIndexConfigured": { "const": false },
        "configuredStoreControls": { "const": 0 },
        "requiredStoreControls": { "const": 10 },
        "externalWritesExecuted": { "const": 0 },
        "storedArtifactsCreated": { "const": 0 },
        "gateReceiptsObserved": { "const": 0 },
        "gateReceiptsRequired": { "const": 11 },
        "independentSignaturesObserved": { "const": 0 },
        "independentSignaturesRequired": { "const": 5 },
        "storeWritePermitted": { "const": false },
        "dossierSealed": { "const": false },
        "ownerReviewEligible": { "const": false },
        "decision": { "type": "string", "minLength": 1 }
      }
    },
    "input": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "source", "covers", "schemaVersion", "contentDigest", "canonicalBytes", "gatesSatisfied", "state"],
      "properties": {
        "id": { "type": "string", "minLength": 1 },
        "source": { "type": "string", "minLength": 1 },
        "covers": { "type": "string", "pattern": "^D05-G" },
        "schemaVersion": { "type": "string", "minLength": 1 },
        "contentDigest": { "$ref": "#/$defs/digest" },
        "canonicalBytes": { "type": "integer", "minimum": 1 },
        "gatesSatisfied": { "const": 0 },
        "state": { "const": "BUNDLED_INPUT_HASHED_UNQUALIFIED" }
      }
    },
    "artifactContract": {
      "type": "object",
      "additionalProperties": false,
      "required": ["schemaVersion", "mediaType", "canonicalEncoding", "hashAlgorithm", "objectKeyTemplate", "writeCondition", "readbackRequirement", "portalReleaseBundlePermitted", "mutableObjectKeyPermitted", "overwritePermitted"],
      "properties": {
        "schemaVersion": { "const": "developer.reits.tech/runner-controller-dossier-artifact-envelope/v1" },
        "mediaType": { "const": "application/vnd.reits.d05-dossier+json" },
        "canonicalEncoding": { "const": "UTF-8_CANONICAL_JSON" },
        "hashAlgorithm": { "const": "SHA-256" },
        "objectKeyTemplate": { "type": "string" },
        "writeCondition": { "const": "PUT_IF_ABSENT_EXACT_CONTENT_DIGEST" },
        "readbackRequirement": { "const": "READ_AFTER_WRITE_AND_RECOMPUTE_SHA256" },
        "portalReleaseBundlePermitted": { "const": false },
        "mutableObjectKeyPermitted": { "const": false },
        "overwritePermitted": { "const": false }
      }
    },
    "envelope": {
      "type": "object",
      "additionalProperties": false,
      "required": ["schemaVersion", "mediaType", "kind", "subject", "inputs", "gateDisposition", "authorityBoundary"],
      "properties": {
        "schemaVersion": { "const": "developer.reits.tech/runner-controller-dossier-artifact-envelope/v1" },
        "mediaType": { "const": "application/vnd.reits.d05-dossier+json" },
        "kind": { "const": "D05_RUNTIME_CLOSURE_DOSSIER_CANDIDATE" },
        "subject": { "type": "object", "additionalProperties": { "type": "string" }, "minProperties": 7, "maxProperties": 7 },
        "inputs": { "type": "array", "minItems": 6, "maxItems": 6, "items": { "type": "object" } },
        "gateDisposition": { "type": "object", "additionalProperties": true },
        "authorityBoundary": { "type": "object", "additionalProperties": true }
      }
    },
    "safetyTruth": {
      "type": "object",
      "additionalProperties": false,
      "required": ["runtimeIdentityReadsModeled", "inputObjectsHashed", "artifactProjectionOperationsImplemented", "runtimeProjectionsPersisted", "objectStoreBindingsConfigured", "metadataIndexesConfigured", "externalWritesExecuted", "storedArtifactsCreated", "storageReceiptsIssued", "signaturesVerified", "dossiersSealed", "ownerReviewsRequested", "controllerListenerStarts", "paidResourcesCreated", "d05Accepted"],
      "properties": {
        "runtimeIdentityReadsModeled": { "const": 1 },
        "inputObjectsHashed": { "const": 6 },
        "artifactProjectionOperationsImplemented": { "const": 1 },
        "runtimeProjectionsPersisted": { "const": 0 },
        "objectStoreBindingsConfigured": { "const": 0 },
        "metadataIndexesConfigured": { "const": 0 },
        "externalWritesExecuted": { "const": 0 },
        "storedArtifactsCreated": { "const": 0 },
        "storageReceiptsIssued": { "const": 0 },
        "signaturesVerified": { "const": 0 },
        "dossiersSealed": { "const": 0 },
        "ownerReviewsRequested": { "const": 0 },
        "controllerListenerStarts": { "const": 0 },
        "paidResourcesCreated": { "const": false },
        "d05Accepted": { "const": false }
      }
    }
  }
}
