{
  "generated_at_utc": "2026-07-02T20:23:26.160502Z",
  "contract": {
    "hierarchy": [
      "book",
      "source",
      "sport_or_league",
      "event",
      "market",
      "selection_or_runner_or_outcome",
      "price",
      "mapped_offer",
      "joined_offer",
      "deep_link_or_betslip_link",
      "proof_artifact"
    ],
    "done_definition": "A book/market is done only when raw proof exists, the raw structure is documented, every row is mapped into canonical fields, joins are visible, and available links are exposed."
  },
  "summary": {
    "universe_optic": 238,
    "extra_we_have": 10,
    "total_known_books": 248,
    "have_scraper": 51,
    "optic_without_scraper_yet": 197,
    "all_4_sources_proven": 39,
    "cross_book_mapped": 29,
    "by_source_proven": {
      "cf": 46,
      "hf": 48,
      "or": 41,
      "gh": 48
    },
    "fleet_truth_generated_utc": "2026-06-28T15:50:40.850792+00:00",
    "fleet_tickets_open": 15,
    "crossbook_books": 32,
    "crossbook_rows": 15978
  },
  "source_health": {
    "by_source": {
      "cloudflare_worker": {
        "ok": 45,
        "bad": 5,
        "na": 0,
        "bad_rows": [
          {
            "book": "betsafe",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 direct probe of abet-betsafe-nordicbet-egress-probe /scrape/betsafe returned top-level HTTP 403 text/plain with body `error code: 1010`; diagnostic Worker cannot obtain a populated odds payload from Cloudflare egress.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "caesars",
            "status": "HARD_BLOCKED",
            "detail": "Caesars requires a live browser/WAF session. Fresh 2026-06-24 production proxy probe of abet-caesars-cloudflare-proof mode=browser returned a JSON wrapper but Browser Run failed before capture: Unable to create new browser, code 429 Rate limit exceeded. Direct non-browser requests return upstream/edge HTTP 403.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "draftkings",
            "status": "HARD_BLOCKED",
            "detail": "DraftKings currently blocks Cloudflare Worker egress to sportsbook-nash.draftkings.com. Fresh 2026-06-24 probe of abet-draftkings-cloudflare-proof returned a JSON wrapper but all six upstream sport requests were HTTP 403 text/html, 449 bytes each, json_parse_ok=false. Oracle VM and GitHub Actions still capture the same league endpoints successfully.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "fanatics",
            "status": "HARD_BLOCKED",
            "detail": "Fanatics/betfanatics Cloudflare bot protection returns HTTP 403 to Cloudflare Worker egress. Fresh 2026-06-24 probe of abet-fanatics-cloudflare-proof returned top-level HTTP 403 text/plain body 'error code: 1010'. HF, Oracle WARP, and GitHub sources have parseable JSON proof.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "nordicbet",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 direct probe of abet-betsafe-nordicbet-egress-probe /scrape/nordicbet returned top-level HTTP 403 text/plain with body `error code: 1010`; diagnostic Worker cannot obtain a populated odds payload from Cloudflare egress.",
            "url": null,
            "checked_utc": null
          }
        ]
      },
      "cloudflare_worker_props": {
        "ok": 2,
        "bad": 1,
        "na": 47,
        "bad_rows": [
          {
            "book": "draftkings",
            "status": "HARD_BLOCKED",
            "detail": "DraftKings currently blocks Cloudflare Worker egress for the MLB props depth worker. Fresh 2026-06-24 probe of abet-draftkings-mlb-props-cloudflare-proof attempted 38 MLB category/subcategory endpoints; all 38 upstream requests returned HTTP 403 text/html at about 499-501 bytes with json_parse_ok=false. This is a Cloudflare-to-DK egress blocker, not a props decoder pass.",
            "url": null,
            "checked_utc": null
          }
        ]
      },
      "huggingface_space": {
        "ok": 47,
        "bad": 3,
        "na": 0,
        "bad_rows": [
          {
            "book": "betsafe",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 HF probe executed the Betsafe diagnostic route, but returned zero populated odds-like probes: web/widget/route paths 302 to country-blocked, Strive mobile token HTTP 200 JSON Code=422 session-init failure, Kambi token HTTP 403, and public countries JSON is config-only.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "caesars",
            "status": "HARD_BLOCKED",
            "detail": "Caesars requires a browser/WAF session. Fresh 2026-06-24 HF Playwright probe loaded the Caesars sportsbook page, but every Caesars API hit returned CloudFront HTTP 403 text/html, including /home, /navigation-items, /sports/baseball/quick-picks, and /sports/baseball/tabs.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "nordicbet",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 HF probe executed the NordicBet diagnostic route, but returned zero populated odds-like probes: .com and .dk web/native/widget paths 302 to country-blocked and the .se redirect probe failed TLS verification; no odds JSON passed the gate.",
            "url": null,
            "checked_utc": null
          }
        ]
      },
      "oracle_vm": {
        "ok": 41,
        "bad": 9,
        "na": 0,
        "bad_rows": [
          {
            "book": "ballybet",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/ballybet/scrape",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          },
          {
            "book": "betmgm",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/scrape/betmgm/football",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          },
          {
            "book": "betsafe",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 Oracle mux probe executed seven Betsafe diagnostic checks but returned ok=false and zero populated odds-like probes: web page HTTP 202 empty, widget/route paths 302 country-blocked, Strive mobile token Code=422, Kambi token HTTP 403, public countries config-only.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "caesars",
            "status": "HARD_BLOCKED",
            "detail": "Caesars browser/CDP capture works on local Windows Chrome, but the Oracle VM has no usable Chrome binary and prior Playwright diagnostics show the VM browser runtime hangs. Direct non-browser HTTP returns upstream HTTP 403.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "coral",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/coral/scrape",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          },
          {
            "book": "nordicbet",
            "status": "HARD_BLOCKED",
            "detail": "Fresh 2026-06-24 Oracle mux probe executed seven NordicBet diagnostic checks but returned ok=false and zero populated odds-like probes: web/native/nativesson paths HTTP 202 empty, widget paths 302 country-blocked, and .se TLS verification failure.",
            "url": null,
            "checked_utc": null
          },
          {
            "book": "prophetx",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/prophetx/scrape",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          },
          {
            "book": "thescore",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/thescore/scrape/basketball",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          },
          {
            "book": "underdog",
            "status": "HTTP_524",
            "detail": "wrapper-level error",
            "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/underdog/scrape",
            "checked_utc": "2026-06-28T15:50:40.802454+00:00"
          }
        ]
      },
      "github_actions": {
        "ok": 47,
        "bad": 3,
        "na": 0,
        "bad_rows": [
          {
            "book": "betsafe",
            "status": "HARD_BLOCKED",
            "detail": "GH diagnostic runner py_betsafe_diagnostic_probe is registered and locally emits ::ABET-MANIFEST:: with scraper_executed=true, but captured=false because no odds-like payload is returned. Live GitHub Actions is also account-billing gated. Do not turn this pill green until live GH can run and return populated odds-like JSON.",
            "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/28089158316",
            "checked_utc": "2026-06-24T09:33:52.982455+00:00"
          },
          {
            "book": "caesars",
            "status": "HARD_BLOCKED",
            "detail": "A GH runner would need a real browser/WAF capture lane, and live Actions are currently account-billing gated. Direct non-browser requests return upstream HTTP 403.",
            "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/27510847283",
            "checked_utc": "2026-06-14T20:19:36.547769+00:00"
          },
          {
            "book": "nordicbet",
            "status": "HARD_BLOCKED",
            "detail": "GH diagnostic runner py_nordicbet_diagnostic_probe is registered and locally emits ::ABET-MANIFEST:: with scraper_executed=true, but captured=false because no odds-like payload is returned. Live GitHub Actions is also account-billing gated. Do not turn this pill green until live GH can run and return populated odds-like JSON.",
            "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/28059833695",
            "checked_utc": "2026-06-23T21:57:18.502599+00:00"
          }
        ]
      }
    },
    "hard_blockers": [
      {
        "source": "cloudflare_worker",
        "book": "betsafe",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 direct probe of abet-betsafe-nordicbet-egress-probe /scrape/betsafe returned top-level HTTP 403 text/plain with body `error code: 1010`; diagnostic Worker cannot obtain a populated odds payload from Cloudflare egress.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "cloudflare_worker",
        "book": "caesars",
        "status": "HARD_BLOCKED",
        "detail": "Caesars requires a live browser/WAF session. Fresh 2026-06-24 production proxy probe of abet-caesars-cloudflare-proof mode=browser returned a JSON wrapper but Browser Run failed before capture: Unable to create new browser, code 429 Rate limit exceeded. Direct non-browser requests return upstream/edge HTTP 403.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "cloudflare_worker",
        "book": "draftkings",
        "status": "HARD_BLOCKED",
        "detail": "DraftKings currently blocks Cloudflare Worker egress to sportsbook-nash.draftkings.com. Fresh 2026-06-24 probe of abet-draftkings-cloudflare-proof returned a JSON wrapper but all six upstream sport requests were HTTP 403 text/html, 449 bytes each, json_parse_ok=false. Oracle VM and GitHub Actions still capture the same league endpoints successfully.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "cloudflare_worker",
        "book": "fanatics",
        "status": "HARD_BLOCKED",
        "detail": "Fanatics/betfanatics Cloudflare bot protection returns HTTP 403 to Cloudflare Worker egress. Fresh 2026-06-24 probe of abet-fanatics-cloudflare-proof returned top-level HTTP 403 text/plain body 'error code: 1010'. HF, Oracle WARP, and GitHub sources have parseable JSON proof.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "cloudflare_worker",
        "book": "nordicbet",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 direct probe of abet-betsafe-nordicbet-egress-probe /scrape/nordicbet returned top-level HTTP 403 text/plain with body `error code: 1010`; diagnostic Worker cannot obtain a populated odds payload from Cloudflare egress.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "cloudflare_worker_props",
        "book": "draftkings",
        "status": "HARD_BLOCKED",
        "detail": "DraftKings currently blocks Cloudflare Worker egress for the MLB props depth worker. Fresh 2026-06-24 probe of abet-draftkings-mlb-props-cloudflare-proof attempted 38 MLB category/subcategory endpoints; all 38 upstream requests returned HTTP 403 text/html at about 499-501 bytes with json_parse_ok=false. This is a Cloudflare-to-DK egress blocker, not a props decoder pass.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "huggingface_space",
        "book": "betsafe",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 HF probe executed the Betsafe diagnostic route, but returned zero populated odds-like probes: web/widget/route paths 302 to country-blocked, Strive mobile token HTTP 200 JSON Code=422 session-init failure, Kambi token HTTP 403, and public countries JSON is config-only.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "huggingface_space",
        "book": "caesars",
        "status": "HARD_BLOCKED",
        "detail": "Caesars requires a browser/WAF session. Fresh 2026-06-24 HF Playwright probe loaded the Caesars sportsbook page, but every Caesars API hit returned CloudFront HTTP 403 text/html, including /home, /navigation-items, /sports/baseball/quick-picks, and /sports/baseball/tabs.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "huggingface_space",
        "book": "nordicbet",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 HF probe executed the NordicBet diagnostic route, but returned zero populated odds-like probes: .com and .dk web/native/widget paths 302 to country-blocked and the .se redirect probe failed TLS verification; no odds JSON passed the gate.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "oracle_vm",
        "book": "betsafe",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 Oracle mux probe executed seven Betsafe diagnostic checks but returned ok=false and zero populated odds-like probes: web page HTTP 202 empty, widget/route paths 302 country-blocked, Strive mobile token Code=422, Kambi token HTTP 403, public countries config-only.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "oracle_vm",
        "book": "caesars",
        "status": "HARD_BLOCKED",
        "detail": "Caesars browser/CDP capture works on local Windows Chrome, but the Oracle VM has no usable Chrome binary and prior Playwright diagnostics show the VM browser runtime hangs. Direct non-browser HTTP returns upstream HTTP 403.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "oracle_vm",
        "book": "nordicbet",
        "status": "HARD_BLOCKED",
        "detail": "Fresh 2026-06-24 Oracle mux probe executed seven NordicBet diagnostic checks but returned ok=false and zero populated odds-like probes: web/native/nativesson paths HTTP 202 empty, widget paths 302 country-blocked, and .se TLS verification failure.",
        "url": null,
        "checked_utc": null
      },
      {
        "source": "github_actions",
        "book": "betsafe",
        "status": "HARD_BLOCKED",
        "detail": "GH diagnostic runner py_betsafe_diagnostic_probe is registered and locally emits ::ABET-MANIFEST:: with scraper_executed=true, but captured=false because no odds-like payload is returned. Live GitHub Actions is also account-billing gated. Do not turn this pill green until live GH can run and return populated odds-like JSON.",
        "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/28089158316",
        "checked_utc": "2026-06-24T09:33:52.982455+00:00"
      },
      {
        "source": "github_actions",
        "book": "caesars",
        "status": "HARD_BLOCKED",
        "detail": "A GH runner would need a real browser/WAF capture lane, and live Actions are currently account-billing gated. Direct non-browser requests return upstream HTTP 403.",
        "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/27510847283",
        "checked_utc": "2026-06-14T20:19:36.547769+00:00"
      },
      {
        "source": "github_actions",
        "book": "nordicbet",
        "status": "HARD_BLOCKED",
        "detail": "GH diagnostic runner py_nordicbet_diagnostic_probe is registered and locally emits ::ABET-MANIFEST:: with scraper_executed=true, but captured=false because no odds-like payload is returned. Live GitHub Actions is also account-billing gated. Do not turn this pill green until live GH can run and return populated odds-like JSON.",
        "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/28059833695",
        "checked_utc": "2026-06-23T21:57:18.502599+00:00"
      }
    ]
  },
  "crossbook": {
    "captured_utc": "2026-07-02T17:40:04.972511+00:00",
    "sport": "MLB + NFL",
    "books_count": 32,
    "rows_count": 15978,
    "categories_top": [
      [
        "Game Lines",
        4576
      ],
      [
        "Other",
        4504
      ],
      [
        "Batter Props",
        3275
      ],
      [
        "Squares",
        800
      ],
      [
        "Player Props",
        755
      ],
      [
        "Correct Score",
        720
      ],
      [
        "Alternate Lines",
        406
      ],
      [
        "Pitcher Props",
        341
      ],
      [
        "Run Markets",
        296
      ],
      [
        "Game Props",
        171
      ],
      [
        "Specials",
        88
      ],
      [
        "1st Inning",
        46
      ]
    ],
    "bet_types_top": [
      [
        "Total",
        2753
      ],
      [
        "Run Line",
        1467
      ],
      [
        "Squares Game (Starting Pitcher Strikes)",
        800
      ],
      [
        "Correct Score",
        720
      ],
      [
        "Moneyline",
        670
      ],
      [
        "Hits + Runs + RBIs",
        604
      ],
      [
        "Home Runs (Anytime)",
        464
      ],
      [
        "Doubles",
        458
      ],
      [
        "Hits (1+)",
        437
      ],
      [
        "Total Bases",
        436
      ],
      [
        "Total — 1st 5 Innings",
        368
      ],
      [
        "Hits (2+)",
        329
      ],
      [
        "Home Runs (2+)",
        303
      ],
      [
        "Stolen Bases (1+)",
        244
      ],
      [
        "Player to record a Run",
        144
      ],
      [
        "Player to record a RBI",
        144
      ],
      [
        "Player to record 2+ RBIs",
        144
      ],
      [
        "Player to record a Single",
        144
      ],
      [
        "Player to record 2+ Runs",
        142
      ],
      [
        "3+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        123
      ],
      [
        "1+ Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        120
      ],
      [
        "4+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        118
      ],
      [
        "Player to Hit a Home Run - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        117
      ],
      [
        "2+ Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        116
      ],
      [
        "2+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        114
      ],
      [
        "1+ Runs Scored by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        112
      ],
      [
        "1+ RBIs by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        110
      ],
      [
        "Total Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        107
      ],
      [
        "Player to hit 2 or more Home Runs - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        102
      ],
      [
        "Total Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        101
      ],
      [
        "3+ Hits, Runs & RBIs Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        100
      ],
      [
        "Total RBI by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        97
      ],
      [
        "2+ Hits, Runs & RBIs Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        97
      ],
      [
        "5+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        95
      ],
      [
        "2+ RBIs by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        93
      ],
      [
        "1+ Hits, Runs & RBIs Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        93
      ],
      [
        "4+ Hits, Runs & RBIs Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        92
      ],
      [
        "3+ Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        91
      ],
      [
        "Game Specials",
        88
      ],
      [
        "1+ Doubles by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
        86
      ]
    ],
    "rows_by_book_top": [
      [
        "bovada",
        5022
      ],
      [
        "ballybet",
        3749
      ],
      [
        "hardrock",
        1500
      ],
      [
        "coral",
        937
      ],
      [
        "ladbrokes",
        937
      ],
      [
        "fanduel",
        696
      ],
      [
        "betmgm",
        502
      ],
      [
        "livescorebet",
        378
      ],
      [
        "virginbet",
        378
      ],
      [
        "novig",
        294
      ],
      [
        "pinnacle",
        270
      ],
      [
        "rebet",
        174
      ],
      [
        "matchbook",
        112
      ],
      [
        "unibet_fr",
        112
      ],
      [
        "fliff",
        82
      ],
      [
        "everygame",
        80
      ],
      [
        "draftkings",
        54
      ],
      [
        "betrivers",
        54
      ],
      [
        "betparx",
        54
      ],
      [
        "svenskaspel",
        54
      ],
      [
        "unibet_au",
        54
      ],
      [
        "atg",
        54
      ],
      [
        "tabtouch",
        54
      ],
      [
        "betway",
        54
      ],
      [
        "mybookie",
        54
      ],
      [
        "grosvenor",
        54
      ],
      [
        "prophetx",
        53
      ],
      [
        "betonline",
        50
      ],
      [
        "playup",
        48
      ],
      [
        "netbet",
        30
      ],
      [
        "winamax",
        18
      ],
      [
        "betr_au",
        16
      ]
    ],
    "game_line_moneyline": {
      "rows": 620,
      "books": 32,
      "events": 42
    },
    "books": [
      {
        "book": "atg",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "ballybet",
        "rows": 3749,
        "categories": 2,
        "bet_types": 169,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            214
          ],
          [
            "Run Line",
            146
          ],
          [
            "3+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            123
          ],
          [
            "1+ Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            120
          ],
          [
            "4+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            118
          ],
          [
            "Player to Hit a Home Run - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            117
          ],
          [
            "2+ Hits by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            116
          ],
          [
            "2+ Bases Recorded by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            114
          ],
          [
            "1+ Runs Scored by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            112
          ],
          [
            "1+ RBIs by the Player - Including Extra Innings (Listed player must be in starting lineup for bets to stand)",
            110
          ]
        ]
      },
      {
        "book": "betmgm",
        "rows": 502,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            378
          ],
          [
            "Run Line",
            106
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "betonline",
        "rows": 50,
        "categories": 1,
        "bet_types": 2,
        "events": 17,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            34
          ],
          [
            "Run Line",
            16
          ]
        ]
      },
      {
        "book": "betparx",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "betr_au",
        "rows": 16,
        "categories": 1,
        "bet_types": 1,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            16
          ]
        ]
      },
      {
        "book": "betrivers",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "betway",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Total",
            18
          ],
          [
            "Run Line",
            18
          ]
        ]
      },
      {
        "book": "bovada",
        "rows": 5022,
        "categories": 11,
        "bet_types": 116,
        "events": 29,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Squares Game (Starting Pitcher Strikes)",
            800
          ],
          [
            "Correct Score",
            720
          ],
          [
            "Hits + Runs + RBIs",
            288
          ],
          [
            "Total",
            248
          ],
          [
            "Run Line",
            206
          ],
          [
            "Player to record a Run",
            144
          ],
          [
            "Player to record a RBI",
            144
          ],
          [
            "Player to record 2+ RBIs",
            144
          ],
          [
            "Player to record a Single",
            144
          ],
          [
            "Home Runs (Anytime)",
            144
          ]
        ]
      },
      {
        "book": "coral",
        "rows": 937,
        "categories": 2,
        "bet_types": 23,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            381
          ],
          [
            "Total — 1st 5 Innings",
            184
          ],
          [
            "Total — Inning 2",
            24
          ],
          [
            "Total — Inning 1",
            24
          ],
          [
            "Total — San Diego Padres",
            20
          ],
          [
            "Total — Cincinnati Reds",
            18
          ],
          [
            "Total — Kansas City Royals",
            18
          ],
          [
            "Total — Atlanta Braves",
            18
          ],
          [
            "Total — St. Louis Cardinals",
            18
          ],
          [
            "Total — Colorado Rockies",
            18
          ]
        ]
      },
      {
        "book": "draftkings",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 54,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "everygame",
        "rows": 80,
        "categories": 2,
        "bet_types": 3,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Run Line",
            32
          ],
          [
            "Moneyline",
            32
          ],
          [
            "Total",
            16
          ]
        ]
      },
      {
        "book": "fanduel",
        "rows": 696,
        "categories": 2,
        "bet_types": 7,
        "events": 9,
        "deep_link_rows": 696,
        "top_bet_types": [
          [
            "Home Runs (Anytime)",
            162
          ],
          [
            "Hits (2+)",
            162
          ],
          [
            "Home Runs (2+)",
            161
          ],
          [
            "Hits (1+)",
            157
          ],
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "fliff",
        "rows": 82,
        "categories": 1,
        "bet_types": 3,
        "events": 20,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            44
          ],
          [
            "Run Line",
            20
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "grosvenor",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "hardrock",
        "rows": 1500,
        "categories": 3,
        "bet_types": 12,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total Bases",
            318
          ],
          [
            "Hits + Runs + RBIs",
            316
          ],
          [
            "Doubles",
            314
          ],
          [
            "Home Runs (Anytime)",
            158
          ],
          [
            "Hits (1+)",
            136
          ],
          [
            "Stolen Bases (1+)",
            101
          ],
          [
            "Earned Runs",
            30
          ],
          [
            "Hits Allowed",
            30
          ],
          [
            "Strikeouts",
            30
          ],
          [
            "Outs Recorded",
            26
          ]
        ]
      },
      {
        "book": "ladbrokes",
        "rows": 937,
        "categories": 2,
        "bet_types": 23,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            381
          ],
          [
            "Total — 1st 5 Innings",
            184
          ],
          [
            "Total — Innings 1",
            24
          ],
          [
            "Total — Innings 2",
            24
          ],
          [
            "Total — San Diego Padres",
            20
          ],
          [
            "Total — Los Angeles Angels",
            18
          ],
          [
            "Total — Kansas City Royals",
            18
          ],
          [
            "Total — St. Louis Cardinals",
            18
          ],
          [
            "Total — Atlanta Braves",
            18
          ],
          [
            "Total — Cleveland Guardians",
            18
          ]
        ]
      },
      {
        "book": "livescorebet",
        "rows": 378,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            214
          ],
          [
            "Run Line",
            146
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "matchbook",
        "rows": 112,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            58
          ],
          [
            "Run Line",
            36
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "mybookie",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Run Line",
            18
          ],
          [
            "Moneyline",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "netbet",
        "rows": 30,
        "categories": 1,
        "bet_types": 3,
        "events": 5,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            10
          ],
          [
            "Run Line",
            10
          ],
          [
            "Total",
            10
          ]
        ]
      },
      {
        "book": "novig",
        "rows": 294,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            159
          ],
          [
            "Run Line",
            117
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "pinnacle",
        "rows": 270,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Run Line",
            126
          ],
          [
            "Total",
            126
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "playup",
        "rows": 48,
        "categories": 1,
        "bet_types": 3,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            16
          ],
          [
            "Run Line",
            16
          ],
          [
            "Total",
            16
          ]
        ]
      },
      {
        "book": "prophetx",
        "rows": 53,
        "categories": 2,
        "bet_types": 4,
        "events": 8,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            16
          ],
          [
            "1st-5th Inning Moneyline",
            16
          ],
          [
            "1st Inning Total Runs",
            14
          ],
          [
            "1st Inning Moneyline",
            7
          ]
        ]
      },
      {
        "book": "rebet",
        "rows": 174,
        "categories": 1,
        "bet_types": 3,
        "events": 5,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Run Line",
            82
          ],
          [
            "Total",
            82
          ],
          [
            "Moneyline",
            10
          ]
        ]
      },
      {
        "book": "svenskaspel",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "tabtouch",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "unibet_au",
        "rows": 54,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ],
          [
            "Run Line",
            18
          ],
          [
            "Total",
            18
          ]
        ]
      },
      {
        "book": "unibet_fr",
        "rows": 112,
        "categories": 1,
        "bet_types": 3,
        "events": 4,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Run Line",
            64
          ],
          [
            "Total",
            40
          ],
          [
            "Moneyline",
            8
          ]
        ]
      },
      {
        "book": "virginbet",
        "rows": 378,
        "categories": 1,
        "bet_types": 3,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Total",
            214
          ],
          [
            "Run Line",
            146
          ],
          [
            "Moneyline",
            18
          ]
        ]
      },
      {
        "book": "winamax",
        "rows": 18,
        "categories": 1,
        "bet_types": 1,
        "events": 9,
        "deep_link_rows": 0,
        "top_bet_types": [
          [
            "Moneyline",
            18
          ]
        ]
      }
    ]
  },
  "focus_books": {
    "draftkings": {
      "book": "draftkings",
      "claim_status": "NOT_TRUE_4_SOURCE_DIRECT_100_PERCENT",
      "plain_english": "DK all-depth capture is proven from Local/HF/GitHub/Oracle artifacts, but direct Cloudflare remains blocked by DK/Akamai and Browser Run is rate-limited. CF-via-Oracle is orchestration, not direct CF.",
      "source_status_generated_at": "2026-06-27T21:57:44.293546Z",
      "source_rows": [
        {
          "source": "local_cli",
          "status": "PASS",
          "url": "/data/draftkings_all_sports_depth_capture_latest.json",
          "captured_at_utc": "2026-06-27T09:23:06.255266Z",
          "latency_ms": 37416,
          "league_roots": "40/40",
          "subcategory_endpoints": "835/835",
          "total_available_before_window": null,
          "endpoint_offset": null,
          "endpoint_limit": null,
          "endpoint_batch_size": null,
          "coverage_pct": 100.0,
          "events": 1053,
          "markets": 24397,
          "selections": 102824,
          "raw_bytes": 51877689,
          "raw_sha256": "675830eef0d60832a9ff841294d1dffd3520da2d3141cc2bf07048f995d595c2",
          "status_detail": "DEPTH_CAPTURE_EXHAUSTIVE"
        },
        {
          "source": "huggingface_space",
          "status": "PASS",
          "url": "https://abetco-live-odds.hf.space/scrape/draftkings_all_depth/all?include_raw=0&raw_mode=preview&sample_limit=5",
          "captured_at_utc": "2026-06-27T10:19:36.118659Z",
          "latency_ms": 14231,
          "league_roots": "42/42",
          "subcategory_endpoints": "865/865",
          "total_available_before_window": 865,
          "endpoint_offset": 0,
          "endpoint_limit": null,
          "endpoint_batch_size": null,
          "coverage_pct": 100.0,
          "events": 1090,
          "markets": 27041,
          "selections": 112093,
          "raw_bytes": 56734996,
          "raw_sha256": "1437ea0ac0f83e0f6c45d97ad5750670580a896a7e00e7e9c59ef167329edb36",
          "status_detail": "DEPTH_CAPTURE_EXHAUSTIVE"
        },
        {
          "source": "github_actions",
          "status": "PASS",
          "url": "https://github.com/misterplusev/abet-scraper-scripts/actions/runs/28286525799",
          "captured_at_utc": "2026-06-27T10:28:28.579184Z",
          "latency_ms": null,
          "league_roots": "42/42",
          "subcategory_endpoints": "864/864",
          "total_available_before_window": 864,
          "endpoint_offset": 0,
          "endpoint_limit": null,
          "endpoint_batch_size": 200,
          "coverage_pct": 100.0,
          "events": 1090,
          "markets": 26924,
          "selections": 111988,
          "raw_bytes": 56656271,
          "raw_sha256": "827debf21231b8665d66c091697b64864a820ad3c752152676bf66b41cdbe9e7",
          "status_detail": "captured",
          "run_id": 28286525799
        },
        {
          "source": "oracle_vm",
          "status": "PASS",
          "url": "ssh://ubuntu@170.9.62.134 /tmp/dk_oracle_fixed_manifest_chunks -> local merge",
          "captured_at_utc": "2026-06-27T21:57:44.293546Z",
          "latency_ms": 383492,
          "league_roots": "39/39",
          "subcategory_endpoints": "1067/1067",
          "total_available_before_window": 1067,
          "endpoint_offset": 0,
          "endpoint_limit": null,
          "endpoint_batch_size": "fixed manifest subprocess windows 10 with resumable chunk artifacts",
          "coverage_pct": 100.0,
          "events": 940,
          "markets": 24981,
          "selections": 114820,
          "categories": 156,
          "subcategories": 847,
          "raw_bytes": 57100976,
          "raw_sha256": "f0cd6f7e9b1b08a308d075dfd2717db171d659b8b6e51b52843ca45c6f05ce8d",
          "status_detail": "DEPTH_CAPTURE_EXHAUSTIVE",
          "chunk_count": 107,
          "failed_chunk_count": 0,
          "artifact": "/data/draftkings_all_sports_depth_oracle_fixed_manifest_aggregate_latest.json"
        }
      ],
      "exhaustiveness": {
        "generated_at_utc": "2026-06-27T09:07:54.719788Z",
        "status": "INCOMPLETE_DEPTH_CAPTURE",
        "summary": {
          "display_groups": 26,
          "league_groups": 41,
          "league_roots_ok": 41,
          "league_roots_failed": 0,
          "available_categories": 208,
          "available_subcategory_endpoints": 875,
          "currently_captured_depth_endpoints": 38,
          "missing_depth_endpoints": 841,
          "extra_captured_endpoints_not_in_live_taxonomy": 4,
          "root_events": 543,
          "root_markets": 922,
          "root_selections": 2911,
          "mlb_available_subcategory_endpoints": 106,
          "mlb_captured_depth_endpoints": 38,
          "mlb_missing_depth_endpoints": 72,
          "mlb_endpoint_coverage_pct": 32.08
        },
        "honest_note": "The checker proves the live DraftKings taxonomy and the current capture gap. It does not mark DraftKings 100% complete until every available category/subcategory endpoint is captured from the live sources."
      },
      "cloudflare_boundary": {
        "generated_at_utc": "2026-07-01T22:19:18.925738Z",
        "direct": "BLOCKED",
        "browser_run": "RATE_LIMITED",
        "browser_retry_after_seconds": 6019,
        "via_oracle": "PASS",
        "honesty_boundary": "Direct Cloudflare Worker egress to DraftKings remains blocked or rate-limited. Cloudflare-via-Oracle works as orchestration only and is not independent direct Cloudflare egress."
      },
      "proof_links": [
        "/draftkings-proof",
        "/draftkings-exhaustive",
        "/draftkings-modular-proof",
        "/data/draftkings_all_sports_depth_source_status_latest.json",
        "/data/draftkings_cloudflare_oracle_window_latest.json"
      ]
    },
    "fanduel": {
      "book": "fanduel",
      "claim_status": "MODULAR_DEPTH_PROVEN_WITH_REMAINING_CELL_FAILURES",
      "plain_english": "FanDuel has modular all-depth proof artifacts and direct Cloudflare works, but the last full parity sweep is 24/27 cells, not a perfect all-source/all-sport sweep.",
      "generated_at_utc": "2026-06-30T11:50:37.824526Z",
      "summary": {
        "cells_total": 27,
        "cells_passed": 24,
        "sources": [
          "cloudflare",
          "huggingface",
          "oracle"
        ],
        "sports": [
          "baseball",
          "basketball",
          "basketball_cbb",
          "basketball_ncaaw",
          "basketball_wnba",
          "esports",
          "football",
          "football_cfb",
          "hockey"
        ],
        "all_cells_passed": false,
        "sports_total": 9,
        "sports_all_sources_passed": 6,
        "comparisons": [
          {
            "sport": "baseball",
            "sources_passed": 2,
            "sources_total": 3,
            "all_sources_passed": false,
            "count_deltas": {
              "attachments_events": {
                "min": 18,
                "max": 18,
                "delta": 0
              },
              "attachments_markets": {
                "min": 1590,
                "max": 1590,
                "delta": 0
              },
              "embedded_runners": {
                "min": 9175,
                "max": 9175,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 210,
                "max": 210,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 1765,
                "max": 1765,
                "delta": 0
              },
              "priced_runners": {
                "min": 9175,
                "max": 9175,
                "delta": 0
              }
            }
          },
          {
            "sport": "basketball",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 11,
                "max": 12,
                "delta": 1
              },
              "attachments_markets": {
                "min": 65,
                "max": 70,
                "delta": 5
              },
              "embedded_runners": {
                "min": 305,
                "max": 315,
                "delta": 10
              },
              "player_prop_markets": {
                "min": 1,
                "max": 1,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 50,
                "max": 50,
                "delta": 0
              },
              "priced_runners": {
                "min": 303,
                "max": 305,
                "delta": 2
              }
            }
          },
          {
            "sport": "basketball_cbb",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 2,
                "max": 2,
                "delta": 0
              },
              "attachments_markets": {
                "min": 2,
                "max": 2,
                "delta": 0
              },
              "embedded_runners": {
                "min": 143,
                "max": 143,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "priced_runners": {
                "min": 143,
                "max": 143,
                "delta": 0
              }
            }
          },
          {
            "sport": "basketball_ncaaw",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 1,
                "max": 1,
                "delta": 0
              },
              "attachments_markets": {
                "min": 1,
                "max": 1,
                "delta": 0
              },
              "embedded_runners": {
                "min": 50,
                "max": 50,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "priced_runners": {
                "min": 50,
                "max": 50,
                "delta": 0
              }
            }
          },
          {
            "sport": "basketball_wnba",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 8,
                "max": 8,
                "delta": 0
              },
              "attachments_markets": {
                "min": 92,
                "max": 92,
                "delta": 0
              },
              "embedded_runners": {
                "min": 590,
                "max": 590,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 2,
                "max": 2,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 28,
                "max": 28,
                "delta": 0
              },
              "priced_runners": {
                "min": 590,
                "max": 590,
                "delta": 0
              }
            }
          },
          {
            "sport": "esports",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 31,
                "max": 32,
                "delta": 1
              },
              "attachments_markets": {
                "min": 76,
                "max": 81,
                "delta": 5
              },
              "embedded_runners": {
                "min": 171,
                "max": 181,
                "delta": 10
              },
              "player_prop_markets": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 0,
                "max": 0,
                "delta": 0
              },
              "priced_runners": {
                "min": 169,
                "max": 171,
                "delta": 2
              }
            }
          },
          {
            "sport": "football",
            "sources_passed": 2,
            "sources_total": 3,
            "all_sources_passed": false,
            "count_deltas": {
              "attachments_events": {
                "min": 35,
                "max": 35,
                "delta": 0
              },
              "attachments_markets": {
                "min": 364,
                "max": 364,
                "delta": 0
              },
              "embedded_runners": {
                "min": 2868,
                "max": 2868,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 3,
                "max": 3,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 377,
                "max": 377,
                "delta": 0
              },
              "priced_runners": {
                "min": 2868,
                "max": 2868,
                "delta": 0
              }
            }
          },
          {
            "sport": "football_cfb",
            "sources_passed": 2,
            "sources_total": 3,
            "all_sources_passed": false,
            "count_deltas": {
              "attachments_events": {
                "min": 63,
                "max": 63,
                "delta": 0
              },
              "attachments_markets": {
                "min": 256,
                "max": 256,
                "delta": 0
              },
              "embedded_runners": {
                "min": 1383,
                "max": 1383,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 1,
                "max": 1,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 2,
                "max": 2,
                "delta": 0
              },
              "priced_runners": {
                "min": 1383,
                "max": 1383,
                "delta": 0
              }
            }
          },
          {
            "sport": "hockey",
            "sources_passed": 3,
            "sources_total": 3,
            "all_sources_passed": true,
            "count_deltas": {
              "attachments_events": {
                "min": 5,
                "max": 5,
                "delta": 0
              },
              "attachments_markets": {
                "min": 20,
                "max": 20,
                "delta": 0
              },
              "embedded_runners": {
                "min": 264,
                "max": 264,
                "delta": 0
              },
              "player_prop_markets": {
                "min": 5,
                "max": 5,
                "delta": 0
              },
              "player_prop_runners": {
                "min": 16,
                "max": 16,
                "delta": 0
              },
              "priced_runners": {
                "min": 264,
                "max": 264,
                "delta": 0
              }
            }
          }
        ]
      },
      "cloudflare_windowed": {
        "generated_at_utc": "2026-06-30T11:54:45.633596Z",
        "summary": {
          "sports_total": 3,
          "sports_matched_any_reference": 3,
          "all_sports_matched_any_reference": true,
          "all_windows_passed": true
        }
      },
      "github_full_window": {
        "book": "fanduel",
        "scope": "github_actions_all_depth_full_window_plan",
        "source": "github_actions",
        "account": "abetco-sportsjobfinder",
        "repo": "abetco-sportsjobfinder/abet-github-proof-sandbox",
        "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28443487450",
        "job_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28443487450/job/84286877372",
        "workflow": "ABET FanDuel All-Depth Full Window Plan Proof v1.0.0",
        "workflow_file": "20260630_FANDUEL_ALL_DEPTH_FULL_WINDOW_PLAN_PROOF_v1_0_0.yml",
        "runner": "20260630_121500_FANDUEL_ALL_DEPTH_GITHUB_ACTIONS_FULL_WINDOW_PLAN_RUNNER_v1_0_0.py",
        "captured": true,
        "manifest_status": "captured",
        "captured_at_utc": "2026-06-30T12:15:28.963308Z",
        "wall_ms": 30986,
        "sports_total": 9,
        "sports_passed": 9,
        "windows_total": 41,
        "windows_passed": 41,
        "window_size": 4,
        "total_raw_bytes_sum_across_windows": 48918517,
        "aggregate_union_counts": {
          "attachments_events": 188,
          "attachments_markets": 2512,
          "embedded_runners": 15047,
          "priced_runners": 15044
        },
        "acceptance": {
          "github_hosted_runner": true,
          "manifest_emitted": true,
          "captured_true": true,
          "raw_counts_nonzero": true,
          "proxy_to_other_source": false
        },
        "honesty_note": "This is an alternate-account GitHub-hosted proof while the canonical misterplusev account is billing/spend-limit blocked. Canonical scraper source remains misterplusev/abet-scraper-scripts."
      },
      "proof_links": [
        "/fanduel-proof",
        "/fanduel-modular-proof",
        "/data/fanduel_source_parity_sweep_full_latest.json",
        "/data/fanduel_cloudflare_windowed_full_coverage_latest.json"
      ]
    },
    "betmgm": {
      "book": "betmgm",
      "claim_status": "FOUR_SOURCE_MODULAR_ACTIVE_SPORTID_PASS",
      "plain_english": "BetMGM is currently the cleanest repaired modular proof: CF/HF/Oracle/GitHub show 7/7 active sportId coverage in the parity artifact. The caveat is GH split-run proof and active-sportId scan scope, not a static absolute all-sports universe.",
      "generated_at_utc": "2026-07-01T18:38:35.555694Z",
      "summary": {
        "sources_total": 4,
        "sources_with_any_pass": 4,
        "sources_all_cells_passed": 4,
        "github_actions_note": "GitHub strict direct is 7/7 across modular split runs: six sports in matrix run 28538904930 plus basketball in isolated run 28539582418. No Cloudflare fallback was used in these seven current sport cells."
      },
      "source_rows": [
        {
          "source": "cloudflare_worker",
          "status": "PASS",
          "started_at_utc": "2026-06-30T19:19:20.077140Z",
          "ended_at_utc": "2026-06-30T19:19:42.820689Z",
          "cells_total": 7,
          "cells_passed": 7,
          "totals": {
            "fixtures": 161,
            "games_markets": 1142,
            "game_results": 8160,
            "option_markets": 11457,
            "option_options": 17761,
            "total_markets": 12599,
            "total_offers": 25921,
            "priced_offers": 17761,
            "raw_bytes": 25330466,
            "latency_ms": 22676
          },
          "cells": [
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/football",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 4002590,
              "latency_ms": 3709,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 96,
                "games_markets": 871,
                "game_results": 4132,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 871,
                "total_offers": 4132,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/basketball",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 487512,
              "latency_ms": 730,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 15,
                "games_markets": 157,
                "game_results": 1716,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 157,
                "total_offers": 1716,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/hockey",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 173411,
              "latency_ms": 291,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 22,
                "game_results": 931,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 22,
                "total_offers": 931,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/baseball",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 20581616,
              "latency_ms": 17419,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 30,
                "games_markets": 68,
                "game_results": 1154,
                "option_markets": 11457,
                "option_options": 17761,
                "total_markets": 11525,
                "total_offers": 18915,
                "priced_offers": 17761
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/nascar",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 31567,
              "latency_ms": 209,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 5,
                "games_markets": 5,
                "game_results": 106,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 5,
                "total_offers": 106,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/mma",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 32491,
              "latency_ms": 141,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 13,
                "games_markets": 13,
                "game_results": 26,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 13,
                "total_offers": 26,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abet-betmgm-cloudflare-proof.abetco.workers.dev/raw/lacrosse",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 21279,
              "latency_ms": 177,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 6,
                "game_results": 95,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 6,
                "total_offers": 95,
                "priced_offers": 0
              }
            }
          ]
        },
        {
          "source": "huggingface_space",
          "status": "PASS",
          "started_at_utc": "2026-06-30T19:19:42.820781Z",
          "ended_at_utc": "2026-06-30T19:20:18.970956Z",
          "cells_total": 7,
          "cells_passed": 7,
          "totals": {
            "fixtures": 162,
            "games_markets": 1142,
            "game_results": 8160,
            "option_markets": 11404,
            "option_options": 17701,
            "total_markets": 12546,
            "total_offers": 25861,
            "priced_offers": 17701,
            "raw_bytes": 25217552,
            "latency_ms": 36085
          },
          "cells": [
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/football?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 4002337,
              "latency_ms": 5355,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 96,
                "games_markets": 871,
                "game_results": 4132,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 871,
                "total_offers": 4132,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/basketball?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 487899,
              "latency_ms": 1467,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 15,
                "games_markets": 157,
                "game_results": 1716,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 157,
                "total_offers": 1716,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/hockey?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 173919,
              "latency_ms": 969,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 22,
                "game_results": 931,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 22,
                "total_offers": 931,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/baseball?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 20464171,
              "latency_ms": 26400,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 31,
                "games_markets": 68,
                "game_results": 1154,
                "option_markets": 11404,
                "option_options": 17701,
                "total_markets": 11472,
                "total_offers": 18855,
                "priced_offers": 17701
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/nascar?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 32859,
              "latency_ms": 623,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 5,
                "games_markets": 5,
                "game_results": 106,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 5,
                "total_offers": 106,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/mma?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 33791,
              "latency_ms": 626,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 13,
                "games_markets": 13,
                "game_results": 26,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 13,
                "total_offers": 26,
                "priced_offers": 0
              }
            },
            {
              "url": "https://abetco-live-odds.hf.space/scrape/betmgm/lacrosse?include_raw=1&raw_mode=full&sample_limit=100",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 22576,
              "latency_ms": 645,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 6,
                "game_results": 95,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 6,
                "total_offers": 95,
                "priced_offers": 0
              }
            }
          ]
        },
        {
          "source": "oracle_vm",
          "status": "PASS",
          "started_at_utc": "2026-06-30T19:20:18.971037Z",
          "ended_at_utc": "2026-06-30T19:21:53.051408Z",
          "cells_total": 7,
          "cells_passed": 7,
          "totals": {
            "fixtures": 162,
            "games_markets": 1142,
            "game_results": 8160,
            "option_markets": 11404,
            "option_options": 17699,
            "total_markets": 12546,
            "total_offers": 25859,
            "priced_offers": 17699,
            "raw_bytes": 25271576,
            "latency_ms": 94023
          },
          "cells": [
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/football?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 4002590,
              "latency_ms": 16322,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 96,
                "games_markets": 871,
                "game_results": 4132,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 871,
                "total_offers": 4132,
                "priced_offers": 0
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/basketball?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 487512,
              "latency_ms": 1277,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 15,
                "games_markets": 157,
                "game_results": 1716,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 157,
                "total_offers": 1716,
                "priced_offers": 0
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/hockey?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 173411,
              "latency_ms": 630,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 22,
                "game_results": 931,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 22,
                "total_offers": 931,
                "priced_offers": 0
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/baseball?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 20522726,
              "latency_ms": 71596,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 31,
                "games_markets": 68,
                "game_results": 1154,
                "option_markets": 11404,
                "option_options": 17699,
                "total_markets": 11472,
                "total_offers": 18853,
                "priced_offers": 17699
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/nascar?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 31567,
              "latency_ms": 2890,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 5,
                "games_markets": 5,
                "game_results": 106,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 5,
                "total_offers": 106,
                "priced_offers": 0
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/mma?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 32491,
              "latency_ms": 691,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 13,
                "games_markets": 13,
                "game_results": 26,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 13,
                "total_offers": 26,
                "priced_offers": 0
              }
            },
            {
              "url": "https://pharmaceuticals-greatly-webshots-shipping.trycloudflare.com/oracle/betmgm/raw/lacrosse?timeout_seconds=180",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 21279,
              "latency_ms": 617,
              "error": null,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 6,
                "game_results": 95,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 6,
                "total_offers": 95,
                "priced_offers": 0
              }
            }
          ]
        },
        {
          "source": "github_actions",
          "status": "PASS_MODULAR_STRICT_DIRECT_SPLIT_RUNS",
          "started_at_utc": "2026-07-01T18:25:03Z",
          "ended_at_utc": "2026-07-01T18:37:25Z",
          "cells_total": 7,
          "cells_passed": 7,
          "totals": {
            "fixtures": 204,
            "games_markets": 4269,
            "game_results": 16384,
            "option_markets": 7463,
            "option_options": 12222,
            "total_markets": 11732,
            "total_offers": 28606,
            "priced_offers": 12222,
            "raw_bytes": 24069517,
            "latency_ms": 47388
          },
          "cells": [
            {
              "sport": "football",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "minimal_old_no_region",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 4089135,
              "latency_ms": 15039,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 101,
                "games_markets": 906,
                "game_results": 4210,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 906,
                "total_offers": 4210,
                "priced_offers": 0
              }
            },
            {
              "sport": "basketball",
              "run_id": "28539582418",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28539582418",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "minimal_old_no_region",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 6297636,
              "latency_ms": 2318,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 61,
                "games_markets": 3269,
                "game_results": 10738,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 3269,
                "total_offers": 10738,
                "priced_offers": 0
              }
            },
            {
              "sport": "hockey",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "full_browser_baseline",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 28743,
              "latency_ms": 298,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 1,
                "games_markets": 8,
                "game_results": 128,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 8,
                "total_offers": 128,
                "priced_offers": 0
              }
            },
            {
              "sport": "baseball",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "minimal_old_no_region",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 13505318,
              "latency_ms": 10088,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 18,
                "games_markets": 50,
                "game_results": 1057,
                "option_markets": 7463,
                "option_options": 12222,
                "total_markets": 7513,
                "total_offers": 13279,
                "priced_offers": 12222
              }
            },
            {
              "sport": "nascar",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "minimal_old_no_region",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 31584,
              "latency_ms": 14055,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 5,
                "games_markets": 5,
                "game_results": 106,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 5,
                "total_offers": 106,
                "priced_offers": 0
              }
            },
            {
              "sport": "mma",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "full_browser_no_region",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 32493,
              "latency_ms": 5007,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 13,
                "games_markets": 13,
                "game_results": 26,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 13,
                "total_offers": 26,
                "priced_offers": 0
              }
            },
            {
              "sport": "lacrosse",
              "run_id": "28538904930",
              "run_url": "https://github.com/abetco-sportsjobfinder/abet-github-proof-sandbox/actions/runs/28538904930",
              "source_mode": "github_actions_direct_betmgm",
              "request_profile": "full_browser_baseline",
              "http_status": 200,
              "json_parse_ok": true,
              "raw_bytes": 84608,
              "latency_ms": 583,
              "error": null,
              "egress_proxy_configured": false,
              "counts": {
                "sports": 1,
                "sports_ok": 1,
                "fixtures": 5,
                "games_markets": 18,
                "game_results": 119,
                "option_markets": 0,
                "option_options": 0,
                "total_markets": 18,
                "total_offers": 119,
                "priced_offers": 0
              }
            }
          ],
          "proof_boundary": "No CF fallback used for these current seven cells. Six sports passed in matrix run 28538904930; basketball passed strict direct in isolated run 28539582418 after failing in the matrix run. This proves modular direct capture for every active sport, while still documenting that one monolithic GitHub-hosted matrix can be WAF-volatile."
        }
      ],
      "manifest_summary": null,
      "proof_links": [
        "/betmgm-proof",
        "/betmgm-modular-proof",
        "/data/betmgm_source_parity_latest.json",
        "/data/betmgm_modular_capture_status_latest.json"
      ]
    }
  },
  "raw_structure_registry": {
    "exists": true,
    "path": "E:\\abet\\abet-scraper-scripts\\docs\\BOOK_RAW_STRUCTURES.md",
    "sections_count": 8,
    "sections": [
      "1. DraftKings — ✅ proven complete 2026-07-01",
      "2. FanDuel — ✅ proven complete 2026-07-01",
      "3. BetMGM — ✅ proven complete 2026-07-01",
      "4–13. The nested / Kambi family — ✅ all proven complete 2026-07-01",
      "14–19. The flat_offers family — ✅ all proven complete 2026-07-01",
      "20–31. The single-handler books — ✅ proven 2026-07-01",
      "32. Hard Rock Bet — ✅ FIXED + proven 2026-07-01 (was: 0 game lines)",
      "unibet — ⚠ the one remaining watch"
    ]
  },
  "task_monitor": {
    "tickets_generated_utc": "2026-06-26T19:39:06.468742+00:00",
    "open_tickets": 15,
    "repair_tickets": 0,
    "documented_blockers": 15,
    "fully_dark_books": [
      "betsafe",
      "caesars",
      "nordicbet"
    ],
    "ticket_classes": {
      "HARD_BLOCKED": 15
    },
    "owners": {
      "Codex": 15
    },
    "next_required_system": "Promote this schema monitor into the authoritative queue: each new raw path, market name, unmapped market, missing link, and failed source should create a stable ticket id."
  },
  "artifacts": [
    {
      "name": "fleet_truth.json",
      "exists": true,
      "json_ok": true,
      "bytes": 68545,
      "timestamp": "2026-06-28T15:50:40.850792+00:00"
    },
    {
      "name": "fleet_tickets.json",
      "exists": true,
      "json_ok": true,
      "bytes": 8366,
      "timestamp": "2026-06-26T19:39:06.468742+00:00"
    },
    {
      "name": "scraper_health.json",
      "exists": true,
      "json_ok": true,
      "bytes": 31262,
      "timestamp": "2026-06-28T15:50:40.802454+00:00"
    },
    {
      "name": "master_baseline.json",
      "exists": true,
      "json_ok": true,
      "bytes": 39161,
      "timestamp": "2026-06-30T06:32:19+00:00"
    },
    {
      "name": "crossbook_allbets_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 10977969,
      "timestamp": "2026-07-02T17:40:04.972511+00:00"
    },
    {
      "name": "draftkings_all_sports_depth_source_status_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 3873,
      "timestamp": "2026-06-27T21:57:44.293546Z"
    },
    {
      "name": "draftkings_all_sports_depth_exhaustiveness_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 2636136,
      "timestamp": "2026-06-27T09:07:54.719788Z"
    },
    {
      "name": "draftkings_cloudflare_oracle_window_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 91395,
      "timestamp": "2026-07-01T22:19:18.925738Z"
    },
    {
      "name": "fanduel_source_parity_sweep_full_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 81399,
      "timestamp": "2026-06-30T11:50:37.824526Z"
    },
    {
      "name": "fanduel_cloudflare_windowed_full_coverage_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 27113,
      "timestamp": "2026-06-30T11:54:45.633596Z"
    },
    {
      "name": "betmgm_source_parity_latest.json",
      "exists": true,
      "json_ok": true,
      "bytes": 24997,
      "timestamp": "2026-07-01T18:38:35.555694Z"
    }
  ]
}
