Add a game by hand: the fourth curation store

BGG wants base game and expansion as separate collection entries, but
a box that stores its expansion's bits shows one spine to the camera —
the hidden half was unreachable. "add a game" on the Titles page
records an entry in data/title_additions.json (committed, like every
curation store), joined into every rebuild BEFORE edits and dedupe: so
corrections apply to it, a later photo sighting of the same game
merges instead of duplicating (photo provenance wins), and re-adding
an existing title is a no-op. Photo-less lines show an "added by hand"
chip where their photo links would be; from resolve onward they are
ordinary titles.

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 19:13:49 -04:00
co-authored by Claude Fable 5
parent 7b6ea90934
commit 90e75daf98
9 changed files with 216 additions and 16 deletions
+2 -2
View File
@@ -47,11 +47,11 @@ Full design lives in `bgg-shelf-pipeline-spec.md` (read it before changing pipel
- Base game vs. expansion vs. new edition is the top failure mode — bias matching toward `ambiguous` over auto-match ("Wingspan Europe" must not match base Wingspan). - Base game vs. expansion vs. new edition is the top failure mode — bias matching toward `ambiguous` over auto-match ("Wingspan Europe" must not match base Wingspan).
- Editions/versions matter: Eric owns multiple editions of some games — each is a separate collection entry (keyed by `collid` on BGG). Never guess a version: no legible cues → `version_unknown` and a version-less collection entry. - Editions/versions matter: Eric owns multiple editions of some games — each is a separate collection entry (keyed by `collid` on BGG). Never guess a version: no legible cues → `version_unknown` and a version-less collection entry.
- Normalize titles (casefold, strip punctuation/articles, special chars like é/&/:) identically on both sides of a match; dedupe across photos but keep `source_photos` provenance. - Normalize titles (casefold, strip punctuation/articles, special chars like é/&/:) identically on both sides of a match; dedupe across photos but keep `source_photos` provenance.
- **Human curation is durable**: `data/title_splits.json` (photo-scoped split-into-copies decisions, honored by extract's dedupe AND resolve's dedupe), `data/title_edits.json` (corrected reads/cues, applied before dedupe on every titles.json rebuild), and `data/title_removals.json` (lines removed from the catalog — filtered out of every rebuild; delete the record to undo) persist forever. Row-level decisions persist via the `dedupe_veto` column — edits never drop veto'd rows (a rename retitles them in place); removal drops them (explicitly discarding the line). - **Human curation is durable**: `data/title_splits.json` (photo-scoped split-into-copies decisions, honored by extract's dedupe AND resolve's dedupe), `data/title_edits.json` (corrected reads/cues, applied before dedupe on every titles.json rebuild), `data/title_removals.json` (lines removed from the catalog — filtered out of every rebuild; delete the record to undo), and `data/title_additions.json` (games added without a photo — joined into every rebuild; a later photo sighting dedupe-merges with them) persist forever. Row-level decisions persist via the `dedupe_veto` column — edits never drop veto'd rows (a rename retitles them in place); removal drops them (explicitly discarding the line).
- **RPGs are local-only citizens**: when the board-game search runs dry, resolve falls back to `type=rpgitem` (same geekdo API/token). Matched rpgitems enrich into the library but diff routes them to `local_only` — they must never reach `to_add.csv`/upload (their collection lives on RPGGeek, out of scope). - **RPGs are local-only citizens**: when the board-game search runs dry, resolve falls back to `type=rpgitem` (same geekdo API/token). Matched rpgitems enrich into the library but diff routes them to `local_only` — they must never reach `to_add.csv`/upload (their collection lives on RPGGeek, out of scope).
- Detailed BGG API behavior (202 queueing, collection-endpoint quirks, endpoints): use the `bgg-api` skill. **If the spec's BGG behavior changes, update the `bgg-api` skill to match** — they must not drift. - Detailed BGG API behavior (202 queueing, collection-endpoint quirks, endpoints): use the `bgg-api` skill. **If the spec's BGG behavior changes, update the `bgg-api` skill to match** — they must not drift.
## Git ## Git
- Remote is self-hosted Gitea 1.26 (`git.kestrelsnest.social/eric/bggpipe`), **not GitHub**`gh` CLI does not work here. - Remote is self-hosted Gitea 1.26 (`git.kestrelsnest.social/eric/bggpipe`), **not GitHub**`gh` CLI does not work here.
- Commit `data/matches.csv`, `data/to_add.csv`, `data/to_update.csv`, `data/upload_log.csv`, `data/titles.json`, `data/unidentified.json`, `data/unidentified_dismissed.json`, `data/title_splits.json`, `data/title_edits.json`, `data/title_removals.json`, `data/games.json`, `data/STUB_DATA.marker` (while it applies), and the collection snapshot XMLs. Never commit `data/bgg_cache/`, `data/extract_raw/`, `photos/`, `data/.lan_key`, Playwright storage state, or `.env`. - Commit `data/matches.csv`, `data/to_add.csv`, `data/to_update.csv`, `data/upload_log.csv`, `data/titles.json`, `data/unidentified.json`, `data/unidentified_dismissed.json`, `data/title_splits.json`, `data/title_edits.json`, `data/title_removals.json`, `data/title_additions.json`, `data/games.json`, `data/STUB_DATA.marker` (while it applies), and the collection snapshot XMLs. Never commit `data/bgg_cache/`, `data/extract_raw/`, `photos/`, `data/.lan_key`, Playwright storage state, or `.env`.
+16 -10
View File
@@ -1,6 +1,6 @@
title_raw,bgg_id,bgg_name,year,type,match_status,version_id,version_name,version_status,candidates_json,version_candidates_json,source_photos,merged_into,dedupe_veto title_raw,bgg_id,bgg_name,year,type,match_status,version_id,version_name,version_status,candidates_json,version_candidates_json,source_photos,merged_into,dedupe_veto
ROYALS,165986,Royals,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 154495, ""name"": ""Royals"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 72, ""rank"": null}, {""bgg_id"": 165986, ""name"": ""Royals"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 4114, ""rank"": 1534}]",[],IMG_4499.jpeg,, ROYALS,165986,Royals,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 154495, ""name"": ""Royals"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 72, ""rank"": null}, {""bgg_id"": 165986, ""name"": ""Royals"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 4114, ""rank"": 1534}]",[],IMG_4499.jpeg,,
CAT CRIMES,,,,,unmatched,,,,[],[],IMG_4499.jpeg;IMG_4505.jpeg;shelf-20260803-215723.jpg,, CAT CRIMES,,,,,local,,,,[],[],IMG_4499.jpeg;IMG_4505.jpeg;shelf-20260803-215723.jpg,,
COSMIC ENCOUNTER,40529,Cosmic Encounter,1991,boardgame,approved,,,version_unknown,"[{""bgg_id"": 15, ""name"": ""Cosmic Encounter"", ""year"": 1977, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 4593, ""rank"": 1749}, {""bgg_id"": 39463, ""name"": ""Cosmic Encounter"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 43809, ""rank"": 232}, {""bgg_id"": 40529, ""name"": ""Cosmic Encounter"", ""year"": 1991, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1728, ""rank"": 3075}, {""bgg_id"": 40531, ""name"": ""Cosmic Encounter"", ""year"": 2000, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 2609, ""rank"": 4543}]",[],IMG_4499.jpeg,, COSMIC ENCOUNTER,40529,Cosmic Encounter,1991,boardgame,approved,,,version_unknown,"[{""bgg_id"": 15, ""name"": ""Cosmic Encounter"", ""year"": 1977, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 4593, ""rank"": 1749}, {""bgg_id"": 39463, ""name"": ""Cosmic Encounter"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 43809, ""rank"": 232}, {""bgg_id"": 40529, ""name"": ""Cosmic Encounter"", ""year"": 1991, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1728, ""rank"": 3075}, {""bgg_id"": 40531, ""name"": ""Cosmic Encounter"", ""year"": 2000, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 2609, ""rank"": 4543}]",[],IMG_4499.jpeg,,
SHERIFF OF NOTTINGHAM,157969,Sheriff of Nottingham,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 157969, ""name"": ""Sheriff of Nottingham"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4499.jpeg,, SHERIFF OF NOTTINGHAM,157969,Sheriff of Nottingham,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 157969, ""name"": ""Sheriff of Nottingham"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4499.jpeg,,
5 MINUTE DUNGEON,207830,5-Minute Dungeon,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 207830, ""name"": ""5-Minute Dungeon"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4499.jpeg,, 5 MINUTE DUNGEON,207830,5-Minute Dungeon,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 207830, ""name"": ""5-Minute Dungeon"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4499.jpeg,,
@@ -31,7 +31,7 @@ RAMPAGE,97903,Rampage,2013,boardgame,auto,,,version_unknown,"[{""bgg_id"": 97903
Onitama,160477,Onitama,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 160477, ""name"": ""Onitama"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4505.jpeg,, Onitama,160477,Onitama,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 160477, ""name"": ""Onitama"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4505.jpeg,,
Herbaceous,195314,Herbaceous,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 195314, ""name"": ""Herbaceous"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4507.jpeg,, Herbaceous,195314,Herbaceous,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 195314, ""name"": ""Herbaceous"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4507.jpeg,,
LABYRINTH,1219,Labyrinth,1986,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 1219, ""name"": ""Labyrinth"", ""year"": 1986, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 35117, ""rank"": 2116}, {""bgg_id"": 6546, ""name"": ""Labyrinth"", ""year"": 1940, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1078, ""rank"": 31020}, {""bgg_id"": 23074, ""name"": ""Labyrinth"", ""year"": 2000, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 63, ""rank"": null}, {""bgg_id"": 24422, ""name"": ""Labyrinth"", ""year"": 2001, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 121, ""rank"": null}, {""bgg_id"": 65696, ""name"": ""Labyrinth"", ""year"": null, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 46, ""rank"": null}]","[{""version_id"": 488621, ""name"": ""English edition 2017"", ""year"": 2017, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 591493, ""name"": ""English/German edition"", ""year"": 2018, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""German""], ""score"": 3}, {""version_id"": 361899, ""name"": ""Multilingual 30th anniversary edition"", ""year"": 2016, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""French"", ""German"", ""Italian""], ""score"": 3}, {""version_id"": 338520, ""name"": ""Multilingual edition"", ""year"": 2017, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 440013, ""name"": ""Multilingual edition"", ""year"": 2019, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian""], ""score"": 3}, {""version_id"": 487001, ""name"": ""Multilingual edition"", ""year"": 2019, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Spanish""], ""score"": 3}, {""version_id"": 571233, ""name"": ""Multilingual edition"", ""year"": 2021, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 630855, ""name"": ""Multilingual edition"", ""year"": 2022, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}]",IMG_4507.jpeg;IMG_4508.jpeg,, LABYRINTH,1219,Labyrinth,1986,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 1219, ""name"": ""Labyrinth"", ""year"": 1986, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 35117, ""rank"": 2116}, {""bgg_id"": 6546, ""name"": ""Labyrinth"", ""year"": 1940, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1078, ""rank"": 31020}, {""bgg_id"": 23074, ""name"": ""Labyrinth"", ""year"": 2000, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 63, ""rank"": null}, {""bgg_id"": 24422, ""name"": ""Labyrinth"", ""year"": 2001, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 121, ""rank"": null}, {""bgg_id"": 65696, ""name"": ""Labyrinth"", ""year"": null, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 46, ""rank"": null}]","[{""version_id"": 488621, ""name"": ""English edition 2017"", ""year"": 2017, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 591493, ""name"": ""English/German edition"", ""year"": 2018, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""German""], ""score"": 3}, {""version_id"": 361899, ""name"": ""Multilingual 30th anniversary edition"", ""year"": 2016, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""French"", ""German"", ""Italian""], ""score"": 3}, {""version_id"": 338520, ""name"": ""Multilingual edition"", ""year"": 2017, ""publishers"": [""Ravensburger AG""], ""languages"": [""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 440013, ""name"": ""Multilingual edition"", ""year"": 2019, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian""], ""score"": 3}, {""version_id"": 487001, ""name"": ""Multilingual edition"", ""year"": 2019, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Spanish""], ""score"": 3}, {""version_id"": 571233, ""name"": ""Multilingual edition"", ""year"": 2021, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 630855, ""name"": ""Multilingual edition"", ""year"": 2022, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}]",IMG_4507.jpeg;IMG_4508.jpeg,,
Super Mario Checkers Collector's Edition,,,,,unmatched,,,,[],[],IMG_4508.jpeg,, Super Mario Checkers Collector's Edition,,,,,local,,,,[],[],IMG_4508.jpeg,,
Dragon Land,320202,Dragon Land,2020,boardgame,auto,,,version_unknown,"[{""bgg_id"": 320202, ""name"": ""Dragon Land"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4508.jpeg;IMG_4542.jpeg,, Dragon Land,320202,Dragon Land,2020,boardgame,auto,,,version_unknown,"[{""bgg_id"": 320202, ""name"": ""Dragon Land"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4508.jpeg;IMG_4542.jpeg,,
Bugs in the Kitchen,137909,Bugs in the Kitchen,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 137909, ""name"": ""Bugs in the Kitchen"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 280025, ""name"": ""Chinese/English edition"", ""year"": 2014, ""publishers"": [""Ravensburger AG""], ""languages"": [""Chinese"", ""English""], ""score"": 3}, {""version_id"": 751514, ""name"": ""English edition 2024"", ""year"": 2024, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 216474, ""name"": ""English first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 435117, ""name"": ""English second edition"", ""year"": 2018, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 212273, ""name"": ""Multilingual EN/FR/DE/IT/NE/SP"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Spanish""], ""score"": 3}, {""version_id"": 260936, ""name"": ""French first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 726152, ""name"": ""German edition 2024"", ""year"": 2024, ""publishers"": [""Ravensburger AG""], ""languages"": [""German""], ""score"": 2}, {""version_id"": 199002, ""name"": ""German first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""German""], ""score"": 2}]",IMG_4508.jpeg;IMG_4545.jpeg,, Bugs in the Kitchen,137909,Bugs in the Kitchen,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 137909, ""name"": ""Bugs in the Kitchen"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 280025, ""name"": ""Chinese/English edition"", ""year"": 2014, ""publishers"": [""Ravensburger AG""], ""languages"": [""Chinese"", ""English""], ""score"": 3}, {""version_id"": 751514, ""name"": ""English edition 2024"", ""year"": 2024, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 216474, ""name"": ""English first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 435117, ""name"": ""English second edition"", ""year"": 2018, ""publishers"": [""Ravensburger AG""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 212273, ""name"": ""Multilingual EN/FR/DE/IT/NE/SP"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Spanish""], ""score"": 3}, {""version_id"": 260936, ""name"": ""French first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 726152, ""name"": ""German edition 2024"", ""year"": 2024, ""publishers"": [""Ravensburger AG""], ""languages"": [""German""], ""score"": 2}, {""version_id"": 199002, ""name"": ""German first edition"", ""year"": 2013, ""publishers"": [""Ravensburger AG""], ""languages"": [""German""], ""score"": 2}]",IMG_4508.jpeg;IMG_4545.jpeg,,
CATAN DICE GAME,27710,Catan Dice Game,2007,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 27710, ""name"": ""Catan Dice Game"", ""year"": 2007, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 606657, ""name"": ""English edition 2018"", ""year"": 2018, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 565571, ""name"": ""English edition 2020"", ""year"": 2020, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}]",IMG_4509.jpeg,, CATAN DICE GAME,27710,Catan Dice Game,2007,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 27710, ""name"": ""Catan Dice Game"", ""year"": 2007, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 606657, ""name"": ""English edition 2018"", ""year"": 2018, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 565571, ""name"": ""English edition 2020"", ""year"": 2020, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}]",IMG_4509.jpeg,,
@@ -39,7 +39,7 @@ Castle Panic THE DARK TITAN,169784,Castle Panic: The Dark Titan,2015,boardgame,a
Jenga,2452,Jenga,1983,boardgame,auto,,,version_unknown,"[{""bgg_id"": 2452, ""name"": ""Jenga"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4509.jpeg,, Jenga,2452,Jenga,1983,boardgame,auto,,,version_unknown,"[{""bgg_id"": 2452, ""name"": ""Jenga"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4509.jpeg,,
"NO THANK YOU, EVIL!",208428,"No Thank You, Evil!",2016,boardgame,auto,,,version_unknown,"[{""bgg_id"": 208428, ""name"": ""No Thank You, Evil!"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,, "NO THANK YOU, EVIL!",208428,"No Thank You, Evil!",2016,boardgame,auto,,,version_unknown,"[{""bgg_id"": 208428, ""name"": ""No Thank You, Evil!"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,,
CODE MASTER,42063,Code Master,1997,boardgame,auto,,,version_unknown,"[{""bgg_id"": 42063, ""name"": ""Code Master"", ""year"": 1997, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,, CODE MASTER,42063,Code Master,1997,boardgame,auto,,,version_unknown,"[{""bgg_id"": 42063, ""name"": ""Code Master"", ""year"": 1997, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,,
GRAVITY MAZE,,,,,unmatched,,,,[],[],IMG_4510.jpeg,, GRAVITY MAZE,,,,,local,,,,[],[],IMG_4510.jpeg,,
ROBOT TURTLES,147370,Robot Turtles,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 147370, ""name"": ""Robot Turtles"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 231664, ""name"": ""English second edition"", ""year"": 2014, ""publishers"": [""ThinkFun""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 571231, ""name"": ""Multilingual edition"", ""year"": 2021, ""publishers"": [""ThinkFun""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 498079, ""name"": ""Korean edition"", ""year"": 2017, ""publishers"": [""Korea Boardgames"", ""ThinkFun""], ""languages"": [""Korean""], ""score"": 2}]",IMG_4510.jpeg,, ROBOT TURTLES,147370,Robot Turtles,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 147370, ""name"": ""Robot Turtles"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 231664, ""name"": ""English second edition"", ""year"": 2014, ""publishers"": [""ThinkFun""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 571231, ""name"": ""Multilingual edition"", ""year"": 2021, ""publishers"": [""ThinkFun""], ""languages"": [""Dutch"", ""English"", ""French"", ""German"", ""Italian"", ""Portuguese"", ""Spanish""], ""score"": 3}, {""version_id"": 498079, ""name"": ""Korean edition"", ""year"": 2017, ""publishers"": [""Korea Boardgames"", ""ThinkFun""], ""languages"": [""Korean""], ""score"": 2}]",IMG_4510.jpeg,,
GOOGLY EYES,57215,Googly Eyes,2008,boardgame,auto,,,version_unknown,"[{""bgg_id"": 57215, ""name"": ""Googly Eyes"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,, GOOGLY EYES,57215,Googly Eyes,2008,boardgame,auto,,,version_unknown,"[{""bgg_id"": 57215, ""name"": ""Googly Eyes"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4510.jpeg,,
THROW THROW AVOCADO,340420,Throw Throw Avocado,2021,boardgame,auto,,,version_unknown,"[{""bgg_id"": 340420, ""name"": ""Throw Throw Avocado"", ""year"": 2021, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4511.jpeg,, THROW THROW AVOCADO,340420,Throw Throw Avocado,2021,boardgame,auto,,,version_unknown,"[{""bgg_id"": 340420, ""name"": ""Throw Throw Avocado"", ""year"": 2021, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4511.jpeg,,
@@ -57,7 +57,7 @@ The Rocky Horror Trivia Game,20866,The Rocky Horror Trivia Game,2005,boardgame,a
SPEECHLESS,196105,Speechless,2016,boardgame,approved,,,version_unknown,"[{""bgg_id"": 14370, ""name"": ""Speechless"", ""year"": 1985, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 94, ""rank"": null}, {""bgg_id"": 196105, ""name"": ""Speechless"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 493, ""rank"": 10370}]",[],IMG_4516.jpeg,, SPEECHLESS,196105,Speechless,2016,boardgame,approved,,,version_unknown,"[{""bgg_id"": 14370, ""name"": ""Speechless"", ""year"": 1985, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 94, ""rank"": null}, {""bgg_id"": 196105, ""name"": ""Speechless"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 493, ""rank"": 10370}]",[],IMG_4516.jpeg,,
CATAN JUNIOR,125921,Catan: Junior,2012,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 184842, ""name"": ""Catan Junior"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 3961, ""rank"": 4440}, {""bgg_id"": 5824, ""name"": ""Catan Junior"", ""year"": 2003, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1225, ""rank"": 30649}, {""bgg_id"": 125921, ""name"": ""Catan: Junior"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 9917, ""rank"": 2616}]","[{""version_id"": 791740, ""name"": ""English edition 2025"", ""year"": 2025, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 558911, ""name"": ""English fourth edition"", ""year"": 2018, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 414618, ""name"": ""English second edition"", ""year"": 2016, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 476263, ""name"": ""English third edition"", ""year"": 2016, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}]",IMG_4516.jpeg,, CATAN JUNIOR,125921,Catan: Junior,2012,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 184842, ""name"": ""Catan Junior"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 3961, ""rank"": 4440}, {""bgg_id"": 5824, ""name"": ""Catan Junior"", ""year"": 2003, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1225, ""rank"": 30649}, {""bgg_id"": 125921, ""name"": ""Catan: Junior"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 9917, ""rank"": 2616}]","[{""version_id"": 791740, ""name"": ""English edition 2025"", ""year"": 2025, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 558911, ""name"": ""English fourth edition"", ""year"": 2018, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 414618, ""name"": ""English second edition"", ""year"": 2016, ""publishers"": [""Catan GmbH"", ""Catan Studio""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 476263, ""name"": ""English third edition"", ""year"": 2016, ""publishers"": [""Catan Studio""], ""languages"": [""English""], ""score"": 3}]",IMG_4516.jpeg,,
SKYLANDERS PORTAL MASTER,156994,Skylanders Portal Master,2013,boardgame,auto,,,version_unknown,"[{""bgg_id"": 156994, ""name"": ""Skylanders Portal Master"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4516.jpeg,, SKYLANDERS PORTAL MASTER,156994,Skylanders Portal Master,2013,boardgame,auto,,,version_unknown,"[{""bgg_id"": 156994, ""name"": ""Skylanders Portal Master"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4516.jpeg,,
LASER MAZE BEAM-BENDING LOGIC GAME,,,,,unmatched,,,,[],[],IMG_4516.jpeg,, LASER MAZE BEAM-BENDING LOGIC GAME,,,,,local,,,,[],[],IMG_4516.jpeg,,
CAPTAIN MARVEL SECRET SKRULLS,269564,Captain Marvel: Secret Skrulls,2019,boardgame,auto,,,version_unknown,"[{""bgg_id"": 269564, ""name"": ""Captain Marvel: Secret Skrulls"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4516.jpeg,, CAPTAIN MARVEL SECRET SKRULLS,269564,Captain Marvel: Secret Skrulls,2019,boardgame,auto,,,version_unknown,"[{""bgg_id"": 269564, ""name"": ""Captain Marvel: Secret Skrulls"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4516.jpeg,,
Pie Face!,18755,Pie Face!,1964,boardgame,approved,,,version_unknown,"[{""bgg_id"": 16562, ""name"": ""Pie Face"", ""year"": 1993, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 274, ""rank"": 29603}, {""bgg_id"": 18755, ""name"": ""Pie Face!"", ""year"": 1964, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1404, ""rank"": 30933}]",[],IMG_4517.jpeg,, Pie Face!,18755,Pie Face!,1964,boardgame,approved,,,version_unknown,"[{""bgg_id"": 16562, ""name"": ""Pie Face"", ""year"": 1993, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 274, ""rank"": 29603}, {""bgg_id"": 18755, ""name"": ""Pie Face!"", ""year"": 1964, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1404, ""rank"": 30933}]",[],IMG_4517.jpeg,,
Walk the Plank!,35505,Walk the Plank!,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 21834, ""name"": ""Walk the Plank"", ""year"": 2002, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 18, ""rank"": null}, {""bgg_id"": 29010, ""name"": ""Walk the Plank"", ""year"": 2007, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 179, ""rank"": 28080}, {""bgg_id"": 152950, ""name"": ""Walk the Plank"", ""year"": null, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 5, ""rank"": null}, {""bgg_id"": 35505, ""name"": ""Walk the Plank!"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 3127, ""rank"": 3700}]","[{""version_id"": 781669, ""name"": ""English MDG-4311 edition"", ""year"": 2013, ""publishers"": [""Mayday Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 189968, ""name"": ""English MYY4311 edition"", ""year"": 2013, ""publishers"": [""Mayday Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 483159, ""name"": ""Russian edition"", ""year"": 2013, ""publishers"": [""Cosmodrome Games"", ""Mayday Games""], ""languages"": [""Russian""], ""score"": 2}]",IMG_4517.jpeg;IMG_4549.jpeg,, Walk the Plank!,35505,Walk the Plank!,2013,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 21834, ""name"": ""Walk the Plank"", ""year"": 2002, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 18, ""rank"": null}, {""bgg_id"": 29010, ""name"": ""Walk the Plank"", ""year"": 2007, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 179, ""rank"": 28080}, {""bgg_id"": 152950, ""name"": ""Walk the Plank"", ""year"": null, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 5, ""rank"": null}, {""bgg_id"": 35505, ""name"": ""Walk the Plank!"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 3127, ""rank"": 3700}]","[{""version_id"": 781669, ""name"": ""English MDG-4311 edition"", ""year"": 2013, ""publishers"": [""Mayday Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 189968, ""name"": ""English MYY4311 edition"", ""year"": 2013, ""publishers"": [""Mayday Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 483159, ""name"": ""Russian edition"", ""year"": 2013, ""publishers"": [""Cosmodrome Games"", ""Mayday Games""], ""languages"": [""Russian""], ""score"": 2}]",IMG_4517.jpeg;IMG_4549.jpeg,,
@@ -65,7 +65,7 @@ AGRICOLA,31260,Agricola,2007,boardgame,auto,297589,Z-Man Games English fifth edi
METEOR,166109,Meteor,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 25172, ""name"": ""Meteor"", ""year"": 1975, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 56, ""rank"": null}, {""bgg_id"": 166109, ""name"": ""Meteor"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1396, ""rank"": 10371}, {""bgg_id"": 246740, ""name"": ""Meteors"", ""year"": 2018, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 92.3, ""owned"": 71, ""rank"": 25541}]",[],IMG_4518.jpeg,, METEOR,166109,Meteor,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 25172, ""name"": ""Meteor"", ""year"": 1975, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 56, ""rank"": null}, {""bgg_id"": 166109, ""name"": ""Meteor"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1396, ""rank"": 10371}, {""bgg_id"": 246740, ""name"": ""Meteors"", ""year"": 2018, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 92.3, ""owned"": 71, ""rank"": 25541}]",[],IMG_4518.jpeg,,
DOCTOR WHO THE card GAME,125675,Doctor Who: The Card Game,2012,boardgame,auto,,,version_unknown,"[{""bgg_id"": 125675, ""name"": ""Doctor Who: The Card Game"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4518.jpeg,, DOCTOR WHO THE card GAME,125675,Doctor Who: The Card Game,2012,boardgame,auto,,,version_unknown,"[{""bgg_id"": 125675, ""name"": ""Doctor Who: The Card Game"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4518.jpeg,,
DUNGEONS & DRAGONS,140509,Dungeons & Dragons,1985,boardgame,auto,,,version_unknown,"[{""bgg_id"": 140509, ""name"": ""Dungeons & Dragons"", ""year"": 1985, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4519.jpeg,, DUNGEONS & DRAGONS,140509,Dungeons & Dragons,1985,boardgame,auto,,,version_unknown,"[{""bgg_id"": 140509, ""name"": ""Dungeons & Dragons"", ""year"": 1985, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4519.jpeg,,
DUNGEONS & DRAGONS FANTASY GAME RULES,,,,,unmatched,,,,[],[],IMG_4519.jpeg,, DUNGEONS & DRAGONS FANTASY GAME RULES,,,,,local,,,,[],[],IMG_4519.jpeg,,
"Before I Kill You, Mister Bond...",164,"Before I Kill You, Mister Bond",1996,boardgame,auto,28465,"Cheapass black and white ""Better Edition"" edition",version_auto,"[{""bgg_id"": 164, ""name"": ""Before I Kill You, Mister Bond"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 28465, ""name"": ""Cheapass black and white \""Better Edition\"" edition"", ""year"": 2001, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 5}, {""version_id"": 291316, ""name"": ""English edition 2016"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 520361, ""name"": ""English second edition"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 28459, ""name"": ""First \""Renamed\"" edition, First color edition"", ""year"": 2004, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 180392, ""name"": ""First black and white envelope edition"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 28462, ""name"": ""Third black and white edition"", ""year"": 1998, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4519.jpeg;IMG_4554.jpeg,, "Before I Kill You, Mister Bond...",164,"Before I Kill You, Mister Bond",1996,boardgame,auto,28465,"Cheapass black and white ""Better Edition"" edition",version_auto,"[{""bgg_id"": 164, ""name"": ""Before I Kill You, Mister Bond"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 28465, ""name"": ""Cheapass black and white \""Better Edition\"" edition"", ""year"": 2001, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 5}, {""version_id"": 291316, ""name"": ""English edition 2016"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 520361, ""name"": ""English second edition"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 28459, ""name"": ""First \""Renamed\"" edition, First color edition"", ""year"": 2004, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 180392, ""name"": ""First black and white envelope edition"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 28462, ""name"": ""Third black and white edition"", ""year"": 1998, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4519.jpeg;IMG_4554.jpeg,,
MYSTERIUM,181304,Mysterium,2015,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 181304, ""name"": ""Mysterium"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 85034, ""rank"": 454}, {""bgg_id"": 113997, ""name"": ""Mysterium"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 5494, ""rank"": 1143}]","[{""version_id"": 781306, ""name"": ""English 2025 Refresh Edition"", ""year"": 2025, ""publishers"": [""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 280251, ""name"": ""English edition 2015-1"", ""year"": 2015, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 493543, ""name"": ""English edition 2015-2"", ""year"": 2015, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 475162, ""name"": ""English edition 2016-1"", ""year"": 2016, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 351093, ""name"": ""English edition 2017-1"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 467608, ""name"": ""English edition 2017-2"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 404443, ""name"": ""English edition 2017-3"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 536289, ""name"": ""English edition 2018-2"", ""year"": 2018, ""publishers"": [""Libellud""], ""languages"": [""English""], ""score"": 3}]",IMG_4520.jpeg,, MYSTERIUM,181304,Mysterium,2015,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 181304, ""name"": ""Mysterium"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 85034, ""rank"": 454}, {""bgg_id"": 113997, ""name"": ""Mysterium"", ""year"": 2013, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 5494, ""rank"": 1143}]","[{""version_id"": 781306, ""name"": ""English 2025 Refresh Edition"", ""year"": 2025, ""publishers"": [""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 280251, ""name"": ""English edition 2015-1"", ""year"": 2015, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 493543, ""name"": ""English edition 2015-2"", ""year"": 2015, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 475162, ""name"": ""English edition 2016-1"", ""year"": 2016, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 351093, ""name"": ""English edition 2017-1"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 467608, ""name"": ""English edition 2017-2"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 404443, ""name"": ""English edition 2017-3"", ""year"": 2017, ""publishers"": [""Esdevium"", ""Libellud""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 536289, ""name"": ""English edition 2018-2"", ""year"": 2018, ""publishers"": [""Libellud""], ""languages"": [""English""], ""score"": 3}]",IMG_4520.jpeg,,
Völuspá,128554,Völuspá,2012,boardgame,auto,,,version_unknown,"[{""bgg_id"": 128554, ""name"": ""Völuspá"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4520.jpeg,, Völuspá,128554,Völuspá,2012,boardgame,auto,,,version_unknown,"[{""bgg_id"": 128554, ""name"": ""Völuspá"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4520.jpeg,,
@@ -81,12 +81,12 @@ FORBIDDEN ISLAND,65244,Forbidden Island,2010,boardgame,auto,,,version_ambiguous,
TEMPURRA,95386,Tempurra,2011,boardgame,auto,290572,English edition,version_auto,"[{""bgg_id"": 95386, ""name"": ""Tempurra"", ""year"": 2011, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 290572, ""name"": ""English edition"", ""year"": 2016, ""publishers"": [""IELLO""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 287427, ""name"": ""French edition"", ""year"": 2016, ""publishers"": [""IELLO""], ""languages"": [""French""], ""score"": 2}]",IMG_4524.jpeg,, TEMPURRA,95386,Tempurra,2011,boardgame,auto,290572,English edition,version_auto,"[{""bgg_id"": 95386, ""name"": ""Tempurra"", ""year"": 2011, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 290572, ""name"": ""English edition"", ""year"": 2016, ""publishers"": [""IELLO""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 287427, ""name"": ""French edition"", ""year"": 2016, ""publishers"": [""IELLO""], ""languages"": [""French""], ""score"": 2}]",IMG_4524.jpeg,,
FLUXX,258,Fluxx,1997,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 258, ""name"": ""Fluxx"", ""year"": 1997, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 33357, ""rank"": 12263}, {""bgg_id"": 314413, ""name"": ""Fluxx"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 2152, ""rank"": 15720}]","[{""version_id"": 20841, ""name"": ""Looney Labs edition v3.0"", ""year"": 2002, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20843, ""name"": ""Looney Labs edition v3.1"", ""year"": 2005, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20844, ""name"": ""Looney Labs edition v4.0"", ""year"": 2008, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 263858, ""name"": ""Looney Labs edition v5.0"", ""year"": 2014, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20838, ""name"": ""Looney Labs English 1.0 edition"", ""year"": 1996, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20840, ""name"": ""Looney Labs Version v2.1"", ""year"": 2000, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 488647, ""name"": ""Hobby World Russian 5.0 edition"", ""year"": 2017, ""publishers"": [""Hobby World"", ""Looney Labs""], ""languages"": [""Russian""], ""score"": 2}, {""version_id"": 290805, ""name"": ""Polish edition"", ""year"": 2015, ""publishers"": [""Black Monk"", ""Looney Labs""], ""languages"": [""Polish""], ""score"": 2}]",IMG_4525.jpeg,, FLUXX,258,Fluxx,1997,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 258, ""name"": ""Fluxx"", ""year"": 1997, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 33357, ""rank"": 12263}, {""bgg_id"": 314413, ""name"": ""Fluxx"", ""year"": 2012, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 2152, ""rank"": 15720}]","[{""version_id"": 20841, ""name"": ""Looney Labs edition v3.0"", ""year"": 2002, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20843, ""name"": ""Looney Labs edition v3.1"", ""year"": 2005, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20844, ""name"": ""Looney Labs edition v4.0"", ""year"": 2008, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 263858, ""name"": ""Looney Labs edition v5.0"", ""year"": 2014, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20838, ""name"": ""Looney Labs English 1.0 edition"", ""year"": 1996, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 20840, ""name"": ""Looney Labs Version v2.1"", ""year"": 2000, ""publishers"": [""Looney Labs""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 488647, ""name"": ""Hobby World Russian 5.0 edition"", ""year"": 2017, ""publishers"": [""Hobby World"", ""Looney Labs""], ""languages"": [""Russian""], ""score"": 2}, {""version_id"": 290805, ""name"": ""Polish edition"", ""year"": 2015, ""publishers"": [""Black Monk"", ""Looney Labs""], ""languages"": [""Polish""], ""score"": 2}]",IMG_4525.jpeg,,
Poetry for Neanderthals,312786,Poetry for Neanderthals,2020,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 312786, ""name"": ""Poetry for Neanderthals"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 514050, ""name"": ""English edition 2020"", ""year"": 2020, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 655388, ""name"": ""English edition 2022"", ""year"": 2022, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 782169, ""name"": ""English edition 2024"", ""year"": 2024, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 746180, ""name"": ""English Grab & Game edition 2023"", ""year"": 2023, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 786184, ""name"": ""English Grab & Game edition 2025"", ""year"": 2025, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 735751, ""name"": ""Dutch edition"", ""year"": 2024, ""publishers"": [""Exploding Kittens""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 783801, ""name"": ""French edition"", ""year"": 2023, ""publishers"": [""Exploding Kittens""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 632084, ""name"": ""German edition"", ""year"": 2022, ""publishers"": [""Exploding Kittens""], ""languages"": [""German""], ""score"": 2}]",IMG_4526.jpeg,, Poetry for Neanderthals,312786,Poetry for Neanderthals,2020,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 312786, ""name"": ""Poetry for Neanderthals"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 514050, ""name"": ""English edition 2020"", ""year"": 2020, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 655388, ""name"": ""English edition 2022"", ""year"": 2022, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 782169, ""name"": ""English edition 2024"", ""year"": 2024, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 746180, ""name"": ""English Grab & Game edition 2023"", ""year"": 2023, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 786184, ""name"": ""English Grab & Game edition 2025"", ""year"": 2025, ""publishers"": [""Exploding Kittens""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 735751, ""name"": ""Dutch edition"", ""year"": 2024, ""publishers"": [""Exploding Kittens""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 783801, ""name"": ""French edition"", ""year"": 2023, ""publishers"": [""Exploding Kittens""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 632084, ""name"": ""German edition"", ""year"": 2022, ""publishers"": [""Exploding Kittens""], ""languages"": [""German""], ""score"": 2}]",IMG_4526.jpeg,,
Elite Sportz Equipment Table Top Curling,,,,,unmatched,,,,[],[],IMG_4526.jpeg,, Elite Sportz Equipment Table Top Curling,,,,,local,,,,[],[],IMG_4526.jpeg,,
Simon's Cat Card Game,188614,Simon's Cat Card Game,2016,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 188614, ""name"": ""Simon's Cat Card Game"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1429, ""rank"": 12119}, {""bgg_id"": 330317, ""name"": ""NOM: Simon's Cat Card Game"", ""year"": 2021, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 91.3, ""owned"": 70, ""rank"": null}]","[{""version_id"": 292307, ""name"": ""English edition, first printing"", ""year"": 2016, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 779792, ""name"": ""English edition, second printing"", ""year"": 2016, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4526.jpeg,, Simon's Cat Card Game,188614,Simon's Cat Card Game,2016,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 188614, ""name"": ""Simon's Cat Card Game"", ""year"": 2016, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 1429, ""rank"": 12119}, {""bgg_id"": 330317, ""name"": ""NOM: Simon's Cat Card Game"", ""year"": 2021, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 91.3, ""owned"": 70, ""rank"": null}]","[{""version_id"": 292307, ""name"": ""English edition, first printing"", ""year"": 2016, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 779792, ""name"": ""English edition, second printing"", ""year"": 2016, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4526.jpeg,,
The Red Dragon Inn: Smorgasbox,273240,The Red Dragon Inn Smorgasbox,2019,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 273240, ""name"": ""The Red Dragon Inn Smorgasbox"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 446786, ""name"": ""Collector's edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446788, ""name"": ""Eco-Collector's edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446787, ""name"": ""Eco-Kickstarter edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446069, ""name"": ""Kickstarter edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4527.jpeg,, The Red Dragon Inn: Smorgasbox,273240,The Red Dragon Inn Smorgasbox,2019,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 273240, ""name"": ""The Red Dragon Inn Smorgasbox"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 446786, ""name"": ""Collector's edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446788, ""name"": ""Eco-Collector's edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446787, ""name"": ""Eco-Kickstarter edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 446069, ""name"": ""Kickstarter edition"", ""year"": 2019, ""publishers"": [""SlugFest Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4527.jpeg,,
WIZ-WAR,589,Wiz-War,1983,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 589, ""name"": ""Wiz-War"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 26114, ""name"": ""Fifth edition"", ""year"": 1991, ""publishers"": [""Chessex""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 29214, ""name"": ""Fourth edition"", ""year"": 1987, ""publishers"": [""Jolly Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 360420, ""name"": ""Third edition"", ""year"": 1986, ""publishers"": [""Jolly Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4528.jpeg,, WIZ-WAR,589,Wiz-War,1983,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 589, ""name"": ""Wiz-War"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 26114, ""name"": ""Fifth edition"", ""year"": 1991, ""publishers"": [""Chessex""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 29214, ""name"": ""Fourth edition"", ""year"": 1987, ""publishers"": [""Jolly Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 360420, ""name"": ""Third edition"", ""year"": 1986, ""publishers"": [""Jolly Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4528.jpeg,,
RISK THE LORD OF THE RINGS: The Middle-earth Conquest Game,4324,Risk: The Lord of the Rings,2002,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 4324, ""name"": ""Risk: The Lord of the Rings"", ""year"": 2002, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 57.1, ""owned"": null, ""rank"": null}]","[{""version_id"": 33264, ""name"": ""English (UK) edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 26859, ""name"": ""English edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 26863, ""name"": ""English/French edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 26865, ""name"": ""Danish edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Danish""], ""score"": 2}, {""version_id"": 26861, ""name"": ""Dutch edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 77144, ""name"": ""French edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 26862, ""name"": ""German edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""German""], ""score"": 2}, {""version_id"": 75135, ""name"": ""Norwegian edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Norwegian""], ""score"": 2}]",IMG_4529.jpeg,, RISK THE LORD OF THE RINGS: The Middle-earth Conquest Game,4324,Risk: The Lord of the Rings,2002,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 4324, ""name"": ""Risk: The Lord of the Rings"", ""year"": 2002, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 57.1, ""owned"": null, ""rank"": null}]","[{""version_id"": 33264, ""name"": ""English (UK) edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 26859, ""name"": ""English edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 26863, ""name"": ""English/French edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 26865, ""name"": ""Danish edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Danish""], ""score"": 2}, {""version_id"": 26861, ""name"": ""Dutch edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 77144, ""name"": ""French edition 2002"", ""year"": 2002, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 26862, ""name"": ""German edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""German""], ""score"": 2}, {""version_id"": 75135, ""name"": ""Norwegian edition"", ""year"": 2002, ""publishers"": [""Parker Brothers""], ""languages"": [""Norwegian""], ""score"": 2}]",IMG_4529.jpeg,,
Ouija,,,,,unmatched,,,,[],[],IMG_4529.jpeg,, Ouija,,,,,local,,,,[],[],IMG_4529.jpeg,,
Munchkin Big Box,419687,Munchkin Big Box,2025,boardgame,auto,711400,English edition,version_auto,"[{""bgg_id"": 419687, ""name"": ""Munchkin Big Box"", ""year"": 2025, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 711400, ""name"": ""English edition"", ""year"": 2025, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 777457, ""name"": ""Russian edition"", ""year"": 2025, ""publishers"": [""Hobby World"", ""Steve Jackson Games""], ""languages"": [""Russian""], ""score"": 2}]",IMG_4530.jpeg,, Munchkin Big Box,419687,Munchkin Big Box,2025,boardgame,auto,711400,English edition,version_auto,"[{""bgg_id"": 419687, ""name"": ""Munchkin Big Box"", ""year"": 2025, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 711400, ""name"": ""English edition"", ""year"": 2025, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 777457, ""name"": ""Russian edition"", ""year"": 2025, ""publishers"": [""Hobby World"", ""Steve Jackson Games""], ""languages"": [""Russian""], ""score"": 2}]",IMG_4530.jpeg,,
FROSTHAVEN,295770,Frosthaven,2022,boardgame,auto,,,version_unknown,"[{""bgg_id"": 295770, ""name"": ""Frosthaven"", ""year"": 2022, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4531.jpeg,, FROSTHAVEN,295770,Frosthaven,2022,boardgame,auto,,,version_unknown,"[{""bgg_id"": 295770, ""name"": ""Frosthaven"", ""year"": 2022, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4531.jpeg,,
GLOOMHAVEN,174430,Gloomhaven,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 174430, ""name"": ""Gloomhaven"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4532.jpeg,, GLOOMHAVEN,174430,Gloomhaven,2017,boardgame,auto,,,version_unknown,"[{""bgg_id"": 174430, ""name"": ""Gloomhaven"", ""year"": 2017, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4532.jpeg,,
@@ -105,7 +105,7 @@ SPANC Space Pirate Amazon Ninja Catgirls,14535,SPANC: Space Pirate Amazon Ninja
Greed Quest,9666,Greed Quest,2004,boardgame,auto,215137,English edition,version_auto,"[{""bgg_id"": 9666, ""name"": ""Greed Quest"", ""year"": 2004, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 215137, ""name"": ""English edition"", ""year"": 2004, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4537.jpeg,, Greed Quest,9666,Greed Quest,2004,boardgame,auto,215137,English edition,version_auto,"[{""bgg_id"": 9666, ""name"": ""Greed Quest"", ""year"": 2004, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 215137, ""name"": ""English edition"", ""year"": 2004, ""publishers"": [""Steve Jackson Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4537.jpeg,,
GLOOMHAVEN - Jaws of the Lion,291457,Gloomhaven: Jaws of the Lion,2020,boardgame,auto,,,version_unknown,"[{""bgg_id"": 291457, ""name"": ""Gloomhaven: Jaws of the Lion"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4538.jpeg,, GLOOMHAVEN - Jaws of the Lion,291457,Gloomhaven: Jaws of the Lion,2020,boardgame,auto,,,version_unknown,"[{""bgg_id"": 291457, ""name"": ""Gloomhaven: Jaws of the Lion"", ""year"": 2020, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4538.jpeg,,
SCRABBLE SLAM!,40508,Scrabble Slam!,2008,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 40508, ""name"": ""Scrabble Slam!"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 39335, ""name"": ""English edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 644326, ""name"": ""English edition with Hasbro logo"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 25061, ""name"": ""English edition with Parker Brothers logo"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 294332, ""name"": ""English/French edition"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 480950, ""name"": ""English/French edition"", ""year"": 2014, ""publishers"": [""Hasbro""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 116530, ""name"": ""Dutch edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 345823, ""name"": ""French edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 111167, ""name"": ""German edition"", ""year"": 2010, ""publishers"": [""Hasbro""], ""languages"": [""German""], ""score"": 2}]",IMG_4543.jpeg,, SCRABBLE SLAM!,40508,Scrabble Slam!,2008,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 40508, ""name"": ""Scrabble Slam!"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 39335, ""name"": ""English edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 644326, ""name"": ""English edition with Hasbro logo"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 25061, ""name"": ""English edition with Parker Brothers logo"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 294332, ""name"": ""English/French edition"", ""year"": 2008, ""publishers"": [""Hasbro"", ""Parker Brothers""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 480950, ""name"": ""English/French edition"", ""year"": 2014, ""publishers"": [""Hasbro""], ""languages"": [""English"", ""French""], ""score"": 3}, {""version_id"": 116530, ""name"": ""Dutch edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 345823, ""name"": ""French edition"", ""year"": 2009, ""publishers"": [""Hasbro""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 111167, ""name"": ""German edition"", ""year"": 2010, ""publishers"": [""Hasbro""], ""languages"": [""German""], ""score"": 2}]",IMG_4543.jpeg,,
CAT STAX,,,,,unmatched,,,,[],[],IMG_4544.jpeg,, CAT STAX,,,,,local,,,,[],[],IMG_4544.jpeg,,
POCKET FARKEL,3181,Farkle,1930,boardgame,approved,,,version_ambiguous,[],"[{""version_id"": 374844, ""name"": ""Legendary Games black flat pack edition"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 390425, ""name"": ""Legendary Games blister pack editon"", ""year"": 0, ""publishers"": [""Cardinal"", ""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 87931, ""name"": ""Legendary Games cannister edition"", ""year"": 0, ""publishers"": [""Legendary Games, Inc."", ""Reveal Entertainment, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 295385, ""name"": ""Legendary Games dice rolling tray edition"", ""year"": 2006, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 658688, ""name"": ""Legendary Games English/Spanish \""Alaska: The Last Frontier\"" edition"", ""year"": 1999, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English"", ""Spanish""], ""score"": 3}, {""version_id"": 374847, ""name"": ""Legendary Games flat pack edition"", ""year"": 0, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 247184, ""name"": ""Legendary Games flat pack edition 1996"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 374842, ""name"": ""Legendary Games flat pack edition 1996"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}]",IMG_4545.jpeg,, POCKET FARKEL,3181,Farkle,1930,boardgame,approved,,,version_ambiguous,[],"[{""version_id"": 374844, ""name"": ""Legendary Games black flat pack edition"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 390425, ""name"": ""Legendary Games blister pack editon"", ""year"": 0, ""publishers"": [""Cardinal"", ""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 87931, ""name"": ""Legendary Games cannister edition"", ""year"": 0, ""publishers"": [""Legendary Games, Inc."", ""Reveal Entertainment, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 295385, ""name"": ""Legendary Games dice rolling tray edition"", ""year"": 2006, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 658688, ""name"": ""Legendary Games English/Spanish \""Alaska: The Last Frontier\"" edition"", ""year"": 1999, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English"", ""Spanish""], ""score"": 3}, {""version_id"": 374847, ""name"": ""Legendary Games flat pack edition"", ""year"": 0, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 247184, ""name"": ""Legendary Games flat pack edition 1996"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 374842, ""name"": ""Legendary Games flat pack edition 1996"", ""year"": 1996, ""publishers"": [""Legendary Games, Inc.""], ""languages"": [""English""], ""score"": 3}]",IMG_4545.jpeg,,
Go Fish Yourself,173057,Go Fish Yourself,2015,boardgame,auto,,,version_unknown,"[{""bgg_id"": 173057, ""name"": ""Go Fish Yourself"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4546.jpeg,, Go Fish Yourself,173057,Go Fish Yourself,2015,boardgame,auto,,,version_unknown,"[{""bgg_id"": 173057, ""name"": ""Go Fish Yourself"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4546.jpeg,,
Hold your Breath!,150925,Hold Your Breath!,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 150925, ""name"": ""Hold Your Breath!"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4547.jpeg,, Hold your Breath!,150925,Hold Your Breath!,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 150925, ""name"": ""Hold Your Breath!"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4547.jpeg,,
@@ -115,8 +115,8 @@ MACHI KORO,143884,Machi Koro,2012,boardgame,auto,,,version_ambiguous,"[{""bgg_id
Dark Cults: The Horror Story Game,1784,Dark Cults,1983,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 1784, ""name"": ""Dark Cults"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 52.6, ""owned"": null, ""rank"": null}]","[{""version_id"": 110926, ""name"": ""First edition"", ""year"": 1983, ""publishers"": [""Dark House""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 110927, ""name"": ""Second edition"", ""year"": 1985, ""publishers"": [""Dark House""], ""languages"": [""English""], ""score"": 3}]",IMG_4552.jpeg,, Dark Cults: The Horror Story Game,1784,Dark Cults,1983,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 1784, ""name"": ""Dark Cults"", ""year"": 1983, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 52.6, ""owned"": null, ""rank"": null}]","[{""version_id"": 110926, ""name"": ""First edition"", ""year"": 1983, ""publishers"": [""Dark House""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 110927, ""name"": ""Second edition"", ""year"": 1985, ""publishers"": [""Dark House""], ""languages"": [""English""], ""score"": 3}]",IMG_4552.jpeg,,
Give Me The Brain,176,Give Me the Brain!,1996,boardgame,auto,27673,Czech edition,version_auto,"[{""bgg_id"": 176, ""name"": ""Give Me the Brain!"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 27673, ""name"": ""Czech edition"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""Czech""], ""score"": 4}, {""version_id"": 28103, ""name"": ""Cheapass English first paper envelope edition 1996"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 795469, ""name"": ""Cheapass English paper envelope edition 1998"", ""year"": 1998, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 24093, ""name"": ""Cheapass English special edition 2002"", ""year"": 2002, ""publishers"": [""Cheapass Games"", ""James Ernest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 742802, ""name"": ""German zipper bag edition"", ""year"": 2000, ""publishers"": [""Cheapass Games"", ""Truant Spiele""], ""languages"": [""German""], ""score"": 2}]",IMG_4553.jpeg,, Give Me The Brain,176,Give Me the Brain!,1996,boardgame,auto,27673,Czech edition,version_auto,"[{""bgg_id"": 176, ""name"": ""Give Me the Brain!"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 27673, ""name"": ""Czech edition"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""Czech""], ""score"": 4}, {""version_id"": 28103, ""name"": ""Cheapass English first paper envelope edition 1996"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 795469, ""name"": ""Cheapass English paper envelope edition 1998"", ""year"": 1998, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 24093, ""name"": ""Cheapass English special edition 2002"", ""year"": 2002, ""publishers"": [""Cheapass Games"", ""James Ernest Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 742802, ""name"": ""German zipper bag edition"", ""year"": 2000, ""publishers"": [""Cheapass Games"", ""Truant Spiele""], ""languages"": [""German""], ""score"": 2}]",IMG_4553.jpeg,,
KILL DOCTOR LUCKY,257,Kill Doctor Lucky,1996,boardgame,auto,520364,"Cheapass envelope edition, second printing",version_auto,"[{""bgg_id"": 257, ""name"": ""Kill Doctor Lucky"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 520364, ""name"": ""Cheapass envelope edition, second printing"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 5}, {""version_id"": 28629, ""name"": ""Cheapass boxed edition, sixth printing"", ""year"": 2000, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 342532, ""name"": ""Cheapass English 19.5th Anniversary edition"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 302015, ""name"": ""Cheapass English/German 19.5th Anniversary edition"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English"", ""German""], ""score"": 3}, {""version_id"": 24741, ""name"": ""Cheapass envelope edition, first printing"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 261344, ""name"": ""Cheapass envelope edition, fourth printing"", ""year"": 1999, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 133486, ""name"": ""Cheapass print & play edition 2011"", ""year"": 2011, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 24760, ""name"": ""Cheapass special edition, eighth printing"", ""year"": 2002, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4555.jpeg,, KILL DOCTOR LUCKY,257,Kill Doctor Lucky,1996,boardgame,auto,520364,"Cheapass envelope edition, second printing",version_auto,"[{""bgg_id"": 257, ""name"": ""Kill Doctor Lucky"", ""year"": 1996, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 520364, ""name"": ""Cheapass envelope edition, second printing"", ""year"": 1997, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 5}, {""version_id"": 28629, ""name"": ""Cheapass boxed edition, sixth printing"", ""year"": 2000, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 342532, ""name"": ""Cheapass English 19.5th Anniversary edition"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 302015, ""name"": ""Cheapass English/German 19.5th Anniversary edition"", ""year"": 2016, ""publishers"": [""Cheapass Games""], ""languages"": [""English"", ""German""], ""score"": 3}, {""version_id"": 24741, ""name"": ""Cheapass envelope edition, first printing"", ""year"": 1996, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 261344, ""name"": ""Cheapass envelope edition, fourth printing"", ""year"": 1999, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 133486, ""name"": ""Cheapass print & play edition 2011"", ""year"": 2011, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 24760, ""name"": ""Cheapass special edition, eighth printing"", ""year"": 2002, ""publishers"": [""Cheapass Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4555.jpeg,,
ALICE IS MISSING SILENT FALLS EXPANSION,,,,,unmatched,,,,[],[],IMG_4566.jpeg,, ALICE IS MISSING SILENT FALLS EXPANSION,,,,,local,,,,[],[],IMG_4566.jpeg,,
ALICE IS MISSING A SILENT ROLE PLAYING GAME,,,,,unmatched,,,,[],[],IMG_4566.jpeg,, ALICE IS MISSING A SILENT ROLE PLAYING GAME,,,,,local,,,,[],[],IMG_4566.jpeg,,
ETHERFIELDS KITTENBURG EXPANSION,358880,Etherfields: Kittenburg Expansion,2022,boardgame,auto,603694,English edition,version_auto,"[{""bgg_id"": 358880, ""name"": ""Etherfields: Kittenburg Expansion"", ""year"": 2022, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 603694, ""name"": ""English edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 709658, ""name"": ""Polish edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""Polish""], ""score"": 2}, {""version_id"": 699892, ""name"": ""Spanish edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""Spanish""], ""score"": 2}]",IMG_4570.jpeg,, ETHERFIELDS KITTENBURG EXPANSION,358880,Etherfields: Kittenburg Expansion,2022,boardgame,auto,603694,English edition,version_auto,"[{""bgg_id"": 358880, ""name"": ""Etherfields: Kittenburg Expansion"", ""year"": 2022, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 603694, ""name"": ""English edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 709658, ""name"": ""Polish edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""Polish""], ""score"": 2}, {""version_id"": 699892, ""name"": ""Spanish edition"", ""year"": 2022, ""publishers"": [""Awaken Realms""], ""languages"": [""Spanish""], ""score"": 2}]",IMG_4570.jpeg,,
Parsely,258849,Parsely,2018,rpgitem,auto,,,version_unknown,"[{""bgg_id"": 258849, ""name"": ""Parsely"", ""year"": 2018, ""type"": ""rpgitem"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4573.jpeg,, Parsely,258849,Parsely,2018,rpgitem,auto,,,version_unknown,"[{""bgg_id"": 258849, ""name"": ""Parsely"", ""year"": 2018, ""type"": ""rpgitem"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4573.jpeg,,
"...and then, we held hands.",153999,"...and then, we held hands.",2015,boardgame,auto,280845,English edition,version_auto,"[{""bgg_id"": 153999, ""name"": ""...and then, we held hands."", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 280845, ""name"": ""English edition"", ""year"": 2015, ""publishers"": [""LudiCreations""], ""languages"": [""English""], ""score"": 3}]",image.jpg,, "...and then, we held hands.",153999,"...and then, we held hands.",2015,boardgame,auto,280845,English edition,version_auto,"[{""bgg_id"": 153999, ""name"": ""...and then, we held hands."", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 280845, ""name"": ""English edition"", ""year"": 2015, ""publishers"": [""LudiCreations""], ""languages"": [""English""], ""score"": 3}]",image.jpg,,
@@ -126,3 +126,9 @@ THE CAT GAME,231302,The Cat Game,2017,boardgame,auto,,,version_ambiguous,"[{""bg
BLINK,1197,Blink,1995,boardgame,auto,,,version_unknown,"[{""bgg_id"": 1197, ""name"": ""Blink"", ""year"": 1995, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 6143, ""rank"": 6149}, {""bgg_id"": 185341, ""name"": ""Blink!"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 111, ""rank"": null}, {""bgg_id"": 15852, ""name"": ""Blinki"", ""year"": 1910, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 90.9, ""owned"": 106, ""rank"": 30046}]",[],shelf-20260803-215650.jpg,, BLINK,1197,Blink,1995,boardgame,auto,,,version_unknown,"[{""bgg_id"": 1197, ""name"": ""Blink"", ""year"": 1995, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 6143, ""rank"": 6149}, {""bgg_id"": 185341, ""name"": ""Blink!"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 111, ""rank"": null}, {""bgg_id"": 15852, ""name"": ""Blinki"", ""year"": 1910, ""type"": ""boardgame"", ""exact"": false, ""fuzzy"": 90.9, ""owned"": 106, ""rank"": 30046}]",[],shelf-20260803-215650.jpg,,
The Office Trivia Game,352819,The Office Trivia Game,2019,boardgame,approved,,,version_error,"[{""bgg_id"": 352819, ""name"": ""The Office Trivia Game"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 159, ""rank"": null}, {""bgg_id"": 36895, ""name"": ""The Office Trivia Game"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 432, ""rank"": 30024}]",[],shelf-20260803-215703.jpg,, The Office Trivia Game,352819,The Office Trivia Game,2019,boardgame,approved,,,version_error,"[{""bgg_id"": 352819, ""name"": ""The Office Trivia Game"", ""year"": 2019, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 159, ""rank"": null}, {""bgg_id"": 36895, ""name"": ""The Office Trivia Game"", ""year"": 2008, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 432, ""rank"": 30024}]",[],shelf-20260803-215703.jpg,,
Patchwork,163412,Patchwork,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 163412, ""name"": ""Patchwork"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 124114, ""rank"": 148}, {""bgg_id"": 41585, ""name"": ""Patchwork"", ""year"": 2009, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 473, ""rank"": 14984}]",[],IMG_4501.jpeg,, Patchwork,163412,Patchwork,2014,boardgame,auto,,,version_unknown,"[{""bgg_id"": 163412, ""name"": ""Patchwork"", ""year"": 2014, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 124114, ""rank"": 148}, {""bgg_id"": 41585, ""name"": ""Patchwork"", ""year"": 2009, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": 473, ""rank"": 14984}]",[],IMG_4501.jpeg,,
MANTIS FALLS,291847,Mantis Falls,2021,boardgame,auto,,,version_unknown,"[{""bgg_id"": 291847, ""name"": ""Mantis Falls"", ""year"": 2021, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]",[],IMG_4505.jpeg,,
SMALL WORLD,40692,Small World,2009,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 40692, ""name"": ""Small World"", ""year"": 2009, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 488854, ""name"": ""English edition 2019"", ""year"": 2019, ""publishers"": [""Days of Wonder""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 23936, ""name"": ""English first edition"", ""year"": 2009, ""publishers"": [""Days of Wonder""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 174280, ""name"": ""English second edition"", ""year"": 2010, ""publishers"": [""Days of Wonder""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 294178, ""name"": ""English third edition"", ""year"": 2012, ""publishers"": [""Days of Wonder""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 478262, ""name"": ""Chinese edition"", ""year"": 2018, ""publishers"": [""Days of Wonder""], ""languages"": [""Chinese""], ""score"": 2}, {""version_id"": 24053, ""name"": ""Dutch edition"", ""year"": 2009, ""publishers"": [""Days of Wonder""], ""languages"": [""Dutch""], ""score"": 2}, {""version_id"": 73633, ""name"": ""French first edition"", ""year"": 2009, ""publishers"": [""Days of Wonder""], ""languages"": [""French""], ""score"": 2}, {""version_id"": 287468, ""name"": ""French second edition"", ""year"": 2010, ""publishers"": [""Days of Wonder""], ""languages"": [""French""], ""score"": 2}]",IMG_4513.jpeg,,
ARTISTRY,432858,Artistry,2025,boardgame,auto,,,version_ambiguous,"[{""bgg_id"": 432858, ""name"": ""Artistry"", ""year"": 2025, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 762382, ""name"": ""English Deluxe edition"", ""year"": 2025, ""publishers"": [""Dux Somnium Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 734890, ""name"": ""English edition"", ""year"": 2025, ""publishers"": [""Dux Somnium Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 762383, ""name"": ""English Jewelry Box edition"", ""year"": 2025, ""publishers"": [""Dux Somnium Games""], ""languages"": [""English""], ""score"": 3}, {""version_id"": 777369, ""name"": ""Russian edition"", ""year"": 2026, ""publishers"": [""Choo Choo Games"", ""Dux Somnium Games""], ""languages"": [""Russian""], ""score"": 2}]",IMG_4515.jpeg,,
MAGE WARS ACADEMY,172503,Mage Wars Academy,2015,boardgame,auto,265107,English edition,version_auto,"[{""bgg_id"": 172503, ""name"": ""Mage Wars Academy"", ""year"": 2015, ""type"": ""boardgame"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 265107, ""name"": ""English edition"", ""year"": 2015, ""publishers"": [""Arcane Wonders""], ""languages"": [""English""], ""score"": 3}]",IMG_4518.jpeg,,
BOTANY: TANTALIZING TREES,417060,Botany: Tantalizing Trees,2024,boardgameexpansion,auto,706506,English edition,version_auto,"[{""bgg_id"": 417060, ""name"": ""Botany: Tantalizing Trees"", ""year"": 2024, ""type"": ""boardgameexpansion"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 706506, ""name"": ""English edition"", ""year"": 2024, ""publishers"": [""Dux Somnium Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4571.jpeg,,
BOTANY: PERILOUS PERFUMES,417064,Botany: Perilous Perfumes,2024,boardgameexpansion,auto,706510,English edition,version_auto,"[{""bgg_id"": 417064, ""name"": ""Botany: Perilous Perfumes"", ""year"": 2024, ""type"": ""boardgameexpansion"", ""exact"": true, ""fuzzy"": 100.0, ""owned"": null, ""rank"": null}]","[{""version_id"": 706510, ""name"": ""English edition"", ""year"": 2024, ""publishers"": [""Dux Somnium Games""], ""languages"": [""English""], ""score"": 3}]",IMG_4571.jpeg,,
1 title_raw bgg_id bgg_name year type match_status version_id version_name version_status candidates_json version_candidates_json source_photos merged_into dedupe_veto
2 ROYALS 165986 Royals 2014 boardgame auto version_unknown [{"bgg_id": 154495, "name": "Royals", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 72, "rank": null}, {"bgg_id": 165986, "name": "Royals", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 4114, "rank": 1534}] [] IMG_4499.jpeg
3 CAT CRIMES unmatched local [] [] IMG_4499.jpeg;IMG_4505.jpeg;shelf-20260803-215723.jpg
4 COSMIC ENCOUNTER 40529 Cosmic Encounter 1991 boardgame approved version_unknown [{"bgg_id": 15, "name": "Cosmic Encounter", "year": 1977, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 4593, "rank": 1749}, {"bgg_id": 39463, "name": "Cosmic Encounter", "year": 2008, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 43809, "rank": 232}, {"bgg_id": 40529, "name": "Cosmic Encounter", "year": 1991, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1728, "rank": 3075}, {"bgg_id": 40531, "name": "Cosmic Encounter", "year": 2000, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 2609, "rank": 4543}] [] IMG_4499.jpeg
5 SHERIFF OF NOTTINGHAM 157969 Sheriff of Nottingham 2014 boardgame auto version_unknown [{"bgg_id": 157969, "name": "Sheriff of Nottingham", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4499.jpeg
6 5 MINUTE DUNGEON 207830 5-Minute Dungeon 2017 boardgame auto version_unknown [{"bgg_id": 207830, "name": "5-Minute Dungeon", "year": 2017, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4499.jpeg
31 Onitama 160477 Onitama 2014 boardgame auto version_unknown [{"bgg_id": 160477, "name": "Onitama", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4505.jpeg
32 Herbaceous 195314 Herbaceous 2017 boardgame auto version_unknown [{"bgg_id": 195314, "name": "Herbaceous", "year": 2017, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4507.jpeg
33 LABYRINTH 1219 Labyrinth 1986 boardgame auto version_ambiguous [{"bgg_id": 1219, "name": "Labyrinth", "year": 1986, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 35117, "rank": 2116}, {"bgg_id": 6546, "name": "Labyrinth", "year": 1940, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1078, "rank": 31020}, {"bgg_id": 23074, "name": "Labyrinth", "year": 2000, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 63, "rank": null}, {"bgg_id": 24422, "name": "Labyrinth", "year": 2001, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 121, "rank": null}, {"bgg_id": 65696, "name": "Labyrinth", "year": null, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 46, "rank": null}] [{"version_id": 488621, "name": "English edition 2017", "year": 2017, "publishers": ["Ravensburger AG"], "languages": ["English"], "score": 3}, {"version_id": 591493, "name": "English/German edition", "year": 2018, "publishers": ["Ravensburger AG"], "languages": ["English", "German"], "score": 3}, {"version_id": 361899, "name": "Multilingual 30th anniversary edition", "year": 2016, "publishers": ["Ravensburger AG"], "languages": ["English", "French", "German", "Italian"], "score": 3}, {"version_id": 338520, "name": "Multilingual edition", "year": 2017, "publishers": ["Ravensburger AG"], "languages": ["English", "French", "German", "Italian", "Portuguese", "Spanish"], "score": 3}, {"version_id": 440013, "name": "Multilingual edition", "year": 2019, "publishers": ["Ravensburger AG"], "languages": ["Dutch", "English", "French", "German", "Italian"], "score": 3}, {"version_id": 487001, "name": "Multilingual edition", "year": 2019, "publishers": ["Ravensburger AG"], "languages": ["Dutch", "English", "French", "German", "Italian", "Spanish"], "score": 3}, {"version_id": 571233, "name": "Multilingual edition", "year": 2021, "publishers": ["Ravensburger AG"], "languages": ["Dutch", "English", "French", "German", "Italian", "Portuguese", "Spanish"], "score": 3}, {"version_id": 630855, "name": "Multilingual edition", "year": 2022, "publishers": ["Ravensburger AG"], "languages": ["Dutch", "English", "French", "German", "Italian", "Portuguese", "Spanish"], "score": 3}] IMG_4507.jpeg;IMG_4508.jpeg
34 Super Mario Checkers Collector's Edition unmatched local [] [] IMG_4508.jpeg
35 Dragon Land 320202 Dragon Land 2020 boardgame auto version_unknown [{"bgg_id": 320202, "name": "Dragon Land", "year": 2020, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4508.jpeg;IMG_4542.jpeg
36 Bugs in the Kitchen 137909 Bugs in the Kitchen 2013 boardgame auto version_ambiguous [{"bgg_id": 137909, "name": "Bugs in the Kitchen", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 280025, "name": "Chinese/English edition", "year": 2014, "publishers": ["Ravensburger AG"], "languages": ["Chinese", "English"], "score": 3}, {"version_id": 751514, "name": "English edition 2024", "year": 2024, "publishers": ["Ravensburger AG"], "languages": ["English"], "score": 3}, {"version_id": 216474, "name": "English first edition", "year": 2013, "publishers": ["Ravensburger AG"], "languages": ["English"], "score": 3}, {"version_id": 435117, "name": "English second edition", "year": 2018, "publishers": ["Ravensburger AG"], "languages": ["English"], "score": 3}, {"version_id": 212273, "name": "Multilingual EN/FR/DE/IT/NE/SP", "year": 2013, "publishers": ["Ravensburger AG"], "languages": ["Dutch", "English", "French", "German", "Italian", "Spanish"], "score": 3}, {"version_id": 260936, "name": "French first edition", "year": 2013, "publishers": ["Ravensburger AG"], "languages": ["French"], "score": 2}, {"version_id": 726152, "name": "German edition 2024", "year": 2024, "publishers": ["Ravensburger AG"], "languages": ["German"], "score": 2}, {"version_id": 199002, "name": "German first edition", "year": 2013, "publishers": ["Ravensburger AG"], "languages": ["German"], "score": 2}] IMG_4508.jpeg;IMG_4545.jpeg
37 CATAN DICE GAME 27710 Catan Dice Game 2007 boardgame auto version_ambiguous [{"bgg_id": 27710, "name": "Catan Dice Game", "year": 2007, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 606657, "name": "English edition 2018", "year": 2018, "publishers": ["Catan Studio"], "languages": ["English"], "score": 3}, {"version_id": 565571, "name": "English edition 2020", "year": 2020, "publishers": ["Catan Studio"], "languages": ["English"], "score": 3}] IMG_4509.jpeg
39 Jenga 2452 Jenga 1983 boardgame auto version_unknown [{"bgg_id": 2452, "name": "Jenga", "year": 1983, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4509.jpeg
40 NO THANK YOU, EVIL! 208428 No Thank You, Evil! 2016 boardgame auto version_unknown [{"bgg_id": 208428, "name": "No Thank You, Evil!", "year": 2016, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4510.jpeg
41 CODE MASTER 42063 Code Master 1997 boardgame auto version_unknown [{"bgg_id": 42063, "name": "Code Master", "year": 1997, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4510.jpeg
42 GRAVITY MAZE unmatched local [] [] IMG_4510.jpeg
43 ROBOT TURTLES 147370 Robot Turtles 2013 boardgame auto version_ambiguous [{"bgg_id": 147370, "name": "Robot Turtles", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 231664, "name": "English second edition", "year": 2014, "publishers": ["ThinkFun"], "languages": ["English"], "score": 3}, {"version_id": 571231, "name": "Multilingual edition", "year": 2021, "publishers": ["ThinkFun"], "languages": ["Dutch", "English", "French", "German", "Italian", "Portuguese", "Spanish"], "score": 3}, {"version_id": 498079, "name": "Korean edition", "year": 2017, "publishers": ["Korea Boardgames", "ThinkFun"], "languages": ["Korean"], "score": 2}] IMG_4510.jpeg
44 GOOGLY EYES 57215 Googly Eyes 2008 boardgame auto version_unknown [{"bgg_id": 57215, "name": "Googly Eyes", "year": 2008, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4510.jpeg
45 THROW THROW AVOCADO 340420 Throw Throw Avocado 2021 boardgame auto version_unknown [{"bgg_id": 340420, "name": "Throw Throw Avocado", "year": 2021, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4511.jpeg
57 SPEECHLESS 196105 Speechless 2016 boardgame approved version_unknown [{"bgg_id": 14370, "name": "Speechless", "year": 1985, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 94, "rank": null}, {"bgg_id": 196105, "name": "Speechless", "year": 2016, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 493, "rank": 10370}] [] IMG_4516.jpeg
58 CATAN JUNIOR 125921 Catan: Junior 2012 boardgame auto version_ambiguous [{"bgg_id": 184842, "name": "Catan Junior", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 3961, "rank": 4440}, {"bgg_id": 5824, "name": "Catan Junior", "year": 2003, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1225, "rank": 30649}, {"bgg_id": 125921, "name": "Catan: Junior", "year": 2012, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 9917, "rank": 2616}] [{"version_id": 791740, "name": "English edition 2025", "year": 2025, "publishers": ["Catan GmbH", "Catan Studio"], "languages": ["English"], "score": 3}, {"version_id": 558911, "name": "English fourth edition", "year": 2018, "publishers": ["Catan GmbH", "Catan Studio"], "languages": ["English"], "score": 3}, {"version_id": 414618, "name": "English second edition", "year": 2016, "publishers": ["Catan GmbH", "Catan Studio"], "languages": ["English"], "score": 3}, {"version_id": 476263, "name": "English third edition", "year": 2016, "publishers": ["Catan Studio"], "languages": ["English"], "score": 3}] IMG_4516.jpeg
59 SKYLANDERS PORTAL MASTER 156994 Skylanders Portal Master 2013 boardgame auto version_unknown [{"bgg_id": 156994, "name": "Skylanders Portal Master", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4516.jpeg
60 LASER MAZE BEAM-BENDING LOGIC GAME unmatched local [] [] IMG_4516.jpeg
61 CAPTAIN MARVEL SECRET SKRULLS 269564 Captain Marvel: Secret Skrulls 2019 boardgame auto version_unknown [{"bgg_id": 269564, "name": "Captain Marvel: Secret Skrulls", "year": 2019, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4516.jpeg
62 Pie Face! 18755 Pie Face! 1964 boardgame approved version_unknown [{"bgg_id": 16562, "name": "Pie Face", "year": 1993, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 274, "rank": 29603}, {"bgg_id": 18755, "name": "Pie Face!", "year": 1964, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1404, "rank": 30933}] [] IMG_4517.jpeg
63 Walk the Plank! 35505 Walk the Plank! 2013 boardgame auto version_ambiguous [{"bgg_id": 21834, "name": "Walk the Plank", "year": 2002, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 18, "rank": null}, {"bgg_id": 29010, "name": "Walk the Plank", "year": 2007, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 179, "rank": 28080}, {"bgg_id": 152950, "name": "Walk the Plank", "year": null, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 5, "rank": null}, {"bgg_id": 35505, "name": "Walk the Plank!", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 3127, "rank": 3700}] [{"version_id": 781669, "name": "English MDG-4311 edition", "year": 2013, "publishers": ["Mayday Games"], "languages": ["English"], "score": 3}, {"version_id": 189968, "name": "English MYY4311 edition", "year": 2013, "publishers": ["Mayday Games"], "languages": ["English"], "score": 3}, {"version_id": 483159, "name": "Russian edition", "year": 2013, "publishers": ["Cosmodrome Games", "Mayday Games"], "languages": ["Russian"], "score": 2}] IMG_4517.jpeg;IMG_4549.jpeg
65 METEOR 166109 Meteor 2014 boardgame auto version_unknown [{"bgg_id": 25172, "name": "Meteor", "year": 1975, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 56, "rank": null}, {"bgg_id": 166109, "name": "Meteor", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1396, "rank": 10371}, {"bgg_id": 246740, "name": "Meteors", "year": 2018, "type": "boardgame", "exact": false, "fuzzy": 92.3, "owned": 71, "rank": 25541}] [] IMG_4518.jpeg
66 DOCTOR WHO THE card GAME 125675 Doctor Who: The Card Game 2012 boardgame auto version_unknown [{"bgg_id": 125675, "name": "Doctor Who: The Card Game", "year": 2012, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4518.jpeg
67 DUNGEONS & DRAGONS 140509 Dungeons & Dragons 1985 boardgame auto version_unknown [{"bgg_id": 140509, "name": "Dungeons & Dragons", "year": 1985, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4519.jpeg
68 DUNGEONS & DRAGONS FANTASY GAME RULES unmatched local [] [] IMG_4519.jpeg
69 Before I Kill You, Mister Bond... 164 Before I Kill You, Mister Bond 1996 boardgame auto 28465 Cheapass black and white "Better Edition" edition version_auto [{"bgg_id": 164, "name": "Before I Kill You, Mister Bond", "year": 1996, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 28465, "name": "Cheapass black and white \"Better Edition\" edition", "year": 2001, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 5}, {"version_id": 291316, "name": "English edition 2016", "year": 2016, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 520361, "name": "English second edition", "year": 1997, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 28459, "name": "First \"Renamed\" edition, First color edition", "year": 2004, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 180392, "name": "First black and white envelope edition", "year": 1996, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 28462, "name": "Third black and white edition", "year": 1998, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}] IMG_4519.jpeg;IMG_4554.jpeg
70 MYSTERIUM 181304 Mysterium 2015 boardgame auto version_ambiguous [{"bgg_id": 181304, "name": "Mysterium", "year": 2015, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 85034, "rank": 454}, {"bgg_id": 113997, "name": "Mysterium", "year": 2013, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 5494, "rank": 1143}] [{"version_id": 781306, "name": "English 2025 Refresh Edition", "year": 2025, "publishers": ["Libellud"], "languages": ["English"], "score": 3}, {"version_id": 280251, "name": "English edition 2015-1", "year": 2015, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 493543, "name": "English edition 2015-2", "year": 2015, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 475162, "name": "English edition 2016-1", "year": 2016, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 351093, "name": "English edition 2017-1", "year": 2017, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 467608, "name": "English edition 2017-2", "year": 2017, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 404443, "name": "English edition 2017-3", "year": 2017, "publishers": ["Esdevium", "Libellud"], "languages": ["English"], "score": 3}, {"version_id": 536289, "name": "English edition 2018-2", "year": 2018, "publishers": ["Libellud"], "languages": ["English"], "score": 3}] IMG_4520.jpeg
71 Völuspá 128554 Völuspá 2012 boardgame auto version_unknown [{"bgg_id": 128554, "name": "Völuspá", "year": 2012, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4520.jpeg
81 TEMPURRA 95386 Tempurra 2011 boardgame auto 290572 English edition version_auto [{"bgg_id": 95386, "name": "Tempurra", "year": 2011, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 290572, "name": "English edition", "year": 2016, "publishers": ["IELLO"], "languages": ["English"], "score": 3}, {"version_id": 287427, "name": "French edition", "year": 2016, "publishers": ["IELLO"], "languages": ["French"], "score": 2}] IMG_4524.jpeg
82 FLUXX 258 Fluxx 1997 boardgame auto version_ambiguous [{"bgg_id": 258, "name": "Fluxx", "year": 1997, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 33357, "rank": 12263}, {"bgg_id": 314413, "name": "Fluxx", "year": 2012, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 2152, "rank": 15720}] [{"version_id": 20841, "name": "Looney Labs edition v3.0", "year": 2002, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 20843, "name": "Looney Labs edition v3.1", "year": 2005, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 20844, "name": "Looney Labs edition v4.0", "year": 2008, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 263858, "name": "Looney Labs edition v5.0", "year": 2014, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 20838, "name": "Looney Labs English 1.0 edition", "year": 1996, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 20840, "name": "Looney Labs Version v2.1", "year": 2000, "publishers": ["Looney Labs"], "languages": ["English"], "score": 3}, {"version_id": 488647, "name": "Hobby World Russian 5.0 edition", "year": 2017, "publishers": ["Hobby World", "Looney Labs"], "languages": ["Russian"], "score": 2}, {"version_id": 290805, "name": "Polish edition", "year": 2015, "publishers": ["Black Monk", "Looney Labs"], "languages": ["Polish"], "score": 2}] IMG_4525.jpeg
83 Poetry for Neanderthals 312786 Poetry for Neanderthals 2020 boardgame auto version_ambiguous [{"bgg_id": 312786, "name": "Poetry for Neanderthals", "year": 2020, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 514050, "name": "English edition 2020", "year": 2020, "publishers": ["Exploding Kittens"], "languages": ["English"], "score": 3}, {"version_id": 655388, "name": "English edition 2022", "year": 2022, "publishers": ["Exploding Kittens"], "languages": ["English"], "score": 3}, {"version_id": 782169, "name": "English edition 2024", "year": 2024, "publishers": ["Exploding Kittens"], "languages": ["English"], "score": 3}, {"version_id": 746180, "name": "English Grab & Game edition 2023", "year": 2023, "publishers": ["Exploding Kittens"], "languages": ["English"], "score": 3}, {"version_id": 786184, "name": "English Grab & Game edition 2025", "year": 2025, "publishers": ["Exploding Kittens"], "languages": ["English"], "score": 3}, {"version_id": 735751, "name": "Dutch edition", "year": 2024, "publishers": ["Exploding Kittens"], "languages": ["Dutch"], "score": 2}, {"version_id": 783801, "name": "French edition", "year": 2023, "publishers": ["Exploding Kittens"], "languages": ["French"], "score": 2}, {"version_id": 632084, "name": "German edition", "year": 2022, "publishers": ["Exploding Kittens"], "languages": ["German"], "score": 2}] IMG_4526.jpeg
84 Elite Sportz Equipment Table Top Curling unmatched local [] [] IMG_4526.jpeg
85 Simon's Cat Card Game 188614 Simon's Cat Card Game 2016 boardgame auto version_ambiguous [{"bgg_id": 188614, "name": "Simon's Cat Card Game", "year": 2016, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 1429, "rank": 12119}, {"bgg_id": 330317, "name": "NOM: Simon's Cat Card Game", "year": 2021, "type": "boardgame", "exact": false, "fuzzy": 91.3, "owned": 70, "rank": null}] [{"version_id": 292307, "name": "English edition, first printing", "year": 2016, "publishers": ["Steve Jackson Games"], "languages": ["English"], "score": 3}, {"version_id": 779792, "name": "English edition, second printing", "year": 2016, "publishers": ["Steve Jackson Games"], "languages": ["English"], "score": 3}] IMG_4526.jpeg
86 The Red Dragon Inn: Smorgasbox 273240 The Red Dragon Inn Smorgasbox 2019 boardgame auto version_ambiguous [{"bgg_id": 273240, "name": "The Red Dragon Inn Smorgasbox", "year": 2019, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 446786, "name": "Collector's edition", "year": 2019, "publishers": ["SlugFest Games"], "languages": ["English"], "score": 3}, {"version_id": 446788, "name": "Eco-Collector's edition", "year": 2019, "publishers": ["SlugFest Games"], "languages": ["English"], "score": 3}, {"version_id": 446787, "name": "Eco-Kickstarter edition", "year": 2019, "publishers": ["SlugFest Games"], "languages": ["English"], "score": 3}, {"version_id": 446069, "name": "Kickstarter edition", "year": 2019, "publishers": ["SlugFest Games"], "languages": ["English"], "score": 3}] IMG_4527.jpeg
87 WIZ-WAR 589 Wiz-War 1983 boardgame auto version_ambiguous [{"bgg_id": 589, "name": "Wiz-War", "year": 1983, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 26114, "name": "Fifth edition", "year": 1991, "publishers": ["Chessex"], "languages": ["English"], "score": 3}, {"version_id": 29214, "name": "Fourth edition", "year": 1987, "publishers": ["Jolly Games"], "languages": ["English"], "score": 3}, {"version_id": 360420, "name": "Third edition", "year": 1986, "publishers": ["Jolly Games"], "languages": ["English"], "score": 3}] IMG_4528.jpeg
88 RISK THE LORD OF THE RINGS: The Middle-earth Conquest Game 4324 Risk: The Lord of the Rings 2002 boardgame auto version_ambiguous [{"bgg_id": 4324, "name": "Risk: The Lord of the Rings", "year": 2002, "type": "boardgame", "exact": true, "fuzzy": 57.1, "owned": null, "rank": null}] [{"version_id": 33264, "name": "English (UK) edition 2002", "year": 2002, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["English"], "score": 3}, {"version_id": 26859, "name": "English edition 2002", "year": 2002, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["English"], "score": 3}, {"version_id": 26863, "name": "English/French edition", "year": 2002, "publishers": ["Parker Brothers"], "languages": ["English", "French"], "score": 3}, {"version_id": 26865, "name": "Danish edition", "year": 2002, "publishers": ["Parker Brothers"], "languages": ["Danish"], "score": 2}, {"version_id": 26861, "name": "Dutch edition", "year": 2002, "publishers": ["Parker Brothers"], "languages": ["Dutch"], "score": 2}, {"version_id": 77144, "name": "French edition 2002", "year": 2002, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["French"], "score": 2}, {"version_id": 26862, "name": "German edition", "year": 2002, "publishers": ["Parker Brothers"], "languages": ["German"], "score": 2}, {"version_id": 75135, "name": "Norwegian edition", "year": 2002, "publishers": ["Parker Brothers"], "languages": ["Norwegian"], "score": 2}] IMG_4529.jpeg
89 Ouija unmatched local [] [] IMG_4529.jpeg
90 Munchkin Big Box 419687 Munchkin Big Box 2025 boardgame auto 711400 English edition version_auto [{"bgg_id": 419687, "name": "Munchkin Big Box", "year": 2025, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 711400, "name": "English edition", "year": 2025, "publishers": ["Steve Jackson Games"], "languages": ["English"], "score": 3}, {"version_id": 777457, "name": "Russian edition", "year": 2025, "publishers": ["Hobby World", "Steve Jackson Games"], "languages": ["Russian"], "score": 2}] IMG_4530.jpeg
91 FROSTHAVEN 295770 Frosthaven 2022 boardgame auto version_unknown [{"bgg_id": 295770, "name": "Frosthaven", "year": 2022, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4531.jpeg
92 GLOOMHAVEN 174430 Gloomhaven 2017 boardgame auto version_unknown [{"bgg_id": 174430, "name": "Gloomhaven", "year": 2017, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4532.jpeg
105 Greed Quest 9666 Greed Quest 2004 boardgame auto 215137 English edition version_auto [{"bgg_id": 9666, "name": "Greed Quest", "year": 2004, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 215137, "name": "English edition", "year": 2004, "publishers": ["Steve Jackson Games"], "languages": ["English"], "score": 3}] IMG_4537.jpeg
106 GLOOMHAVEN - Jaws of the Lion 291457 Gloomhaven: Jaws of the Lion 2020 boardgame auto version_unknown [{"bgg_id": 291457, "name": "Gloomhaven: Jaws of the Lion", "year": 2020, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4538.jpeg
107 SCRABBLE SLAM! 40508 Scrabble Slam! 2008 boardgame auto version_ambiguous [{"bgg_id": 40508, "name": "Scrabble Slam!", "year": 2008, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 39335, "name": "English edition", "year": 2009, "publishers": ["Hasbro"], "languages": ["English"], "score": 3}, {"version_id": 644326, "name": "English edition with Hasbro logo", "year": 2008, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["English"], "score": 3}, {"version_id": 25061, "name": "English edition with Parker Brothers logo", "year": 2008, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["English"], "score": 3}, {"version_id": 294332, "name": "English/French edition", "year": 2008, "publishers": ["Hasbro", "Parker Brothers"], "languages": ["English", "French"], "score": 3}, {"version_id": 480950, "name": "English/French edition", "year": 2014, "publishers": ["Hasbro"], "languages": ["English", "French"], "score": 3}, {"version_id": 116530, "name": "Dutch edition", "year": 2009, "publishers": ["Hasbro"], "languages": ["Dutch"], "score": 2}, {"version_id": 345823, "name": "French edition", "year": 2009, "publishers": ["Hasbro"], "languages": ["French"], "score": 2}, {"version_id": 111167, "name": "German edition", "year": 2010, "publishers": ["Hasbro"], "languages": ["German"], "score": 2}] IMG_4543.jpeg
108 CAT STAX unmatched local [] [] IMG_4544.jpeg
109 POCKET FARKEL 3181 Farkle 1930 boardgame approved version_ambiguous [] [{"version_id": 374844, "name": "Legendary Games black flat pack edition", "year": 1996, "publishers": ["Legendary Games, Inc."], "languages": ["English"], "score": 3}, {"version_id": 390425, "name": "Legendary Games blister pack editon", "year": 0, "publishers": ["Cardinal", "Legendary Games, Inc."], "languages": ["English"], "score": 3}, {"version_id": 87931, "name": "Legendary Games cannister edition", "year": 0, "publishers": ["Legendary Games, Inc.", "Reveal Entertainment, Inc."], "languages": ["English"], "score": 3}, {"version_id": 295385, "name": "Legendary Games dice rolling tray edition", "year": 2006, "publishers": ["Legendary Games, Inc."], "languages": ["English"], "score": 3}, {"version_id": 658688, "name": "Legendary Games English/Spanish \"Alaska: The Last Frontier\" edition", "year": 1999, "publishers": ["Legendary Games, Inc."], "languages": ["English", "Spanish"], "score": 3}, {"version_id": 374847, "name": "Legendary Games flat pack edition", "year": 0, "publishers": ["Legendary Games, Inc."], "languages": ["English"], "score": 3}, {"version_id": 247184, "name": "Legendary Games flat pack edition 1996", "year": 1996, "publishers": ["Legendary Games, Inc."], "languages": ["English"], "score": 3}, {"version_id": 374842, "name": "Legendary Games flat pack edition 1996", "year": 1996, "publishers": ["Legendary Games, Inc."], "languages": ["English"], "score": 3}] IMG_4545.jpeg
110 Go Fish Yourself 173057 Go Fish Yourself 2015 boardgame auto version_unknown [{"bgg_id": 173057, "name": "Go Fish Yourself", "year": 2015, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4546.jpeg
111 Hold your Breath! 150925 Hold Your Breath! 2014 boardgame auto version_unknown [{"bgg_id": 150925, "name": "Hold Your Breath!", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4547.jpeg
115 Dark Cults: The Horror Story Game 1784 Dark Cults 1983 boardgame auto version_ambiguous [{"bgg_id": 1784, "name": "Dark Cults", "year": 1983, "type": "boardgame", "exact": true, "fuzzy": 52.6, "owned": null, "rank": null}] [{"version_id": 110926, "name": "First edition", "year": 1983, "publishers": ["Dark House"], "languages": ["English"], "score": 3}, {"version_id": 110927, "name": "Second edition", "year": 1985, "publishers": ["Dark House"], "languages": ["English"], "score": 3}] IMG_4552.jpeg
116 Give Me The Brain 176 Give Me the Brain! 1996 boardgame auto 27673 Czech edition version_auto [{"bgg_id": 176, "name": "Give Me the Brain!", "year": 1996, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 27673, "name": "Czech edition", "year": 1997, "publishers": ["Cheapass Games"], "languages": ["Czech"], "score": 4}, {"version_id": 28103, "name": "Cheapass English first paper envelope edition 1996", "year": 1996, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 795469, "name": "Cheapass English paper envelope edition 1998", "year": 1998, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 24093, "name": "Cheapass English special edition 2002", "year": 2002, "publishers": ["Cheapass Games", "James Ernest Games"], "languages": ["English"], "score": 3}, {"version_id": 742802, "name": "German zipper bag edition", "year": 2000, "publishers": ["Cheapass Games", "Truant Spiele"], "languages": ["German"], "score": 2}] IMG_4553.jpeg
117 KILL DOCTOR LUCKY 257 Kill Doctor Lucky 1996 boardgame auto 520364 Cheapass envelope edition, second printing version_auto [{"bgg_id": 257, "name": "Kill Doctor Lucky", "year": 1996, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 520364, "name": "Cheapass envelope edition, second printing", "year": 1997, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 5}, {"version_id": 28629, "name": "Cheapass boxed edition, sixth printing", "year": 2000, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 342532, "name": "Cheapass English 19.5th Anniversary edition", "year": 2016, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 302015, "name": "Cheapass English/German 19.5th Anniversary edition", "year": 2016, "publishers": ["Cheapass Games"], "languages": ["English", "German"], "score": 3}, {"version_id": 24741, "name": "Cheapass envelope edition, first printing", "year": 1996, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 261344, "name": "Cheapass envelope edition, fourth printing", "year": 1999, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 133486, "name": "Cheapass print & play edition 2011", "year": 2011, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}, {"version_id": 24760, "name": "Cheapass special edition, eighth printing", "year": 2002, "publishers": ["Cheapass Games"], "languages": ["English"], "score": 3}] IMG_4555.jpeg
118 ALICE IS MISSING SILENT FALLS EXPANSION unmatched local [] [] IMG_4566.jpeg
119 ALICE IS MISSING A SILENT ROLE PLAYING GAME unmatched local [] [] IMG_4566.jpeg
120 ETHERFIELDS KITTENBURG EXPANSION 358880 Etherfields: Kittenburg Expansion 2022 boardgame auto 603694 English edition version_auto [{"bgg_id": 358880, "name": "Etherfields: Kittenburg Expansion", "year": 2022, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 603694, "name": "English edition", "year": 2022, "publishers": ["Awaken Realms"], "languages": ["English"], "score": 3}, {"version_id": 709658, "name": "Polish edition", "year": 2022, "publishers": ["Awaken Realms"], "languages": ["Polish"], "score": 2}, {"version_id": 699892, "name": "Spanish edition", "year": 2022, "publishers": ["Awaken Realms"], "languages": ["Spanish"], "score": 2}] IMG_4570.jpeg
121 Parsely 258849 Parsely 2018 rpgitem auto version_unknown [{"bgg_id": 258849, "name": "Parsely", "year": 2018, "type": "rpgitem", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4573.jpeg
122 ...and then, we held hands. 153999 ...and then, we held hands. 2015 boardgame auto 280845 English edition version_auto [{"bgg_id": 153999, "name": "...and then, we held hands.", "year": 2015, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 280845, "name": "English edition", "year": 2015, "publishers": ["LudiCreations"], "languages": ["English"], "score": 3}] image.jpg
126 BLINK 1197 Blink 1995 boardgame auto version_unknown [{"bgg_id": 1197, "name": "Blink", "year": 1995, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 6143, "rank": 6149}, {"bgg_id": 185341, "name": "Blink!", "year": 2015, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 111, "rank": null}, {"bgg_id": 15852, "name": "Blinki", "year": 1910, "type": "boardgame", "exact": false, "fuzzy": 90.9, "owned": 106, "rank": 30046}] [] shelf-20260803-215650.jpg
127 The Office Trivia Game 352819 The Office Trivia Game 2019 boardgame approved version_error [{"bgg_id": 352819, "name": "The Office Trivia Game", "year": 2019, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 159, "rank": null}, {"bgg_id": 36895, "name": "The Office Trivia Game", "year": 2008, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 432, "rank": 30024}] [] shelf-20260803-215703.jpg
128 Patchwork 163412 Patchwork 2014 boardgame auto version_unknown [{"bgg_id": 163412, "name": "Patchwork", "year": 2014, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 124114, "rank": 148}, {"bgg_id": 41585, "name": "Patchwork", "year": 2009, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": 473, "rank": 14984}] [] IMG_4501.jpeg
129 MANTIS FALLS 291847 Mantis Falls 2021 boardgame auto version_unknown [{"bgg_id": 291847, "name": "Mantis Falls", "year": 2021, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [] IMG_4505.jpeg
130 SMALL WORLD 40692 Small World 2009 boardgame auto version_ambiguous [{"bgg_id": 40692, "name": "Small World", "year": 2009, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 488854, "name": "English edition 2019", "year": 2019, "publishers": ["Days of Wonder"], "languages": ["English"], "score": 3}, {"version_id": 23936, "name": "English first edition", "year": 2009, "publishers": ["Days of Wonder"], "languages": ["English"], "score": 3}, {"version_id": 174280, "name": "English second edition", "year": 2010, "publishers": ["Days of Wonder"], "languages": ["English"], "score": 3}, {"version_id": 294178, "name": "English third edition", "year": 2012, "publishers": ["Days of Wonder"], "languages": ["English"], "score": 3}, {"version_id": 478262, "name": "Chinese edition", "year": 2018, "publishers": ["Days of Wonder"], "languages": ["Chinese"], "score": 2}, {"version_id": 24053, "name": "Dutch edition", "year": 2009, "publishers": ["Days of Wonder"], "languages": ["Dutch"], "score": 2}, {"version_id": 73633, "name": "French first edition", "year": 2009, "publishers": ["Days of Wonder"], "languages": ["French"], "score": 2}, {"version_id": 287468, "name": "French second edition", "year": 2010, "publishers": ["Days of Wonder"], "languages": ["French"], "score": 2}] IMG_4513.jpeg
131 ARTISTRY 432858 Artistry 2025 boardgame auto version_ambiguous [{"bgg_id": 432858, "name": "Artistry", "year": 2025, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 762382, "name": "English Deluxe edition", "year": 2025, "publishers": ["Dux Somnium Games"], "languages": ["English"], "score": 3}, {"version_id": 734890, "name": "English edition", "year": 2025, "publishers": ["Dux Somnium Games"], "languages": ["English"], "score": 3}, {"version_id": 762383, "name": "English Jewelry Box edition", "year": 2025, "publishers": ["Dux Somnium Games"], "languages": ["English"], "score": 3}, {"version_id": 777369, "name": "Russian edition", "year": 2026, "publishers": ["Choo Choo Games", "Dux Somnium Games"], "languages": ["Russian"], "score": 2}] IMG_4515.jpeg
132 MAGE WARS ACADEMY 172503 Mage Wars Academy 2015 boardgame auto 265107 English edition version_auto [{"bgg_id": 172503, "name": "Mage Wars Academy", "year": 2015, "type": "boardgame", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 265107, "name": "English edition", "year": 2015, "publishers": ["Arcane Wonders"], "languages": ["English"], "score": 3}] IMG_4518.jpeg
133 BOTANY: TANTALIZING TREES 417060 Botany: Tantalizing Trees 2024 boardgameexpansion auto 706506 English edition version_auto [{"bgg_id": 417060, "name": "Botany: Tantalizing Trees", "year": 2024, "type": "boardgameexpansion", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 706506, "name": "English edition", "year": 2024, "publishers": ["Dux Somnium Games"], "languages": ["English"], "score": 3}] IMG_4571.jpeg
134 BOTANY: PERILOUS PERFUMES 417064 Botany: Perilous Perfumes 2024 boardgameexpansion auto 706510 English edition version_auto [{"bgg_id": 417064, "name": "Botany: Perilous Perfumes", "year": 2024, "type": "boardgameexpansion", "exact": true, "fuzzy": 100.0, "owned": null, "rank": null}] [{"version_id": 706510, "name": "English edition", "year": 2024, "publishers": ["Dux Somnium Games"], "languages": ["English"], "score": 3}] IMG_4571.jpeg
+6
View File
@@ -74,6 +74,12 @@ class Config:
def games_path(self) -> Path: def games_path(self) -> Path:
return self.data_dir / "games.json" return self.data_dir / "games.json"
@property
def title_additions_path(self) -> Path:
# games the human added without a photo (expansions stored inside
# base boxes, unshelved games) — joined into every rebuild
return self.data_dir / "title_additions.json"
@property @property
def title_removals_path(self) -> Path: def title_removals_path(self) -> Path:
# titles the human removed from the catalog (not a game, misread) — # titles the human removed from the catalog (not a game, misread) —
+30 -1
View File
@@ -395,6 +395,24 @@ def _scoped_records(path: Path) -> list[dict]:
return records return records
def load_title_additions(path: Path) -> list[dict]:
"""Entries the human added without a photo — an expansion stored inside
a base box, a game away from the shelves. Shaped like raw reads and fed
into every rebuild BEFORE edits and dedupe, so corrections apply and a
later photo sighting of the same game merges instead of duplicating."""
return _load_store(path)
def record_title_addition(path: Path, entry: dict) -> None:
existing = load_title_additions(path)
norm = normalize_title(entry["title_raw"])
if any(normalize_title(e["title_raw"]) == norm for e in existing):
return # already on file; edit the existing line instead
atomic_write_text(
path, json.dumps([*existing, entry], indent=2, ensure_ascii=False) + "\n"
)
def load_title_splits(path: Path) -> list[dict]: def load_title_splits(path: Path) -> list[dict]:
"""The human's split-into-copies decisions — durable: they must survive """The human's split-into-copies decisions — durable: they must survive
extract rebuilds and resolve --force.""" extract rebuilds and resolve --force."""
@@ -490,6 +508,7 @@ def rebuild_artifacts(
splits: list[dict] | None = None, splits: list[dict] | None = None,
edits: list[dict] | None = None, edits: list[dict] | None = None,
removals: list[dict] | None = None, removals: list[dict] | None = None,
additions: list[dict] | None = None,
) -> tuple[list[dict], dict[str, list[dict]]]: ) -> tuple[list[dict], dict[str, list[dict]]]:
"""Regenerate titles.json and unidentified.json from the per-photo raw """Regenerate titles.json and unidentified.json from the per-photo raw
cache. A raw file is either an object with titles/unidentified or a bare cache. A raw file is either an object with titles/unidentified or a bare
@@ -511,6 +530,7 @@ def rebuild_artifacts(
photo = raw_file.name.removesuffix(".json") photo = raw_file.name.removesuffix(".json")
if data.get("unidentified"): if data.get("unidentified"):
unidentified[photo] = data["unidentified"] unidentified[photo] = data["unidentified"]
entries = entries + [dict(e) for e in additions or []]
entries = apply_title_removals( entries = apply_title_removals(
apply_title_edits(entries, edits or []), removals or [] apply_title_edits(entries, edits or []), removals or []
) )
@@ -534,6 +554,7 @@ def replay_titles(cfg: Config) -> None:
splits = load_title_splits(cfg.title_splits_path) splits = load_title_splits(cfg.title_splits_path)
edits = load_title_edits(cfg.title_edits_path) edits = load_title_edits(cfg.title_edits_path)
removals = load_title_removals(cfg.title_removals_path) removals = load_title_removals(cfg.title_removals_path)
additions = load_title_additions(cfg.title_additions_path)
raw_dir = cfg.extract_raw_dir raw_dir = cfg.extract_raw_dir
raw_photos = ( raw_photos = (
{f.name.removesuffix(".json") for f in raw_dir.glob("*.json")} {f.name.removesuffix(".json") for f in raw_dir.glob("*.json")}
@@ -549,7 +570,13 @@ def replay_titles(cfg: Config) -> None:
# them would silently truncate the committed catalog # them would silently truncate the committed catalog
if raw_photos and raw_photos >= known_photos: if raw_photos and raw_photos >= known_photos:
rebuild_artifacts( rebuild_artifacts(
raw_dir, cfg.titles_path, cfg.unidentified_path, splits, edits, removals raw_dir,
cfg.titles_path,
cfg.unidentified_path,
splits,
edits,
removals,
additions,
) )
return return
if not cfg.titles_path.exists(): if not cfg.titles_path.exists():
@@ -561,6 +588,7 @@ def replay_titles(cfg: Config) -> None:
exploded.extend({**entry, "source_photos": [p]} for p in photos) exploded.extend({**entry, "source_photos": [p]} for p in photos)
else: else:
exploded.append(dict(entry)) exploded.append(dict(entry))
exploded.extend(dict(e) for e in additions)
deduped = dedupe_entries( deduped = dedupe_entries(
apply_title_removals(apply_title_edits(exploded, edits), removals), splits apply_title_removals(apply_title_edits(exploded, edits), removals), splits
) )
@@ -655,6 +683,7 @@ def run_extract(
load_title_splits(cfg.title_splits_path), load_title_splits(cfg.title_splits_path),
load_title_edits(cfg.title_edits_path), load_title_edits(cfg.title_edits_path),
load_title_removals(cfg.title_removals_path), load_title_removals(cfg.title_removals_path),
load_title_additions(cfg.title_additions_path),
) )
typer.echo(f"Wrote {len(deduped)} unique title(s) to {cfg.titles_path}.") typer.echo(f"Wrote {len(deduped)} unique title(s) to {cfg.titles_path}.")
if failed: if failed:
+1
View File
@@ -39,6 +39,7 @@
<p><b>edit</b> — fix a misread title or add cues you already know (publisher, edition, year, language). A corrected misspelling automatically merges with a correctly-read sighting of the same game from another photo. If the line already had a BGG match, saving re-queues it so resolve searches again with the corrected data.</p> <p><b>edit</b> — fix a misread title or add cues you already know (publisher, edition, year, language). A corrected misspelling automatically merges with a correctly-read sighting of the same game from another photo. If the line already had a BGG match, saving re-queues it so resolve searches again with the corrected data.</p>
<p><b>split into copies</b> — one line, several physical boxes? Splitting makes each photo its own copy, and each copy picks its own edition afterward. Appears on any line whose title was seen in more than one photo. Splitting one game never affects a same-named different edition.</p> <p><b>split into copies</b> — one line, several physical boxes? Splitting makes each photo its own copy, and each copy picks its own edition afterward. Appears on any line whose title was seen in more than one photo. Splitting one game never affects a same-named different edition.</p>
<p><b>pick edition</b> — a matched game with no legible edition cues stays version-less by design (never guess) — but you know which printing your box is. This fetches the game's complete version list into a Review ballot; pick yours there.</p> <p><b>pick edition</b> — a matched game with no legible edition cues stays version-less by design (never guess) — but you know which printing your box is. This fetches the game's complete version list into a Review ballot; pick yours there.</p>
<p><b>add a game</b> (top of the Titles page) — a game no photo shows: an expansion stored inside a base box, a game away from the shelves. It joins the list like any read (BGG wants base game and expansion as separate collection entries, so boxes that hold both need this for the hidden half), and if a later photo shows it, the sighting merges instead of duplicating.</p>
<p><b>remove</b> (inside the edit panel) — for lines that shouldn't exist at all: a book read as a game, box art misread as a title. The line and its matches are discarded and stay gone. This is different from <i>reject</i> on the Review page, which keeps the line visible as "no BGG match" — right for real games BGG doesn't know.</p> <p><b>remove</b> (inside the edit panel) — for lines that shouldn't exist at all: a book read as a game, box art misread as a title. The line and its matches are discarded and stay gone. This is different from <i>reject</i> on the Review page, which keeps the line visible as "no BGG match" — right for real games BGG doesn't know.</p>
<p>Undo: each decision is one record in <code>data/title_edits.json</code>, <code>data/title_splits.json</code>, or <code>data/title_removals.json</code> — delete the record and the next rebuild restores the old state.</p> <p>Undo: each decision is one record in <code>data/title_edits.json</code>, <code>data/title_splits.json</code>, or <code>data/title_removals.json</code> — delete the record and the next rebuild restores the old state.</p>
</div> </div>
+46 -2
View File
@@ -4,7 +4,21 @@
<input type="search" id="catsearch" placeholder="filter titles…" aria-label="filter titles"> <input type="search" id="catsearch" placeholder="filter titles…" aria-label="filter titles">
<button id="shakyfilter" aria-pressed="false" hidden <button id="shakyfilter" aria-pressed="false" hidden
title="reads the model wasn't sure of — confirm or fix each one">shaky reads</button> title="reads the model wasn't sure of — confirm or fix each one">shaky reads</button>
<button id="addtitle" aria-expanded="false"
title="a game no photo shows — an expansion inside a base box, a game away from the shelves">add a game</button>
</div> </div>
<form id="addform" class="editform card" hidden>
<label>Title <input name="title" required></label>
<label>Publisher <input name="publisher"></label>
<label>Edition <input name="edition"></label>
<label>Year <input name="year" inputmode="numeric" size="6"></label>
<label>Language <input name="language"></label>
<span class="editactions">
<button type="submit" class="primary">add</button>
<button type="button" id="addcancel">cancel</button>
</span>
<span class="edithint">joins the titles list like a photo read — resolve matches it next run</span>
</form>
<div id="catbody"><p class="empty">Nothing extracted yet — start on the <a href="/photos">photos page</a>.</p></div> <div id="catbody"><p class="empty">Nothing extracted yet — start on the <a href="/photos">photos page</a>.</p></div>
<script> <script>
"use strict"; "use strict";
@@ -60,9 +74,11 @@ function render() {
title="the model wasn't sure of this read — press ✓ if it's right, or edit it">shaky read</span>` : ""}</td> title="the model wasn't sure of this read — press ✓ if it's right, or edit it">shaky read</span>` : ""}</td>
<td>${statusChip(c)}</td> <td>${statusChip(c)}</td>
<td class="meta">${metaLine(c)}</td> <td class="meta">${metaLine(c)}</td>
<td class="meta">${c.photos.map(p => <td class="meta">${c.photos.length
? c.photos.map(p =>
`<a href="/photos/view/${encodeURIComponent(p)}">${esc(p)}</a>` `<a href="/photos/view/${encodeURIComponent(p)}">${esc(p)}</a>`
).join(", ")}</td> ).join(", ")
: `<span class="chip merged">added by hand</span>`}</td>
<td class="actions">${c.can_split <td class="actions">${c.can_split
? `<button class="split" data-title="${esc(c.title_raw)}" ? `<button class="split" data-title="${esc(c.title_raw)}"
data-photos="${esc(c.photos.join(";"))}" data-photos="${esc(c.photos.join(";"))}"
@@ -176,6 +192,34 @@ document.getElementById("catbody").addEventListener("submit", async e => {
if (res) { EDITING = null; GATE.reset(); refresh().catch(() => {}); } if (res) { EDITING = null; GATE.reset(); refresh().catch(() => {}); }
}); });
const addForm = document.getElementById("addform");
const addBtn = document.getElementById("addtitle");
addBtn.addEventListener("click", () => {
addForm.hidden = !addForm.hidden;
addBtn.setAttribute("aria-expanded", String(!addForm.hidden));
if (!addForm.hidden) addForm.elements.title.focus();
});
document.getElementById("addcancel").addEventListener("click", () => {
addForm.hidden = true;
addBtn.setAttribute("aria-expanded", "false");
addForm.reset();
});
addForm.addEventListener("submit", async e => {
e.preventDefault();
const v = name => addForm.elements[name].value;
const res = await apiPost("/api/add-title", {
title: v("title"), publisher: v("publisher"), edition: v("edition"),
year: v("year"), language: v("language"),
});
if (res) {
addForm.reset();
addForm.hidden = true;
addBtn.setAttribute("aria-expanded", "false");
GATE.reset();
refresh().catch(() => {});
}
});
document.getElementById("catsearch").addEventListener("input", render); document.getElementById("catsearch").addEventListener("input", render);
document.getElementById("shakyfilter").addEventListener("click", () => { document.getElementById("shakyfilter").addEventListener("click", () => {
SHAKY_ONLY = !SHAKY_ONLY; SHAKY_ONLY = !SHAKY_ONLY;
+37
View File
@@ -44,6 +44,7 @@ from bggpipe.config import DEFAULT_REVIEW_PORT, Config
from bggpipe.extract import ( from bggpipe.extract import (
is_split, is_split,
load_title_splits, load_title_splits,
record_title_addition,
record_title_edit, record_title_edit,
record_title_removal, record_title_removal,
record_title_split, record_title_split,
@@ -174,6 +175,17 @@ class EditBody(BaseModel):
confirm: bool = False confirm: bool = False
class AddBody(BaseModel):
"""A game no photo shows: an expansion stored inside a base box, a
game away from the shelves. Cues optional, like any read."""
title: str
publisher: str = ""
edition: str = ""
year: str = ""
language: str = ""
class RemoveBody(BaseModel): class RemoveBody(BaseModel):
title_raw: str title_raw: str
source_photos: str = "" source_photos: str = ""
@@ -1059,6 +1071,31 @@ def create_app(
replay_titles(cfg) replay_titles(cfg)
return state() return state()
@app.post("/api/add-title")
def api_add_title(body: AddBody) -> dict:
with lock:
revision["n"] += 1
_refuse_if_rewriting()
freshen()
title = body.title.strip()
if not title:
raise HTTPException(400, "the title cannot be empty")
if body.year.strip() and not body.year.strip().isdigit():
raise HTTPException(400, "year must be a number")
entry = {
"title_raw": title,
"confidence": "high", # the human is holding the box
"publisher_hint": body.publisher.strip(),
"edition_hint": body.edition.strip(),
"year_hint": int(body.year) if body.year.strip() else None,
"language_hint": body.language.strip(),
"art_notes": "",
"source_photos": [],
}
record_title_addition(cfg.title_additions_path, entry)
replay_titles(cfg)
return state()
@app.post("/api/remove-title") @app.post("/api/remove-title")
def api_remove_title(body: RemoveBody) -> dict: def api_remove_title(body: RemoveBody) -> dict:
with lock: with lock:
+56
View File
@@ -260,6 +260,62 @@ def test_removals_filter_rebuilds_photo_scoped():
] ]
def test_hand_added_titles_survive_rebuilds_and_merge_with_sightings(tmp_path):
from bggpipe.extract import record_title_addition
cfg = Config(data_dir=tmp_path / "data", photos_dir=tmp_path / "photos")
raw = cfg.extract_raw_dir
raw.mkdir(parents=True)
(raw / "a.jpg.json").write_text(
json.dumps({"titles": [_entry("Catan", "a.jpg")], "unidentified": []})
)
record_title_addition(
cfg.title_additions_path,
{
"title_raw": "Wingspan: European Expansion",
"confidence": "high",
"publisher_hint": "Stonemaier Games",
"edition_hint": "",
"year_hint": None,
"language_hint": "",
"art_notes": "",
"source_photos": [],
},
)
replay_titles(cfg)
titles = {e["title_raw"] for e in json.loads(cfg.titles_path.read_text())}
assert titles == {"Catan", "Wingspan: European Expansion"}
# a later photo SEES the expansion: the sighting merges, no duplicate
(raw / "b.jpg.json").write_text(
json.dumps(
{
"titles": [
_entry(
"Wingspan: European Expansion",
"b.jpg",
publisher_hint="Stonemaier Games",
)
],
"unidentified": [],
}
)
)
replay_titles(cfg)
expansion = [
e
for e in json.loads(cfg.titles_path.read_text())
if e["title_raw"] == "Wingspan: European Expansion"
]
assert len(expansion) == 1
assert expansion[0]["source_photos"] == ["b.jpg"] # photo provenance won
# re-recording the same title is a no-op
record_title_addition(
cfg.title_additions_path,
{"title_raw": "WINGSPAN EUROPEAN EXPANSION", "source_photos": []},
)
assert len(json.loads(cfg.title_additions_path.read_text())) == 1
def test_stores_roundtrip_and_replay_from_raw(tmp_path): def test_stores_roundtrip_and_replay_from_raw(tmp_path):
cfg = Config(data_dir=tmp_path / "data", photos_dir=tmp_path / "photos") cfg = Config(data_dir=tmp_path / "data", photos_dir=tmp_path / "photos")
raw = cfg.extract_raw_dir raw = cfg.extract_raw_dir
+21
View File
@@ -1139,3 +1139,24 @@ def test_local_decision_via_web(tmp_path):
saved = {r["title_raw"]: r for r in read_matches(cfg.matches_path)} saved = {r["title_raw"]: r for r in read_matches(cfg.matches_path)}
assert saved["Mystery"]["match_status"] == "local" assert saved["Mystery"]["match_status"] == "local"
assert state["summary"]["local"] == 1 assert state["summary"]["local"] == 1
def test_add_title_by_hand(tmp_path):
web, cfg = make_client(tmp_path)
res = web.post(
"/api/add-title",
json={"title": "Wingspan: European Expansion", "publisher": "Stonemaier Games"},
)
assert res.status_code == 200
line = next(
c
for c in res.json()["catalog"]
if c["title_raw"] == "Wingspan: European Expansion"
)
assert line["status"] == "awaiting_resolve"
assert line["photos"] == [] # no photo — shown as added by hand
assert web.post("/api/add-title", json={"title": " "}).status_code == 400
assert (
web.post("/api/add-title", json={"title": "X", "year": "199Y"}).status_code
== 400
)