{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-factory-controller-disposable-host-execution-envelope-authorizer.v1.schema.json",
  "title": "Runner Factory disposable-host execution-envelope authorizer contract",
  "type": "object",
  "required": ["schemaVersion", "status", "observedAt", "scope", "operations", "upstream", "approvalTopology", "budgetEnvelope", "runtimeEnvelope", "packageBindings", "stateModel", "truth", "selectedDenialTrace", "invariants", "verification", "productionPrerequisites", "fixtureRegistry", "discovery"],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-factory-disposable-host-execution-envelope-authorizer-contract/v1" },
    "status": { "const": "DISPOSABLE_HOST_EXECUTION_ENVELOPE_AUTHORIZER_IMPLEMENTED_NOT_CONFIGURED" },
    "observedAt": { "type": "string", "format": "date-time" },
    "scope": {
      "type": "object",
      "required": ["mode", "input", "output", "hostContacted", "hostProvisioned", "packageLoaded", "driverExecuted", "watchdogStarted", "pricingQuoteFetched", "approvalAuthorityConfigured", "launchAuthority", "promotionAuthority", "productionEntrypointWired"],
      "properties": {
        "mode": { "const": "EXECUTION_ENVELOPE_AUTHORIZATION_ONLY_NO_HOST_LAUNCH" },
        "input": { "type": "string" }, "output": { "type": "string" },
        "hostContacted": { "const": false }, "hostProvisioned": { "const": false }, "packageLoaded": { "const": false }, "driverExecuted": { "const": false }, "watchdogStarted": { "const": false }, "pricingQuoteFetched": { "const": false }, "approvalAuthorityConfigured": { "const": false },
        "launchAuthority": { "const": "NONE" }, "promotionAuthority": { "const": "NONE" }, "productionEntrypointWired": { "const": false }
      },
      "additionalProperties": false
    },
    "operations": { "type": "array", "prefixItems": [{ "const": "prepare" }, { "const": "authorize" }, { "const": "verify" }, { "const": "dispose" }], "minItems": 4, "maxItems": 4 },
    "upstream": { "type": "object" },
    "approvalTopology": {
      "type": "array", "minItems": 3, "maxItems": 3,
      "items": { "type": "object", "required": ["ordinal", "authority", "signerKeyId", "decision"], "properties": { "ordinal": { "type": "integer", "minimum": 1, "maximum": 3 }, "authority": { "enum": ["INDEPENDENT_COST_OWNER", "INDEPENDENT_RUNTIME_OWNER", "INDEPENDENT_RETIREMENT_WATCHDOG"] }, "signerKeyId": { "type": "string", "pattern": "^fixture-p256-" }, "decision": { "type": "string", "minLength": 20 } }, "additionalProperties": false }
    },
    "budgetEnvelope": {
      "type": "object",
      "required": ["currency", "pricingBasis", "estimatedMilliUsd", "approvedMaximumMilliUsd", "livePriceReads", "billingWrites", "paidResourcesCreated"],
      "properties": { "currency": { "const": "USD" }, "pricingBasis": { "const": "SYNTHETIC_FIXTURE_NOT_LIVE_QUOTE" }, "estimatedMilliUsd": { "const": 140 }, "approvedMaximumMilliUsd": { "const": 500 }, "livePriceReads": { "const": 0 }, "billingWrites": { "const": 0 }, "paidResourcesCreated": { "const": false } },
      "additionalProperties": false
    },
    "runtimeEnvelope": {
      "type": "object",
      "required": ["environment", "region", "platform", "maxRunSeconds", "maxCleanupSeconds", "productionConnectivity", "publicNetwork", "artifactDelivery", "commandSurface", "secretSurface"],
      "properties": { "environment": { "const": "NON_PRODUCTION_CONFORMANCE" }, "region": { "const": "ap-southeast-2" }, "platform": { "const": "linux/amd64" }, "maxRunSeconds": { "const": 900 }, "maxCleanupSeconds": { "const": 120 }, "productionConnectivity": { "const": false }, "publicNetwork": { "const": false }, "artifactDelivery": { "const": "PRESTAGED_IMMUTABLE_IMAGE" }, "commandSurface": { "const": "NONE_IN_AUTHORIZATION_LAYER" }, "secretSurface": { "const": "CONFIGREFS_ONLY_NOT_RESOLVED" } },
      "additionalProperties": false
    },
    "packageBindings": { "type": "array", "minItems": 8, "maxItems": 8, "items": { "type": "string", "minLength": 8 } },
    "stateModel": { "type": "array", "minItems": 11, "maxItems": 11, "items": { "type": "string", "pattern": "^[A-Z0-9_]+$" } },
    "truth": {
      "type": "object",
      "required": ["productionHostRuns", "productionHostClaims", "productionCandidatePackages", "productionDriversConfigured", "systemdUnitsInstalled", "controllerServicesStarted", "listenerStarts", "publicRoutes", "reverseProxyRoutes", "pricingReadsExecuted", "externalReadsExecuted", "externalWritesExecuted", "mutationsExecuted", "paidResourcesCreated", "deploymentPermitted"],
      "properties": { "productionHostRuns": { "const": 0 }, "productionHostClaims": { "const": 0 }, "productionCandidatePackages": { "const": 0 }, "productionDriversConfigured": { "const": 0 }, "systemdUnitsInstalled": { "const": 0 }, "controllerServicesStarted": { "const": 0 }, "listenerStarts": { "const": 0 }, "publicRoutes": { "const": 0 }, "reverseProxyRoutes": { "const": 0 }, "pricingReadsExecuted": { "const": 0 }, "externalReadsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "mutationsExecuted": { "const": 0 }, "paidResourcesCreated": { "const": false }, "deploymentPermitted": { "const": false } },
      "additionalProperties": false
    },
    "selectedDenialTrace": { "type": "object", "required": ["fixtureId", "mutation", "expected", "reason"], "properties": { "fixtureId": { "const": "RFDHEA-31" }, "mutation": { "const": "COST_ESTIMATE_OVER_MAX" }, "expected": { "const": "DENY" }, "reason": { "type": "string" } }, "additionalProperties": false },
    "invariants": { "type": "array", "minItems": 54, "maxItems": 54, "items": { "type": "string", "minLength": 12 } },
    "verification": { "type": "object" },
    "productionPrerequisites": { "type": "array", "minItems": 10, "maxItems": 10, "items": { "type": "string", "minLength": 20 } },
    "fixtureRegistry": {
      "type": "object",
      "required": ["schemaVersion", "mode", "cases"],
      "properties": {
        "schemaVersion": { "const": "developer.reits.tech/runner-factory-disposable-host-execution-envelope-authorizer-fixtures/v1" },
        "mode": { "const": "EXECUTION_ENVELOPE_AUTHORIZATION_ONLY_NO_HOST_LAUNCH" },
        "cases": { "type": "array", "minItems": 76, "maxItems": 76, "items": { "type": "object", "required": ["id", "mutation", "expected"], "properties": { "id": { "type": "string", "pattern": "^RFDHEA-[0-9]{2}$" }, "mutation": { "type": "string", "pattern": "^[A-Z0-9_]+$" }, "expected": { "enum": ["ACCEPT", "DENY"] } }, "additionalProperties": false } }
      },
      "additionalProperties": false
    },
    "discovery": {
      "type": "object",
      "required": ["controller", "lifecycle", "upstream", "workbench", "schema"],
      "properties": { "controller": { "const": "/api/runner-factory/controller" }, "lifecycle": { "const": "/api/runner-factory" }, "upstream": { "const": "/api/runner-factory/controller/disposable-host-conformance-dossier-sealer" }, "workbench": { "const": "/release-foundation#disposable-host-execution-envelope-authorizer" }, "schema": { "const": "/schemas/runner-factory-controller-disposable-host-execution-envelope-authorizer.v1.schema.json" } },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
