The real-data era: token live, stubs retired, editions on demand

BGG application approved. The migration the stub markers guarded for
weeks: both synthetic caches deleted; tests/fixtures/bgg_cache
re-recorded from the live API (recording list extended to every
scenario the suite exercises — Civilization truncation, the Sorcerer
SPI tiebreak, StarForce, Flat Top's thematic year, Alice Is Missing's
rpgitem fallback); resolve --force re-matched all 133 titles for real
(109 auto, 6 ambiguous, 18 unmatched, 30 edition ballots);
data/STUB_DATA.marker deleted with its exit condition met — the guard
mechanism stays armed should stubs ever regenerate.

Reality fixed one bug and taught one lesson. The bug: a multi-type
search lists an expansion twice (once per matched type) and the parser
kept the generic boardgame entry — parse_search now dedupes by id
preferring the specific type, which is what keeps expansion tagging
(the base-vs-expansion review guard) alive on real data. The lesson:
hand-built ambiguity is tidier than the real thing — Wingspan has 46
versions with three plausible English Stonemaier printings, so the
suite's synthetic version ids and version_auto expectations became
real ballots (assertions updated to recorded reality; the cue-plumbing
test keeps its crafted two-version scenario via an injected
transport).

New: pick edition. A cue-less matched row is version_unknown by design
(never guess) — but the owner knows which printing the box is.
open_version_ballot() fetches the game's complete version list,
cue-scores it when cues exist, and marks the row version_ambiguous so
the normal Review edition pass presents it; the Titles page grows the
button (Eric's three Wiz-Wars: two cue-less copies can now each claim
their edition).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016jXZFSTZQKzAC8fqpWSz9g
This commit is contained in:
Eric Wagoner
2026-08-05 18:50:17 -04:00
co-authored by Claude Fable 5
parent 15d3120029
commit 59f4b8c43c
135 changed files with 15851 additions and 266 deletions
+56 -29
View File
@@ -22,7 +22,8 @@
"art_notes": "Box top shown horizontally on shelf, tagline 'Who's to Blame Logic Game', orange cat illustration",
"source_photos": [
"IMG_4499.jpeg",
"IMG_4505.jpeg"
"IMG_4505.jpeg",
"shelf-20260803-215723.jpg"
],
"title_normalized": "cat crimes"
},
@@ -158,7 +159,7 @@
"title_normalized": "gentle rain"
},
{
"title_raw": "Patch Work",
"title_raw": "Patchwork",
"confidence": "high",
"publisher_hint": "",
"edition_hint": "",
@@ -168,7 +169,7 @@
"source_photos": [
"IMG_4501.jpeg"
],
"title_normalized": "patch work"
"title_normalized": "patchwork"
},
{
"title_raw": "SANTORINI",
@@ -1668,32 +1669,6 @@
],
"title_normalized": "parsely"
},
{
"title_raw": "SIX-GUN SHOWDOWN",
"confidence": "medium",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
"language_hint": "English",
"art_notes": "Western-themed box art with red/orange coloring, partially visible spine text",
"source_photos": [
"IMG_4573.jpeg"
],
"title_normalized": "six gun showdown"
},
{
"title_raw": "Blackboa[rd]",
"confidence": "low",
"publisher_hint": "",
"edition_hint": "",
"year_hint": null,
"language_hint": "English",
"art_notes": "Dark spine at bottom right of cover art, title partially cut off",
"source_photos": [
"IMG_4573.jpeg"
],
"title_normalized": "blackboa rd"
},
{
"title_raw": "...and then, we held hands.",
"confidence": "high",
@@ -1719,5 +1694,57 @@
"shelf-20260803-171316.jpg"
],
"title_normalized": "consentacle"
},
{
"title_raw": "The Simpsons Trivia Game",
"confidence": "high",
"publisher_hint": "Matt Groening / The Simpsons",
"edition_hint": "",
"year_hint": null,
"language_hint": "English",
"art_notes": "Green background with die-cut character silhouette shapes of Homer, Marge, Bart, Lisa, and Maggie; includes 'Ay Carumba!' badge and note about included cast poster",
"source_photos": [
"shelf-20260803-213735.jpg"
],
"title_normalized": "simpsons trivia game"
},
{
"title_raw": "THE CAT GAME",
"confidence": "high",
"publisher_hint": "Spin Master",
"edition_hint": "",
"year_hint": null,
"language_hint": "English/French",
"art_notes": "White box with faux-fur textured letters spelling CAT, image of cat wearing top hat and bow tie standing on a scratching post, hand holding a marker/pointer stick, tagline 'The Hair-Raising Drawing Game (with Cats)'",
"source_photos": [
"shelf-20260803-213756.jpg"
],
"title_normalized": "cat game"
},
{
"title_raw": "BLINK",
"confidence": "high",
"publisher_hint": "Mattel Games",
"edition_hint": "",
"year_hint": null,
"language_hint": "English",
"art_notes": "Orange sunburst background box with green bubble letters spelling BLINK, cards showing green stars, red flowers, blue triangles, yellow droplets",
"source_photos": [
"shelf-20260803-215650.jpg"
],
"title_normalized": "blink"
},
{
"title_raw": "The Office Trivia Game",
"confidence": "high",
"publisher_hint": "Cardinal",
"edition_hint": "Ready to Roll, Fast-Paced Game!",
"year_hint": null,
"language_hint": "English",
"art_notes": "Box shows three characters from The Office in an office/warehouse setting, notebook paper design border, red 'Ready to Roll' circular badge",
"source_photos": [
"shelf-20260803-215703.jpg"
],
"title_normalized": "office trivia game"
}
]