{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://developer.reits.tech/schemas/runner-factory-controller-activation-executor.v1.schema.json",
  "title": "REITs Runner Factory Controller activation executor dry-run boundary",
  "type": "object",
  "required": ["schemaVersion", "status", "observedAt", "scope", "truth", "requirements", "operations", "stateModel", "runbookSteps", "rollbackTriggers", "invariants", "verification", "productionPrerequisites", "fixtureRegistry", "discovery"],
  "properties": {
    "schemaVersion": { "const": "developer.reits.tech/runner-factory-controller-activation-executor/v1" },
    "status": { "const": "ACTIVATION_EXECUTOR_DRY_RUN_IMPLEMENTED_NOT_CONFIGURED" },
    "observedAt": { "type": "string", "format": "date-time" },
    "scope": {
      "type": "object",
      "required": ["mode", "input", "output", "endpoint", "requestValiditySeconds", "maintenanceWindowSeconds", "rollbackDeadlineSeconds", "networkAuthority", "deploymentAuthority"],
      "properties": {
        "mode": { "const": "TEST_ONLY_RUNBOOK_NO_EXECUTOR" },
        "input": { "const": "LISTENER_CANDIDATE_WINDOW_PREFLIGHT_ROLLBACK_GUARD_CONFIRMATIONS" },
        "output": { "const": "OPAQUE_ONE_SHOT_ACTIVATION_RUNBOOK" },
        "endpoint": { "const": "127.0.0.1:8110" },
        "requestValiditySeconds": { "const": 60 },
        "maintenanceWindowSeconds": { "const": 900 },
        "rollbackDeadlineSeconds": { "const": 60 },
        "networkAuthority": { "const": "NONE" },
        "deploymentAuthority": { "const": "NONE" }
      },
      "additionalProperties": false
    },
    "truth": {
      "type": "object",
      "required": ["productionActivationPlanReceipts", "productionMaintenanceWindows", "productionRuntimeConfirmations", "productionPreflightReceipts", "productionRollbackGuards", "activationExecutorsConfigured", "systemdUnitsInstalled", "controllerServicesStarted", "controllerListeners", "listenerStarts", "publicRoutes", "reverseProxyRoutes", "externalReadsExecuted", "externalWritesExecuted", "mutationsExecuted", "paidResourcesCreated", "deploymentPermitted"],
      "properties": {
        "productionActivationPlanReceipts": { "const": 0 }, "productionMaintenanceWindows": { "const": 0 }, "productionRuntimeConfirmations": { "const": 0 }, "productionPreflightReceipts": { "const": 0 }, "productionRollbackGuards": { "const": 0 }, "activationExecutorsConfigured": { "const": 0 }, "systemdUnitsInstalled": { "const": 0 }, "controllerServicesStarted": { "const": 0 }, "controllerListeners": { "const": 0 }, "listenerStarts": { "const": 0 }, "publicRoutes": { "const": 0 }, "reverseProxyRoutes": { "const": 0 }, "externalReadsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "mutationsExecuted": { "const": 0 }, "paidResourcesCreated": { "const": false }, "deploymentPermitted": { "const": false }
      },
      "additionalProperties": false
    },
    "requirements": {
      "type": "array", "minItems": 8, "maxItems": 8,
      "items": { "type": "object", "required": ["id", "count", "proof"], "properties": { "id": { "type": "string" }, "count": { "type": "integer", "minimum": 1 }, "proof": { "type": "string" } }, "additionalProperties": false }
    },
    "operations": {
      "type": "array", "minItems": 4, "maxItems": 4,
      "items": { "type": "object", "required": ["id", "guard", "result"], "properties": { "id": { "enum": ["prepare", "verify", "project", "dispose"] }, "guard": { "type": "string" }, "result": { "type": "string" } }, "additionalProperties": false }
    },
    "stateModel": {
      "type": "array", "minItems": 9, "maxItems": 9,
      "items": { "type": "object", "required": ["id", "meaning"], "properties": { "id": { "type": "string" }, "meaning": { "type": "string" } }, "additionalProperties": false }
    },
    "runbookSteps": {
      "type": "array", "minItems": 8, "maxItems": 8,
      "items": { "type": "object", "required": ["order", "id", "mode"], "properties": { "order": { "type": "integer", "minimum": 1, "maximum": 8 }, "id": { "type": "string" }, "mode": { "const": "NO_EXECUTOR" } }, "additionalProperties": false }
    },
    "rollbackTriggers": { "type": "array", "minItems": 5, "maxItems": 5, "prefixItems": [{ "const": "START_ERROR" }, { "const": "READINESS_TIMEOUT" }, { "const": "IDENTITY_DRIFT" }, { "const": "UNEXPECTED_BIND" }, { "const": "PROXY_DRIFT" }] },
    "invariants": { "type": "array", "minItems": 42, "maxItems": 42, "items": { "type": "string" } },
    "verification": {
      "type": "object",
      "required": ["status", "fixtures", "acceptedOutcomes", "deniedOutcomes", "fixtureEvidenceSignaturesVerified", "runbooksProjected", "productionActivationPlanReceipts", "activationExecutorsConfigured", "systemdUnitsInstalled", "controllerServicesStarted", "listenerStarts", "externalReadsExecuted", "externalWritesExecuted", "mutationsExecuted"],
      "properties": {
        "status": { "const": "PASS_FIXTURE_ONLY" }, "fixtures": { "const": 68 }, "acceptedOutcomes": { "const": 6 }, "deniedOutcomes": { "const": 62 }, "fixtureEvidenceSignaturesVerified": { "const": 110 }, "runbooksProjected": { "const": 3 }, "productionActivationPlanReceipts": { "const": 0 }, "activationExecutorsConfigured": { "const": 0 }, "systemdUnitsInstalled": { "const": 0 }, "controllerServicesStarted": { "const": 0 }, "listenerStarts": { "const": 0 }, "externalReadsExecuted": { "const": 0 }, "externalWritesExecuted": { "const": 0 }, "mutationsExecuted": { "const": 0 }
      },
      "additionalProperties": false
    },
    "productionPrerequisites": { "type": "array", "minItems": 9, "maxItems": 9, "items": { "type": "string" } },
    "fixtureRegistry": {
      "type": "object",
      "required": ["schemaVersion", "fixedTime", "cases"],
      "properties": {
        "schemaVersion": { "const": "developer.reits.tech/runner-factory-controller-activation-executor-fixtures/v1" },
        "fixedTime": { "const": "2026-07-21T05:00:00.000Z" },
        "cases": {
          "type": "array", "minItems": 68, "maxItems": 68,
          "items": { "type": "object", "required": ["id", "profile", "expected"], "properties": { "id": { "pattern": "^RFAE-[0-9]{2}$" }, "profile": { "type": "string" }, "expected": { "enum": ["ACCEPT", "DENY"] }, "outcome": { "type": "string" }, "errorCode": { "type": "string" } }, "additionalProperties": false }
        }
      },
      "additionalProperties": false
    },
    "discovery": {
      "type": "object",
      "required": ["controller", "listenerAuthorization", "workbench", "schema"],
      "properties": {
        "controller": { "const": "/api/runner-factory/controller" },
        "listenerAuthorization": { "const": "/api/runner-factory/controller/listener-authorization" },
        "workbench": { "const": "/release-foundation#activation-executor" },
        "schema": { "const": "/schemas/runner-factory-controller-activation-executor.v1.schema.json" }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
