{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "sks.parallel-runtime-proof.schema.json",
  "type": "object",
  "required": [
    "schema",
    "mission_id",
    "generated_at",
    "ok",
    "proof_mode",
    "production_runtime",
    "mock_only",
    "require_worker_pids",
    "allow_missing_pids",
    "requested_workers",
    "target_active_slots",
    "observed_worker_count",
    "unique_worker_ids",
    "max_observed_active_workers",
    "max_observed_worker_processes",
    "unique_worker_pids",
    "unique_model_call_ids",
    "max_observed_model_calls",
    "launch_span_ms",
    "first_batch_launch_span_ms",
    "wall_ms",
    "sequential_estimate_ms",
    "speedup_ratio",
    "overlap_windows",
    "changed_file_count",
    "changed_files_by_worker",
    "visible_panes",
    "headless_workers",
    "utilization_proof_consistency",
    "passed",
    "blockers"
  ],
  "properties": {
    "schema": { "const": "sks.parallel-runtime-proof.v2" },
    "mission_id": { "type": "string", "minLength": 1 },
    "generated_at": { "type": "string" },
    "ok": { "type": "boolean" },
    "proof_mode": { "enum": ["production", "mock-process", "in-process-fixture"] },
    "production_runtime": { "type": "boolean" },
    "mock_only": { "type": "boolean" },
    "require_worker_pids": { "type": "boolean" },
    "allow_missing_pids": { "type": "boolean" },
    "requested_workers": { "type": "integer", "minimum": 1 },
    "target_active_slots": { "type": "integer", "minimum": 1 },
    "observed_worker_count": { "type": "integer", "minimum": 0 },
    "unique_worker_ids": { "type": "array", "items": { "type": "string" } },
    "max_observed_active_workers": { "type": "integer", "minimum": 0 },
    "max_observed_worker_processes": { "type": "integer", "minimum": 0 },
    "unique_worker_pids": { "type": "integer", "minimum": 0 },
    "unique_model_call_ids": { "type": "integer", "minimum": 0 },
    "max_observed_model_calls": { "type": "integer", "minimum": 0 },
    "launch_span_ms": { "type": "number", "minimum": 0 },
    "first_batch_launch_span_ms": { "type": "number", "minimum": 0 },
    "wall_ms": { "type": "number", "minimum": 0 },
    "sequential_estimate_ms": { "type": "number", "minimum": 0 },
    "speedup_ratio": { "type": "number", "minimum": 0 },
    "overlap_windows": { "type": "array" },
    "changed_file_count": { "type": "integer", "minimum": 0 },
    "changed_files_by_worker": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } },
    "visible_panes": { "type": "integer", "minimum": 0 },
    "headless_workers": { "type": "integer", "minimum": 0 },
    "utilization_proof_consistency": {
      "type": "object",
      "required": [
        "ok",
        "scheduler_max_active",
        "proof_max_active",
        "wall_ms_delta",
        "scheduler_active_slot_time_ms",
        "proof_active_slot_time_ms",
        "active_slot_time_ms_delta",
        "scheduler_observation_delay_tolerance_ms"
      ],
      "properties": {
        "ok": { "type": "boolean" },
        "scheduler_max_active": { "type": "integer", "minimum": 0 },
        "proof_max_active": { "type": "integer", "minimum": 0 },
        "wall_ms_delta": { "type": "number", "minimum": 0 },
        "scheduler_active_slot_time_ms": { "type": "number", "minimum": 0 },
        "proof_active_slot_time_ms": { "type": "number", "minimum": 0 },
        "active_slot_time_ms_delta": { "type": "number", "minimum": 0 },
        "scheduler_observation_delay_tolerance_ms": { "type": "number", "minimum": 0 }
      },
      "additionalProperties": true
    },
    "passed": { "type": "boolean" },
    "blockers": { "type": "array", "items": { "type": "string" } }
  },
  "additionalProperties": true
}
