{
  "mode": "live_no_call",
  "provider_calls_enabled": false,
  "quota_state": {
    "odds": "unknown"
  },
  "valid_config": true,
  "source_count": 7,
  "callable_source_count": 0,
  "no_call_hold_count": 7,
  "missing_adapter_source_count": 0,
  "missing_normalizer_source_count": 0,
  "would_call_count": 0,
  "blocked_count": 7,
  "all_calls_blocked": true,
  "provider_sample_bundle_complete": true,
  "provider_sample_source_health_gate": "REVIEW",
  "provider_sample_source_health_review_required": true,
  "odds_api_request_plan_safe": true,
  "odds_api_request_group_count": 2,
  "odds_api_total_market_count": 15,
  "odds_api_schedule_event_id_required": true,
  "odds_api_request_sequence": [
    "Resolve NFL schedule/event ids from provider samples or nflverse schedule data.",
    "Fetch featured team markets from the sport odds endpoint when live calls are approved.",
    "Fetch event-level team/player markets per event id when live calls are approved.",
    "Normalize, line-shop, then re-run publish-time edge gates before surfacing candidates."
  ],
  "manual_injury_overrides_ready": true,
  "manual_injury_override_valid_count": 3,
  "manual_injury_override_invalid_count": 0,
  "manual_injury_opportunity_record_count": 2,
  "manual_injury_review_required": true,
  "rows": [
    {
      "source_key": "schedule",
      "source_label": "Game Metadata",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "odds",
      "source_label": "Market Lines",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 2,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "usage",
      "source_label": "Usage and Role",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "injuries",
      "source_label": "Injuries and Inactives",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "team_context",
      "source_label": "Team Context",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "matchup",
      "source_label": "Defensive Matchup",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    },
    {
      "source_key": "weather",
      "source_label": "Weather",
      "live_adapter_count": 1,
      "normalizer_available": true,
      "provider_sample_ready": true,
      "provider_sample_record_count": 1,
      "provider_calls_enabled": false,
      "dry_run_status": "BLOCKED_NO_CALL",
      "would_call_provider": false,
      "blocked_reason": "provider calls disabled in mode=live_no_call",
      "readiness_stage": "no_call_hold",
      "required_before_callable": [
        "explicit_live_provider_approval",
        "runtime_mode_allows_provider_calls",
        "quota_available",
        "season_window_eligible",
        "leave_live_no_call_mode"
      ],
      "notes": "No provider call is made by this dry run."
    }
  ],
  "allowed_actions": [
    "build adapters",
    "validate schema samples",
    "render readiness reports",
    "run fixture/sample QA"
  ],
  "blocked_actions": [
    "call live providers",
    "publish live picks"
  ],
  "policy_notes": [
    "provider API calls disabled by runtime mode"
  ],
  "required_before_any_call": [
    "explicit_live_provider_approval",
    "runtime_mode_allows_provider_calls",
    "quota_available",
    "provider_samples_valid",
    "normalizers_available",
    "season_window_eligible"
  ]
}