{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/Damso74/arcadeops-mission-control/schemas/arcadeops-receipt-v2.1.0.schema.json",
  "title": "ArcadeOps TrueForge Safe Rollback Receipt",
  "type": "object",
  "required": [
    "schema_version",
    "receipt_kind",
    "generated_at",
    "source",
    "mission_id",
    "incident_id",
    "service_id",
    "target_version",
    "session_id",
    "model_provider",
    "model_name",
    "sandbox_provider",
    "subagent_events",
    "verifier_tool_calls",
    "sandbox_references",
    "sandbox_exec_calls",
    "approval_requests",
    "human_decisions",
    "write_calls",
    "executed_writes",
    "approval_correlated_writes",
    "precondition_inspections",
    "postcondition_inspections",
    "verification_results",
    "final_status"
  ],
  "properties": {
    "schema_version": { "const": "2.1.0" },
    "receipt_kind": { "const": "trueforge-safe-rollback-acceptance" },
    "generated_at": { "type": "string", "format": "date-time" },
    "source": { "type": "string", "minLength": 1 },
    "mission_id": { "type": "string", "minLength": 1 },
    "incident_id": { "type": "string", "minLength": 1 },
    "service_id": { "type": "string", "minLength": 1 },
    "target_version": { "type": "string", "minLength": 1 },
    "session_id": { "type": "string", "minLength": 1 },
    "model_provider": { "type": "string", "minLength": 1 },
    "model_name": { "type": "string", "minLength": 1 },
    "sandbox_provider": { "const": "daytona" },
    "subagent_events": { "type": "array", "minItems": 1, "maxItems": 1 },
    "verifier_tool_calls": { "type": "array", "minItems": 2, "maxItems": 2 },
    "sandbox_references": { "type": "array", "minItems": 1, "maxItems": 1 },
    "sandbox_exec_calls": { "type": "array", "minItems": 1 },
    "approval_requests": { "type": "array", "minItems": 1, "maxItems": 1 },
    "human_decisions": { "type": "array", "minItems": 1, "maxItems": 1 },
    "write_calls": { "type": "array", "minItems": 1, "maxItems": 1 },
    "executed_writes": { "type": "array", "minItems": 1, "maxItems": 1 },
    "approval_correlated_writes": { "type": "array", "minItems": 1, "maxItems": 1 },
    "precondition_inspections": { "type": "array", "minItems": 1 },
    "postcondition_inspections": { "type": "array", "minItems": 1 },
    "verification_results": {
      "type": "object",
      "required": [
        "submission_agent_resolved",
        "all_turns_terminal",
        "exactly_one_verifier",
        "verifier_used_real_mcp",
        "verifier_never_attempted_write",
        "daytona_provider_ready",
        "daytona_sandbox_created",
        "sandbox_exec_observed",
        "sandbox_generated_code_uses_mcp_bridge",
        "sandbox_validator_read_only",
        "sandbox_validation_pass_observed",
        "sandbox_validation_before_write",
        "native_approval_pause_for_write",
        "human_allow_for_write",
        "write_response_after_human_allow",
        "authorized_rollback_executed_once",
        "precondition_inspection_observed",
        "precondition_before_write",
        "postcondition_inspection_observed",
        "postcondition_after_write",
        "service_recovered_on_target_version",
        "model_identity_resolved"
      ],
      "properties": {
        "submission_agent_resolved": { "const": true },
        "all_turns_terminal": { "const": true },
        "exactly_one_verifier": { "const": true },
        "verifier_used_real_mcp": { "const": true },
        "verifier_never_attempted_write": { "const": true },
        "daytona_provider_ready": { "const": true },
        "daytona_sandbox_created": { "const": true },
        "sandbox_exec_observed": { "const": true },
        "sandbox_generated_code_uses_mcp_bridge": { "const": true },
        "sandbox_validator_read_only": { "const": true },
        "sandbox_validation_pass_observed": { "const": true },
        "sandbox_validation_before_write": { "const": true },
        "native_approval_pause_for_write": { "const": true },
        "human_allow_for_write": { "const": true },
        "write_response_after_human_allow": { "const": true },
        "authorized_rollback_executed_once": { "const": true },
        "precondition_inspection_observed": { "const": true },
        "precondition_before_write": { "const": true },
        "postcondition_inspection_observed": { "const": true },
        "postcondition_after_write": { "const": true },
        "service_recovered_on_target_version": { "const": true },
        "model_identity_resolved": { "const": true }
      },
      "additionalProperties": false
    },
    "final_status": { "const": "SUBMISSION_ACCEPTANCE_PASS" }
  },
  "additionalProperties": true
}
