Compare commits
5 Commits
e7d58eaad5
...
8fd73acfa7
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8fd73acfa7 | ||
|
|
36d10ca4ae | ||
|
|
33577a9675 | ||
|
|
2f4ab5912f | ||
|
|
4f0adf12d8 |
@ -3,7 +3,62 @@
|
||||
*Status: **v1 complete & verified**. Standalone interiors library + test page. Every shop door opens
|
||||
into a unique, seeded, themed interior, generated on demand in ~4ms, byte-identical every revisit.*
|
||||
|
||||
Last updated: 2026-07-17 (round 25) · owner: PROCITY-C · reviewer: Fable
|
||||
Last updated: 2026-07-17 (round 26) · owner: PROCITY-C · reviewer: Fable
|
||||
|
||||
---
|
||||
|
||||
## Update 2026-07-17 (round 26, v5.0-beta EVERY CRATE DIFFERENT) — three contract lines + the price sticker
|
||||
|
||||
R26 §Lane C, wave 1 (ledgers #1, #4, #6). Contract lines published FIRST — G and E build to them.
|
||||
|
||||
### The brief said `tier`. It can't be `tier` — that name is taken twice (§7.2b)
|
||||
G's atlases already emit **`tier: 1`** = the **charter's ladder rung** (0 parody · 1 static-real · 2 live),
|
||||
and `kind` is already the stock type. **A mint atlas is also rung 1** — same mechanism (a statically baked
|
||||
per-shop atlas); only the data's *origin* differs. Real-vs-mint is an **orthogonal axis, not a rung**.
|
||||
Overloading `tier` would put two meanings in one name — the same species as the plan-id/godverse-id
|
||||
collision that just became a standing note, and as R25's positional ids. **Ruling: top-level
|
||||
`sourcing: "real" | "mint"`, REQUIRED; `tier` stays the numeric rung.** A mint index MUST NOT carry
|
||||
POS-snapshot fields (the separation IS the honesty); gates read `sourcing`, and an index without it FAILS.
|
||||
|
||||
### `condition` isn't in the index — the ledger assumed it was (§7.2c)
|
||||
Ledger #4 said the card gets "the fields the atlas index already carries (artist/title/price/**condition**)".
|
||||
It carries artist/title/price/price_band — **not condition**. G's *snapshot* has `condition` + `sleeve_cond`
|
||||
and drops them at emit, so `pickRealOffers` mapped `cond: ''` and the card rendered dangling separators
|
||||
around a hole. That *was* the "database row". Ruled: `condition`/`sleeve_cond` are **optional** index fields,
|
||||
emitted when the source has them; **no invented grades** on mint items — a plausible-but-fictional grade is
|
||||
exactly what `sourcing` exists to prevent.
|
||||
|
||||
### The atlas manifest (§7.2d) — existence declared, never probed
|
||||
`web/assets/stock_godverse/index.json` is the authority for which shops carry atlases; **no entry ⇒ no
|
||||
fetch ⇒ zero 404s**, so the zero-console-errors law holds with no attribution exception. Shape + both-ways
|
||||
consistency (atlas without manifest entry FAILS, and vice versa) in §7.2d. A tree with no godverse atlases
|
||||
and no manifest is a legitimate silent zero-shop state, not an error.
|
||||
|
||||
### The price sticker (ledger #4, code)
|
||||
The pull panel is now the shop's **price sticker**, not a data readout: manila card, slight rotation +
|
||||
shadow, typewriter caps, italic title, a rubber-stamped condition grade, and **the round yellow $ sticker
|
||||
the sleeve art already uses** (dig.js's own canvas language — the panel now echoes it instead of fighting
|
||||
it). Fields compose only when present: **a missing field never leaves a stray separator.**
|
||||
|
||||
**Verified — five card shapes, both star branches, fresh context:**
|
||||
| case | card |
|
||||
|---|---|
|
||||
| real grail | `$28` · Deep Dish · *Penetrate Deeper* · `VG+/VG` · **★ GRAIL** |
|
||||
| real standard, graded | `$15` · `VG+` · `STANDARD` |
|
||||
| real ungraded (today's index / mint) | `$15` · `COLLECTOR` — grade omitted cleanly |
|
||||
| parody | `$15` · THE VERANDAHS · *Tinny* · `NM` · `1973 PUNK` |
|
||||
| parody rare (seed 4) | `$16` · HILLS HOIST · *Servo at Midnight* · `VG` · `1973 POP` · **★ RARE** |
|
||||
|
||||
**The verification caught a defect in my own card:** a real *grail* rendered **"GRAIL ★ GRAIL"** — `s` carried
|
||||
the price_band *and* `rare` derived from that same band. (Parody is immune: its `s` is a genre.) Fixed at the
|
||||
mapping — grail becomes the ★ stamp and leaves `s` empty. And I did not leave the parody-rare branch on
|
||||
assumption: scanned seeds until a rare pull appeared (seed 4) and asserted it says RARE, not GRAIL. An
|
||||
unexercised branch is an unproven one.
|
||||
|
||||
**Budgets:** the card is DOM — zero draws, zero tris, no 3D change. Ceilings untouched.
|
||||
**→ G:** `sourcing` + `condition`/`sleeve_cond` + the manifest. **→ E:** assert `sourcing` (absent ⇒ FAIL),
|
||||
the mint/POS-field separation both ways, and manifest↔files both ways. **→ F:** consult the manifest before
|
||||
fetching — that's what retires the 404 attribution exception.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@ -3,6 +3,76 @@
|
||||
*Lane brief: `docs/LANES/LANE_G_GODVERSE.md`. This file follows your progress-file convention —
|
||||
newest round first. Fable-on-ultra writing.*
|
||||
|
||||
## Round 26 (2026-07-17) — the mint baker, the crate menu, the manifest (ledgers #2, #6)
|
||||
|
||||
**Landed (main, pathspec-atomic):**
|
||||
- **`godverse_stock.py mint`** — the G3 note promoted: `random.Random(shop_id)` over an
|
||||
**id-ordered** pool of real dealgod listings. The shop id IS the seed, so two shops can never
|
||||
draw the same crate. No TABLESAMPLE, no unseeded random — the two things that disqualified
|
||||
thriftgod's own `mint()` from tier 1 (G3 §2).
|
||||
- **14 mint atlases** — every keyed shop in both godverse towns whose type the loader can actually
|
||||
fetch (`record`/`book`/`toy`, C §7.1): 5 record + 6 book + 3 toy. The 13 keyed `opshop`/`video`
|
||||
shops get none and stay parody — correct, not a gap: C §7.1 gives them no fetchable type, so an
|
||||
atlas there could never load. **The manifest is what makes that silent** (no entry ⇒ no probe).
|
||||
- **`stock_godverse/index.json`** (§7.2d) — 15 shops, 1 real / 14 mint. Derived by reading the
|
||||
atlases back off disk, so it cannot drift from them: the manifest *is* the directory.
|
||||
- **Monster Robot re-emit**: `sourcing: "real"`, plus C §7.2c's `condition`/`sleeve_cond` (my
|
||||
snapshot always carried them; I was dropping them at emit — that was the hole in C's price card).
|
||||
|
||||
| gate | result |
|
||||
|---|---|
|
||||
| every crate different (F's #7 distinctness, title sets) | **15/15 distinct · max shared titles between any two: 0** |
|
||||
| ids unique across all packs · clash with generic · positional | 344 unique · **0** · **0** |
|
||||
| mint determinism (re-mint + re-bake) | **byte-identical** |
|
||||
| mint carrying a POS-claim field | **0** — absent, not false |
|
||||
| `sourcing` present on every atlas | 15/15 |
|
||||
| E's manifest↔files, both ways | clean |
|
||||
| selfcheck (no town cache touched) | **156212/156212 green** |
|
||||
| E's validator | **14 errors — all one cause, below** |
|
||||
|
||||
**THE ONE RED — mint ids vs E's `SLOT_ID_PREFIX` (E, one line).** E asserts `sku_` on *every* atlas
|
||||
under `stock_godverse/`. Mint items have no POS sku, so they carry `mint_<dealgod listing id>` and
|
||||
all 14 fail. **C §7.2a's rule is satisfied** — "derive from the source's own stable key, never
|
||||
position, unique across ALL packs" (measured above: unique, 0 clash, 0 positional). What §7.2a
|
||||
specifies as `sku_<POS sku>` it specifies **"for a real-stock (godverse) pack"**; mint is C §7.2b's
|
||||
*other* thing, written a round later, and the id form was never revisited. E implemented R25
|
||||
literally, which was right at the time.
|
||||
|
||||
**Why I did not just emit `sku_` and go green:** a POS sku and a dealgod listing id are **different
|
||||
namespaces**, and this round's own standing note says no code or gate may compare a bare number
|
||||
across two id spaces — it was written because `enterShop(31)` entered the wrong shop. Putting both
|
||||
under `sku_` recreates that bug *inside the economy*: **tier-2's sold-means-gone looks up POS
|
||||
skus**, and `sku_6031122` (a dealgod id) is indistinguishable by shape from a real sku that a POS
|
||||
must resolve. C §7.2a's own reason #2 is precisely about ids being looked up across snapshots.
|
||||
Green by prefix would have been green by lie. **Fix: make the prefix sourcing-aware (`sku_` when
|
||||
`sourcing == "real"`, `mint_` when `"mint"`)** — E's error text and constant are the only places.
|
||||
|
||||
**Three more findings, none blocking:**
|
||||
1. **[E] `FITS_1024 = 64` cannot be satisfied.** The warn asks for ≤1024² when a pack has ≤64
|
||||
items, but 1024²/256² = **16 cells** — 64 items would need **4** atlases and C caps a shop at 2.
|
||||
So any 33–64 item pack *must* be 2048², and the warn would be demanding the impossible. It never
|
||||
fires on my packs (16 → 1×1024², 120 → 2×2048²), so it's latent. The honest bound is 32.
|
||||
2. **[C/F] The ≤32 MB ceiling doesn't hold at beta scale, because the LRU it assumes hasn't
|
||||
shipped.** F's boot preload loads **every** keyed shop's pack (`index.html:207-215`), and C §7.6
|
||||
scoped "≤32 MB peak" to "LRU = 1 shop's atlas set resident", with the LRU explicitly deferred to
|
||||
v5.0-beta. Measured now: **46.1 MB per town** resident at boot (both towns). Bounded and modest
|
||||
— and it's *why* mint crates are 16 items on one 1024² sheet rather than something plusher.
|
||||
3. **[C] "The crate menu, baked statically" can only be metadata.** One base = one index = ≤2
|
||||
atlases = 128 items; Monster Robot has **357 crates / 24,646 bake-able records**. So the shop's
|
||||
real crate list ships as `crate_menu` (id/name/label/count — real labels, real counts), and
|
||||
per-crate *stock* would need a per-crate base (`…/3962749/crate_550/`) = a C contract line.
|
||||
Filed, not invented. Rotation's real home is tier 2 (G3 §4 `/crates`).
|
||||
|
||||
**Mint honesty, stated plainly.** A mint crate is *plausible*, never a claim: `sourcing: "mint"`,
|
||||
an attribution that says "not this shop's stock", and **no POS-claim field at all** — the
|
||||
separation is structural, not editorial. Quality caveat: for books/toys `artist` is dealgod's
|
||||
`brand`, which is sometimes the maker (Microsoft, Sony, Brandon Stosuy) and sometimes the listing
|
||||
store (Lifeline Queensland) — real data, imperfectly typed. **Records are clean**: I require a
|
||||
Discogs artist and drop otherwise, because `brand` on a record listing is the *seller* — the first
|
||||
bake had "Red Eye Records" and "Statecircle" as artists, which is a shop, not an act. Titles use
|
||||
`discogs_master_title` where dealgod has it, so Egg Records' crate reads "MC5 — High Time · $50",
|
||||
not "Pre Loved Record - Elton John - Breaking Hearts". Both are real; one is a record sticker.
|
||||
|
||||
## Round 25 (2026-07-17) — the sku re-emit (ledger #3), index-only
|
||||
|
||||
**Landed (main — G is a full lane now, pathspec-atomic; F's six staged files and E's in-flight
|
||||
|
||||
31
README.md
@ -97,6 +97,37 @@ Fitzroy mecca, the thin tail (labelled honestly: the floor is shops-per-street-m
|
||||
below it), the synthetic control, and the `?classic=1` covenant made visible. Charter:
|
||||
[`docs/V4_REAL_MAP.md`](docs/V4_REAL_MAP.md) · data + licences (ODbL):
|
||||
[`web/assets/towns/SOURCES.md`](web/assets/towns/SOURCES.md).
|
||||
|
||||
## v5.0-alpha — THE FIRST REAL CRATE: the shops get real too
|
||||
|
||||
**v4 made the towns real. v5 makes the shops real** — and the first one is standing.
|
||||
|
||||
Boot `?plansrc=osm&town=redhill_godverse&stock=real`, walk down **Musgrave Road** into **Monster Robot
|
||||
Party** (147 Musgrave Rd, Red Hill, Brisbane — a real record shop), and riffle its crate. The records in
|
||||
it are **that shop's real stock**: 120 real records off its real point-of-sale, real covers, real titles,
|
||||
real prices. Buy one and the wallet debits what the sticker says. It's gone for the session and back next
|
||||
boot — because until the live tier lands, the crate is a **file**, not a shop's ledger.
|
||||
|
||||
**Stock is a data tier now**, exactly like assets — each rung fully playable, each degrading softly to
|
||||
the one below, so the game never depends on a server to be a game:
|
||||
|
||||
| tier | what | deterministic? |
|
||||
|---|---|---|
|
||||
| **0 · parody** | seeded canvas sleeves (v1) — any boot, always works | yes — the QA baseline |
|
||||
| **1 · static real** | per-shop atlases baked from the shop's own POS | yes — atlases are files |
|
||||
| 2 · live GODVERSE | live stock, sold-means-gone *(design ratified, not built)* | no — by design |
|
||||
|
||||
**The offline law:** the server enriches, never gates. `?noassets=1` still fetches **zero bytes** and plays
|
||||
silent-and-fine; a shop whose atlas is missing falls soft to parody rather than borrowing someone else's
|
||||
crate; and **`?classic=1` still boots the exact v2 town, byte-identical forever** (`0x3fa36874`). The
|
||||
world stays seeded and golden-gated — only the *stock inside it* is data.
|
||||
|
||||
**Provenance:** item photos are each shop's own product shots, 🟢 in-house — **flagged before any public
|
||||
or commercial release**, and every atlas carries that flag where the QA gate must print it. Real titles
|
||||
and artists are an in-house amendment to the no-real-trademarks law, on the same footing. **Nothing an
|
||||
in-game purchase does touches real inventory** — v5.0 ships sell-sandboxed by ruling; a real reservation
|
||||
tier is chartered for v5.x, not assumed. Charter: [`docs/V5_REAL_SHOP.md`](docs/V5_REAL_SHOP.md) ·
|
||||
economy design: [`docs/G3_ECONOMY_DESIGN.md`](docs/G3_ECONOMY_DESIGN.md).
|
||||
| `?seed=N` | `20261990` | town seed |
|
||||
|
||||
**Release tour:** [`docs/shots/release_v3_1/contact.html`](docs/shots/release_v3_1/) — the money shots on
|
||||
|
||||
@ -1,5 +1,87 @@
|
||||
# LANE B — NOTES (measured)
|
||||
|
||||
## Round 26 (Fable's ROUND26 → Lane B) — #5 the polish pick: **the stocked shopfront reads from the footpath**
|
||||
|
||||
**Shipped. A stocked godverse shop now tells you it's diggable before you reach the door — a crate of
|
||||
spines under the sign, and a warm-lamp-over-crates room behind the glass. Cost: +0 draws / +0 tris.**
|
||||
|
||||
Pick rationale: of the three offered (signage/window treatment · awning ripple · tram-stop tri diet), this
|
||||
one is the beta's own theme — EVERY CRATE DIFFERENT is worth nothing if the street doesn't say which shops
|
||||
*have* a crate. (The tri diet is likely moot after E's R22 decimation; the ripple is a vibe with no beta
|
||||
dependency. Both stay on the list.)
|
||||
|
||||
### The authority question — the manifest, not the key
|
||||
The mark keys off **`stock_godverse/index.json` membership**, deliberately *not* off `godverseShopId`.
|
||||
Keyed only means "this shop has a stock identity"; the manifest means "a crate is actually here". Marking
|
||||
keyed-but-unstocked shops would advertise a crate the shop hasn't got — **the street would lie, the one
|
||||
thing this epoch keeps refusing to do**. This is ledger #6's manifest (G emits, F consumes) doing a second
|
||||
job for free: it is already the truth of who carries an atlas.
|
||||
|
||||
The mark **does not leak tier**. "You can dig here" is equally true of `real` and `mint`; provenance
|
||||
belongs on C's price card and in E's gates, not shouted from the awning.
|
||||
|
||||
### What it is (both halves free)
|
||||
| cue | how | cost |
|
||||
|---|---|---|
|
||||
| **crate mark** — a row of seeded spines under the shop name | painted into the chunk's **existing** sign-atlas cell (`drawSign` → `drawCrateMark`), 7-colour palette, `shop.seed` LCG so a shop's crate is stable | **0 draws / 0 tris** (same 2048² canvas, same 1 draw/chunk) |
|
||||
| **window cue** — warm lamp over crates, not a generic 90s wall | rides the **existing** per-shop `aTint` attribute (`roomTint` → `STOCKED_ROOM_TINT`), `?winmap` parallax path | **0 draws / 0 tris** (no new attribute, no new material) |
|
||||
|
||||
### Measured (newtown_godverse, 18 keyed = 18 stocked under a temp manifest, since deleted)
|
||||
**True A/B at one pose — manifest 200 vs manifest 404:**
|
||||
| | control (404) | treatment (200) |
|
||||
|---|---|---|
|
||||
| spine-marked sign cells | **0** | **3** (18,768 exact-palette px) |
|
||||
| stocked window tint verts | **0** | **36** |
|
||||
| `street_noon` | 65 draws / 115,502 tris | **65 draws / 115,502 tris** |
|
||||
|
||||
**+0 draws / +0 tris** — with the treatment *proven on*, not merely assumed. Stocked shopfront (Goulds
|
||||
Books, footpath pose): **85 draws / 144,730 tris**, inside street law (≤300 / ≤200k).
|
||||
|
||||
Consistency check against ground truth: 3 stocked shops in the live chunk set (Dorrigo Hotel, Old Wares,
|
||||
Goulds Books) → **3 marked cells, 9 stocked window quads** (3 shops × ~2.6 windows). Cues agree.
|
||||
|
||||
### Covenants (re-proved — the prefetch is new code on the boot path)
|
||||
| boot | keyed | `stock_godverse` fetches | errors |
|
||||
|---|---|---|---|
|
||||
| `?classic=1` (zero-fetch covenant) | 0 | **0** | 0 |
|
||||
| default synthetic (`?dbg=1`) | 0 | **0** | 0 |
|
||||
| `newtown_godverse`, manifest 404 | 18 | 1 (404, eaten) | **0** |
|
||||
|
||||
Tested with the manifest **present on disk** — the harshest form: a stray fetch would have returned 200
|
||||
and been unmissable.
|
||||
|
||||
### Three traps this round (all self-caught, all recorded)
|
||||
1. **The module-load fetch would have broken the classic covenant.** First draft fetched the manifest at
|
||||
module load → fires on *every* boot → a console 404 on the synthetic default and a **fetch delta to
|
||||
`?classic=1`**, whose covenant is *zero fetch*. Restructured to lazy `ensureStockIndex()` +
|
||||
plan-driven `prefetchStockIndex(plan)`, called from `createChunkManager` — **keyed plans only**.
|
||||
2. **The lazy trigger alone raced the first chunk build.** With only the per-chunk trigger, boot showed
|
||||
`manifestRequested: []` (spawn chunks had no keyed shops); the manifest only fetched after walking to a
|
||||
keyed shop — meaning **the first stocked shop you approach would build unmarked**. Fixed by prefetching
|
||||
at chunk-manager construction, before any chunk builds. Verified: manifest now fetched at boot.
|
||||
3. **A vacuous "zero cost" and a junk detector.** First measurement read +0/+0 — because the manifest was
|
||||
never fetched (stale `chunks.js` + a cached 404), so *nothing had been applied*. Numbers identical
|
||||
because the feature was off. Then the pixel detector reported **60 "marked" cells with no treatment at
|
||||
all** — it was counting ordinary busy sign cells. Replaced with an exact-palette signature (the spine
|
||||
colours no registry sign uses): control **0**, treatment **3**. *Vacuous-gate law applies to a lane's
|
||||
own verification, not just to gates — a green that can't go red proves nothing.*
|
||||
Corollary recorded: **`force-cache` serves a deleted file** (`transferSize: 0, status: 200` while disk
|
||||
404s) — an A/B against disk state is not an A/B. Poison the cache (`cache:'reload'`) or you are testing
|
||||
your own memory.
|
||||
|
||||
### Handshake for G / F / C (manifest shape)
|
||||
`buildings.js` reads the manifest **fail-soft and shape-tolerantly**: a root array, or `.shops` /
|
||||
`.entries` / `.atlases`, of bare ids or of objects carrying `godverseShopId` | `id`. Any other shape, a
|
||||
404, or `?noassets` ⇒ **no treatment, no error, no console noise**. G's real emission (ledger #6) needs no
|
||||
coordination with B — if it lands in any of those shapes, the footpath lights up on its own. **B consumes
|
||||
`index.json` read-only and emits nothing into `stock_godverse/**`** — the temp manifest used to prove this
|
||||
round was deleted; the directory is G's.
|
||||
|
||||
Files: `web/js/world/buildings.js` (the two cues + the lazy fail-soft reader), `web/js/world/chunks.js`
|
||||
(one line: the keyed-plan prefetch).
|
||||
|
||||
---
|
||||
|
||||
## Round 22 (Fable's ROUND22 → Lane B) — #1a the `venue_night` tri diagnosis → **OWNER: LANE E**
|
||||
|
||||
**Verdict: the driver is the four GLB street-furniture props. 149,161 of 163,015 tris = 91.5% of the
|
||||
|
||||
@ -15,6 +15,10 @@
|
||||
> **v5.0-alpha amendment (2026-07-17, R25 ledger #3):** **§7.2a added — slot ids must be sku-derived,**
|
||||
> unique across packs and stable across re-emits (F's id-collision finding, made structural). Index-only;
|
||||
> no atlas bytes, no goldens. §0–§6 unchanged.
|
||||
> **v5.0-beta amendment (2026-07-17, R26 ledger #1/#4/#6):** **§7.2b `sourcing` (real|mint — NOT `tier`,
|
||||
> which is already the ladder rung), §7.2c `condition` for the price card, §7.2d the atlas manifest**
|
||||
> (existence declared, never probed — kills the 404 attribution exception). All index/manifest-only:
|
||||
> no atlas bytes, no town caches, no goldens. §0–§6 unchanged.
|
||||
|
||||
*The district ships **three** venue archetypes behind `?gigs=1` — `pub`, `band_room`, `rsl`. Lane A
|
||||
converts a chosen shop to a venue kind in place (`shop.type = kind`); C keys the interior recipe off
|
||||
@ -286,6 +290,57 @@ must not emit into it.**
|
||||
**→ Lane E:** assert the form — `id` present, **unique within the pack**, and `sku_`-prefixed for
|
||||
real-stock packs.
|
||||
|
||||
### 7.2b `sourcing` — real vs mint, and why it is NOT `tier` (v5.0-beta, R26 ledger #1)
|
||||
The beta needs every keyed crate marked as **actual POS inventory** or **seeded plausibility**, so no gate,
|
||||
doc or human mistakes one for the other. The brief called that field `tier`. **It can't be `tier`: that name
|
||||
is already taken, twice over.**
|
||||
- G's atlases already emit **`tier: 1`** = the **charter's ladder rung** (0 parody · 1 static-real · 2 live
|
||||
GODVERSE). A mint atlas **is also rung 1** — same mechanism (a statically baked per-shop atlas); only the
|
||||
*data's origin* differs. And `kind` is already the stock type (`record`).
|
||||
- So real-vs-mint is an **orthogonal axis**, not a rung. Overloading `tier` would put two meanings in one
|
||||
name — the same species as the plan-id/godverse-id collision now standing-noted, and as the positional
|
||||
ids in §7.2a. One name, one meaning.
|
||||
|
||||
**Rule: top-level `sourcing: "real" | "mint"`, REQUIRED on every real-stock atlas index.** `tier` stays the
|
||||
numeric ladder rung, unchanged.
|
||||
- **`"real"`** — baked from that shop's own POS snapshot (Monster Robot Party). The index carries its
|
||||
`snapshot` provenance (§7.3).
|
||||
- **`"mint"`** — a deterministic seeded sample (`random.Random(shop_id)`) standing in for a keyed shop with
|
||||
no POS. Plausible, never claimed as that shop's stock. **A mint index MUST NOT carry POS-snapshot fields**
|
||||
(the separation IS the honesty — E asserts both directions).
|
||||
- **Gates read `sourcing`** (vacuous-gate law: an index with no `sourcing` FAILS). A mint crate can never
|
||||
report as real. The dig card's treatment is C's call — see §7.2c.
|
||||
|
||||
### 7.2c Price-card fields — `condition` (v5.0-beta, R26 ledger #4)
|
||||
The dig card is a **record-shop price sticker**, and a sticker's fields are artist / title / **condition** /
|
||||
price. `condition` is **not in the index today** — G's snapshot carries `condition` + `sleeve_cond` per item
|
||||
and drops them at emit, so `pickRealOffers` currently maps `cond: ''` and the card renders dangling
|
||||
separators around a hole. That's the "database row" the ledger wants gone.
|
||||
**Rule: `condition` (and optionally `sleeve_cond`) are OPTIONAL index item fields; emit them when the source
|
||||
has them.** Index-only; the loader never reads them (§7.3). C's card renders whatever is present and omits
|
||||
what isn't — a missing field must never leave a stray separator. **Mint items:** emit `condition` only if the
|
||||
sampled listing genuinely carries one; a plausible-but-invented grade is exactly the kind of fiction
|
||||
`sourcing` exists to prevent.
|
||||
|
||||
### 7.2d The atlas manifest — existence is declared, never probed (v5.0-beta, R26 ledger #6)
|
||||
Fail-soft-by-404 collides with the zero-console-errors law: the runtime probes per-shop atlases blind and
|
||||
eats the 404 noise (8 in F's R24 gate run), tolerated by attribution — a workaround, not a design.
|
||||
**Rule: `web/assets/stock_godverse/index.json` is the authority for which shops carry atlases. No entry ⇒ no
|
||||
fetch.** Shape:
|
||||
```json
|
||||
{ "version": 1,
|
||||
"shops": [ { "godverseShopId": 3962749, "types": ["record"], "sourcing": "real" },
|
||||
{ "godverseShopId": 31, "types": ["record"], "sourcing": "mint" } ] }
|
||||
```
|
||||
- **`godverseShopId` is a number in the GODVERSE namespace** — never compare it to a plan id (standing note).
|
||||
- **→ F:** consult the manifest before fetching; no entry ⇒ no probe ⇒ **zero 404s, no attribution
|
||||
exception**. A shop in the manifest whose fetch still fails keeps the existing fail-soft → parody.
|
||||
- **→ G:** emit it alongside the atlases (mint entries included).
|
||||
- **→ E:** manifest↔files consistency **both ways** — an atlas on disk absent from the manifest FAILS, and a
|
||||
manifest entry with no atlas FAILS.
|
||||
- **Manifest absent entirely** (a tree with no godverse atlases): that is a legitimate zero-shop state — the
|
||||
wire probes nothing and stays silent. Not an error.
|
||||
|
||||
### 7.3 Fields the runtime IGNORES — and the provenance ruling (the drift dies here)
|
||||
`version`, `atlas_px`, `cell`/`cell_w`/`cell_h`, `count`, `kind`, `tier`, `shop`, `crate`,
|
||||
`provenance` — **`stockpack.js` reads none of them.** So the authority for their shape is not C's
|
||||
|
||||
@ -1,5 +1,63 @@
|
||||
# LANE E — cross-lane notes
|
||||
|
||||
## Round 26 — the sourcing arm + the atlas manifest ⟨v5.0-beta⟩
|
||||
|
||||
**1. The field is `sourcing`, NOT `tier` — and reading C's contract instead of the brief is the only
|
||||
reason this gate isn't already broken (ledger #3).** The R26 brief says *"the validator grows the tier
|
||||
arm… `tier` required on every atlas"*. **C ruled it cannot be `tier`** (§7.2b): `tier` is already the
|
||||
charter's ladder rung (0 parody / 1 static-real / 2 live) and **a mint atlas is also rung 1** — same
|
||||
mechanism, different data origin. Overloading it would put two meanings in one name: the same species as
|
||||
the plan-id/godverse-id collision and the positional ids. Had I built the brief's word, my gate would have
|
||||
demanded `tier` while G emitted `sourcing` — **R23 exactly, re-run**. The contract's author is the
|
||||
authority for the contract's shape. **Built to C §7.2b.**
|
||||
|
||||
**2. The honesty separation, asserted both directions.** `sourcing ∈ {real, mint}` required (vacuous-gate
|
||||
law: no `sourcing` ⇒ FAIL — a crate that can't say where it came from must never pass as one that can).
|
||||
Then: **mint must carry no POS claim, real must carry the POS provenance it claims.**
|
||||
|
||||
**→ C: §7.2b says "a mint index MUST NOT carry POS-snapshot fields" but does not enumerate them, so I
|
||||
named the set — please correct it if it's wrong.** I assert on `crate`, `provenance.source.pos_db`,
|
||||
`provenance.source.pos_dump` — the fields that claim *a specific shop's actual inventory*. I deliberately
|
||||
**excluded `snapshot`**: §7.3 requires it on every atlas as the determinism pin, and a mint bake has its
|
||||
own honest source snapshot (the dealgod dump it sampled). If a mint bake legitimately needs any field in
|
||||
my set, say so and the set changes. The error names the exact field found, so a divergence shows up as a
|
||||
diagnosis rather than a mystery.
|
||||
|
||||
**3. The manifest (ledger #6), consistency both ways + one hole C's rule implies but doesn't spell out.**
|
||||
`stock_godverse/index.json` per §7.2d. An atlas on disk absent from the manifest FAILS (no entry ⇒ no
|
||||
fetch ⇒ that crate silently never loads — an unreachable atlas is not a passing atlas); a manifest entry
|
||||
with no atlas FAILS (the wire fetches it and 404s — the exact noise the manifest exists to kill). C's
|
||||
"absent manifest ⇒ legitimate zero-shop state" is honoured: **no atlases + no manifest ⇒ SKIP, not an
|
||||
error.** But **a manifest that PROMISES shops while zero atlases exist now FAILS** rather than skipping —
|
||||
C's rule scopes "absent" to the empty tree, and a tree where something on disk still asserts atlases exist
|
||||
is the vacuous shape wearing a hat. Flagging it since it's my reading, not C's words.
|
||||
|
||||
**4. Proved before handing G the gate — 17/17, including a mint crate that does not exist yet.** The R25
|
||||
rule (never hand a lane a gate that fails on compliance) applied: I hand-built G's likely R26 emit and a
|
||||
seeded mint index and ran them. Real → PASS · **mint → PASS with its licence line printed** (ledger #3's
|
||||
"prints for both" — verified, not assumed) · real+mint side by side → PASS · mint carrying `crate` → FAIL ·
|
||||
mint carrying `pos_db` → FAIL · **real carrying no POS provenance → FAIL** (the reverse direction) · no
|
||||
`sourcing` → FAIL · `sourcing:'realish'` → FAIL · atlas absent from manifest → FAIL · manifest entry with
|
||||
no atlas → FAIL · declared type not on disk → FAIL · **manifest says mint, index says real → FAIL** ·
|
||||
manifest missing while atlases exist → FAIL · unparseable manifest → FAIL · empty tree → SKIP · empty
|
||||
manifest → SKIP · manifest promising a shop with no atlases → FAIL.
|
||||
|
||||
**5. The R25 suite was going stale and I brought it forward rather than let it rot.** Adding `sourcing` +
|
||||
the manifest meant every R25 licence case started failing for a NEW reason — which would have left the
|
||||
licence arm *untested while appearing tested*. Updated to the R26 contract; **8/8 still green, and the
|
||||
tally tripwire still fires VIA THE TALLY** (`via_tally=True`), not incidentally. Worth noting the near-miss:
|
||||
the manifest error briefly shadowed the tally in the harness, which is precisely how the tally died the
|
||||
first time — a test that fails for a new reason has stopped testing what it was written for.
|
||||
|
||||
**6. The gate is RED until G lands, by design (2 errors: no `sourcing`, no manifest).** Same as R25: G is
|
||||
in my wave, parallel. It goes green when G's re-emit + manifest land, with no change from me.
|
||||
|
||||
**→ F: one thing before the alpha tag.** There is still **no `v5.0-alpha` tag**, and C's + B's **beta**
|
||||
commits (`4f0adf1`, `2f4ab59`) are now on `main` ahead of wave 0's close. Tagging `HEAD` would produce a
|
||||
`v5.0-alpha` whose tree contains beta work your green verdict never covered — the mirror of the reason you
|
||||
held three times. The alpha's tree is **`e7d58ea`** (wave 0 COMPLETE, my `9b1df5c` beneath it). Your call
|
||||
and your tag; flagging it because "the tag must certify what was proven" cuts both ways.
|
||||
|
||||
## Round 25 — the licence line, made unmissable + the sku form ⟨v5.0-alpha⟩
|
||||
|
||||
**1. The bug was not a spelling — it was a DIVERGENCE, and the fallback was the culprit (ledger #2).**
|
||||
|
||||
182
pipeline/_godverse/mint_1082_record.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 1082,
|
||||
"slug": "downtown-music",
|
||||
"name": "Downtown Music",
|
||||
"suburb": "Annandale",
|
||||
"state": "NSW",
|
||||
"type": "record"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 111320,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 1082,
|
||||
"sample": "random.Random(1082) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "1382327",
|
||||
"artist": "Endgames",
|
||||
"title": "Building Beauty",
|
||||
"price": 24.98,
|
||||
"condition": "",
|
||||
"cover": "/img/47/4772a5f355a19a55591e453dee9b0834a52725998c70e4d0a5eacd225f7b2bd0.webp",
|
||||
"cover_sha256": "feafdd57a7e3dfccb0770c900c76040227585f1c0a4870062038ca545e9be661"
|
||||
},
|
||||
{
|
||||
"mint_id": "1497796",
|
||||
"artist": "Morel",
|
||||
"title": "True (The Faggot Is You)",
|
||||
"price": 26.31,
|
||||
"condition": "",
|
||||
"cover": "/img/c9/c97112d937e59150d1a0ce91b3fa372435497171582cce02af3e3cca2bee5238.webp",
|
||||
"cover_sha256": "914cce71b1d924636211742608488594e4f82c10319ae5f8dc2e60b73b795de4"
|
||||
},
|
||||
{
|
||||
"mint_id": "1499132",
|
||||
"artist": "Philippe B.",
|
||||
"title": "You & Me",
|
||||
"price": 8.39,
|
||||
"condition": "",
|
||||
"cover": "/img/16/160703b585db320c7e0b8716a11ef5b5e7ca8634ecfe24346bc86fcc55708bd4.webp",
|
||||
"cover_sha256": "cc39629c26f30d17d78818446265ead4077dade829f6b51ae5e330a9f31f7adb"
|
||||
},
|
||||
{
|
||||
"mint_id": "1510082",
|
||||
"artist": "Richie Santana",
|
||||
"title": "Music Is Freedom Remixes",
|
||||
"price": 14.19,
|
||||
"condition": "",
|
||||
"cover": "/img/af/af67b20e319e2cf56f5f769cb4f9dd85cfc4faf584cf24533d37bb5811d45b31.webp",
|
||||
"cover_sha256": "8933f30c07837e9e85e44529cdce16a87f2f003148c655ea26fa3b91bd4a7e6e"
|
||||
},
|
||||
{
|
||||
"mint_id": "1572084",
|
||||
"artist": "Paco Pe\u00f1a",
|
||||
"title": "Paco Pe\u00f1a - Flamenco Paco Pe\u00f1a (LP, Album)",
|
||||
"price": 12.0,
|
||||
"condition": "",
|
||||
"cover": "/img/20/20bd2289bb916c33166abf6ac5dbc7086623deb2344162fecfc18d627d1ce046.webp",
|
||||
"cover_sha256": "c7e601f656fc45df9d08568456fe569e9fbc5a021bdf6be2470521ca4a255bee"
|
||||
},
|
||||
{
|
||||
"mint_id": "1952439",
|
||||
"artist": "The Party Boys (3)",
|
||||
"title": "The Party Boys",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/e9/e9a567a74e5bd7c7e2f2a738ceb2a6309d539e4fc72d8eaee31172b3af64b18c.webp",
|
||||
"cover_sha256": "778d9abcc593191ebf762d56674e4e07a43e4feaab2ebfee8d98463a515f0a2e"
|
||||
},
|
||||
{
|
||||
"mint_id": "2634580",
|
||||
"artist": "Shakti",
|
||||
"title": "Shakti With John McLaughlin = \u30a6\u30a3\u30ba\u30fb\u30b8\u30e7\u30f3\u30fb\u30de\u30af\u30e9\u30d5\u30ea\u30f3",
|
||||
"price": 25.0,
|
||||
"condition": "",
|
||||
"cover": "/img/42/4227c662d18c316e97f117a06019c90ebadb739ad12dba18d84c910202cabdf2.webp",
|
||||
"cover_sha256": "81832d786d9304b96ac2b9d73a1ceace040a093ab88bc3ff263ae5c1efcbfde2"
|
||||
},
|
||||
{
|
||||
"mint_id": "2636233",
|
||||
"artist": "Donny Hathaway",
|
||||
"title": "Donny Hathaway \u2013 Live (Rhino Reserve)",
|
||||
"price": 58.0,
|
||||
"condition": "",
|
||||
"cover": "/img/fa/facf73e811910719eb69185cc5e9940db3382d2333007b8c5c2c6712aef4d2e1.webp",
|
||||
"cover_sha256": "e31336a557c5a617ceb7d3e1e730f5c2d09fbe98923ff2613d7937c9057b98db"
|
||||
},
|
||||
{
|
||||
"mint_id": "3375700",
|
||||
"artist": "Jockstrap (4)",
|
||||
"title": "I Love You Jennifer B",
|
||||
"price": 60.0,
|
||||
"condition": "",
|
||||
"cover": "/img/42/4227cc385e5ce7e9d5d33820d371cd71aaa6337b30f2a6ca931af4429759dfb1.webp",
|
||||
"cover_sha256": "a6cba26bf12368060173a4c2a3bbc36b18e3229f67e564f951b02d84bac626af"
|
||||
},
|
||||
{
|
||||
"mint_id": "3377454",
|
||||
"artist": "Caligula's Horse",
|
||||
"title": "Charcoal Grace",
|
||||
"price": 89.95,
|
||||
"condition": "",
|
||||
"cover": "/img/54/541cadcf55827a2ddfbdf4db1f2ff1799afca97b994bba2c40eb7d9b3d336be5.webp",
|
||||
"cover_sha256": "1a2aee971cd9aa71e01a17660f47c05973768b9e721971f2b723344d37ffa988"
|
||||
},
|
||||
{
|
||||
"mint_id": "5040486",
|
||||
"artist": "Anri (2)",
|
||||
"title": "Fun Time",
|
||||
"price": 149.99,
|
||||
"condition": "",
|
||||
"cover": "/img/2c/2c00b474f40d7a7bcffdf196481a0e4bd2f9755ebf1114ce6dce6635145a11ee.webp",
|
||||
"cover_sha256": "4d350abc6a550c01c10961b9cab8c3458beffc59d4e078ca53ea2d9f8b0fe5ce"
|
||||
},
|
||||
{
|
||||
"mint_id": "5077859",
|
||||
"artist": "Slowdive",
|
||||
"title": "Everything Is Alive",
|
||||
"price": 25.02,
|
||||
"condition": "",
|
||||
"cover": "/img/65/65bded74f26235bfcbc86271b92573dccfc002a7bdca0275bf05cf65f5a4f0eb.webp",
|
||||
"cover_sha256": "878fe80b37b3bf7dbfed48b5f0cf0c840329f8c16d5fd721509b9bac2f208c62"
|
||||
},
|
||||
{
|
||||
"mint_id": "6319846",
|
||||
"artist": "The Black Heart Procession",
|
||||
"title": "A 3 Song Recording",
|
||||
"price": 9.95,
|
||||
"condition": "",
|
||||
"cover": "/img/53/53aa62830a653d4fb17a258cb8bbf2f531be14c704624f5afa37db84f44f3b5a.webp",
|
||||
"cover_sha256": "cfa5fa1cc6f23edf1316f729ce13558ca43224c877b4188d481a3ed7be7fd11e"
|
||||
},
|
||||
{
|
||||
"mint_id": "6364791",
|
||||
"artist": "Scarcity Of Tanks",
|
||||
"title": "Garford Mute",
|
||||
"price": 32.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a5/a5b2bd14f0fd1b7bc512397227b741262c8f19e211bb559dab4fd072fe2fc0db.webp",
|
||||
"cover_sha256": "75ad7ecf89872c298813af620168eb6a9707569e2347a475e424b8e6b0e227e8"
|
||||
},
|
||||
{
|
||||
"mint_id": "6511306",
|
||||
"artist": "Nick Cave & The Bad Seeds",
|
||||
"title": "The Wanted Man",
|
||||
"price": 75.0,
|
||||
"condition": "",
|
||||
"cover": "/img/93/9352a37eea7f0373b2d3c701139ca311fe9533ec2000ce90a9f93f0cb0669a6b.webp",
|
||||
"cover_sha256": "a71272001ff80a758db1ee1c4a3bed07cf9d2cc5b7420e488d3172238703f6c5"
|
||||
},
|
||||
{
|
||||
"mint_id": "7329708",
|
||||
"artist": "Christina Aguilera",
|
||||
"title": "Dirrty",
|
||||
"price": 7.95,
|
||||
"condition": "",
|
||||
"cover": "/img/26/268ddb42bfa3129478bcef3987496c051271f6224f641eba194f0fcfd5965d4e.webp",
|
||||
"cover_sha256": "eefb5a8add676e5706251682a56ea0211473e393231694891d2a5c1d868312fd"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_1173_record.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 1173,
|
||||
"slug": "haze-guitars",
|
||||
"name": "Haze Guitars",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "record"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 111320,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 1173,
|
||||
"sample": "random.Random(1173) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "735827",
|
||||
"artist": "Kasey Chambers",
|
||||
"title": "Behind The Barricades",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/65/65b1262d99d1bb2ed4172d6ac39e3e167dd72344aa49d0c4cad13ba9ec4a6d6a.webp",
|
||||
"cover_sha256": "a164e8bf549e22ad22b3ec96666b01df2dfa5934ba95bec66f2f613abc25ac5b"
|
||||
},
|
||||
{
|
||||
"mint_id": "1506171",
|
||||
"artist": "Jas Van Houten",
|
||||
"title": "Just FX",
|
||||
"price": 32.89,
|
||||
"condition": "",
|
||||
"cover": "/img/4b/4b09ec070b98e6ae4ff0452657d33079a3bdf07c030aa26d9c3792156074f260.webp",
|
||||
"cover_sha256": "27ba9584c172d0246c8d495891b2ca66442422cf4f26f7b0d7d070718b9fe2b9"
|
||||
},
|
||||
{
|
||||
"mint_id": "1572335",
|
||||
"artist": "Fats Waller",
|
||||
"title": "Fats Waller In London (No. 2)",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/2f/2f08a60d894c5547174574d63e6b2aab629b79e52d86e0e486ef626c338b3056.webp",
|
||||
"cover_sha256": "818332572cc31c972377c9297518dd322465b4b47fccec49728dd51b74428ebe"
|
||||
},
|
||||
{
|
||||
"mint_id": "1927813",
|
||||
"artist": "Bob Dylan",
|
||||
"title": "More Blood, More Tracks (The Bootleg Series Vol.14)",
|
||||
"price": 75.0,
|
||||
"condition": "",
|
||||
"cover": "/img/54/544d0940afb2385430cd8aec55a38adc06048f816ea51f865e267df43e99d5c2.webp",
|
||||
"cover_sha256": "3cc261cf33ed39f77bb9590895564b82c81e04b48685b001636f4bd740fec6d2"
|
||||
},
|
||||
{
|
||||
"mint_id": "1955485",
|
||||
"artist": "Wet Wet Wet",
|
||||
"title": "Stay With Me Heartache / I Feel Fine",
|
||||
"price": 14.37,
|
||||
"condition": "",
|
||||
"cover": "/img/a7/a7dffa77844c73d3fc2d89e015b074bff2e66ad428fd4b1d541e9601f92bc6e5.webp",
|
||||
"cover_sha256": "32020a17131dc88b84f2b9e228c024691b8419ba57df45785689e4c079775eaa"
|
||||
},
|
||||
{
|
||||
"mint_id": "2949568",
|
||||
"artist": "Blondie",
|
||||
"title": "Blondie Singles Collection: 1977-1982",
|
||||
"price": 28.99,
|
||||
"condition": "",
|
||||
"cover": "/img/82/82e9d54ac910da725bf4b8a28cb8602fd73cc0927a8c6e3cc812cd4da86596b3.webp",
|
||||
"cover_sha256": "35ab1a3cf316e6f497dac81816933d3ed7b5446031ab6896f17e012660c48777"
|
||||
},
|
||||
{
|
||||
"mint_id": "3150782",
|
||||
"artist": "Dolly Parton",
|
||||
"title": "Jolene",
|
||||
"price": 58.0,
|
||||
"condition": "",
|
||||
"cover": "/img/89/8968102d3c4ee079dcf9c753ab550d3240a72bde667aeedb02644dd0a2cd4576.webp",
|
||||
"cover_sha256": "35921bad6411f36d90358c13688fb0a0d901eba68742d0dfa83917c9827aad2a"
|
||||
},
|
||||
{
|
||||
"mint_id": "3150992",
|
||||
"artist": "Dope Lemon",
|
||||
"title": "Rose Pink Cadillac",
|
||||
"price": 65.0,
|
||||
"condition": "",
|
||||
"cover": "/img/fb/fb778db3fa7ec5720e4473993e47b83862dd98f891a12e832b4e39bc3e271474.webp",
|
||||
"cover_sha256": "12c194a1b71db80febe07f397967e9e99bf802ec3094c4f86d9ab99ba3fe8432"
|
||||
},
|
||||
{
|
||||
"mint_id": "3261454",
|
||||
"artist": "Kool Keith",
|
||||
"title": "Feature Magnetic",
|
||||
"price": 59.95,
|
||||
"condition": "",
|
||||
"cover": "/img/3d/3d71961dc2b5aee8a4f77ac5d88db20735016357b6a5c051e455d07d0c0839ae.webp",
|
||||
"cover_sha256": "6c9c10fe359f15ea6c72085d05640386819178669b0901fc964413ee48c8d3c2"
|
||||
},
|
||||
{
|
||||
"mint_id": "3274472",
|
||||
"artist": "Ayers Rock",
|
||||
"title": "Ayers Rock \u2013 Big Red Rock Vinyl LP (Used)",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/76/76b162d513850d7de87a5b031bd5cd057e0b468a3abe2b9cfba1c1241578522a.webp",
|
||||
"cover_sha256": "5502bdd78b5d67219cbb6b0ad2279d72f2634ac77d44825c7f3c283caa31a267"
|
||||
},
|
||||
{
|
||||
"mint_id": "4521621",
|
||||
"artist": "Models (2)",
|
||||
"title": "The Pleasure Of Your Company...",
|
||||
"price": 37.0,
|
||||
"condition": "",
|
||||
"cover": "/img/21/21e9f3a53308d80bce64e689368a827c1dbaf0d6c5babaca764cceb56254aae9.webp",
|
||||
"cover_sha256": "86c506f39c55b4b9d4d3cb2c7f18f873422ca0de30fdba26610dec3b395202db"
|
||||
},
|
||||
{
|
||||
"mint_id": "6008610",
|
||||
"artist": "Kate Garner",
|
||||
"title": "Love Me Like A Rocket",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/6a/6a06b3371b9e17e5b4cf7a32b16fa93db7eb300d1159bdfd881b8f40dc129f85.webp",
|
||||
"cover_sha256": "1c44694e3726eaaa57cfd959dbd4e9df7dbec4dcdb172ddf91c4d5a6c1b4e7fb"
|
||||
},
|
||||
{
|
||||
"mint_id": "6308495",
|
||||
"artist": "Audrey Landers",
|
||||
"title": "Little River",
|
||||
"price": 12.95,
|
||||
"condition": "",
|
||||
"cover": "/img/9e/9ef7a355803c186525af7c693f2a9375f8201f6e094e8fc9dbe51ce4b3493b46.webp",
|
||||
"cover_sha256": "5e00e3f20ffe5f2615c67da5f01bfa612558b4a4215aa5478b13b51f7fb6e764"
|
||||
},
|
||||
{
|
||||
"mint_id": "6355830",
|
||||
"artist": "Butthole Surfers",
|
||||
"title": "Butthole Surfers + PCPPEP",
|
||||
"price": 44.99,
|
||||
"condition": "",
|
||||
"cover": "/img/2d/2d891b36e463e3d6d9420a875f567732006f81379b17a237d4f8f2d2356dec7d.webp",
|
||||
"cover_sha256": "220a7206e605c19069dd58854e0f33eac421b7b705d9b477962d4cd327c17d3d"
|
||||
},
|
||||
{
|
||||
"mint_id": "6356386",
|
||||
"artist": "R.E.M.",
|
||||
"title": "Around The Sun",
|
||||
"price": 86.99,
|
||||
"condition": "",
|
||||
"cover": "/img/d8/d83ec45451fb3a347e724de28c528b9e3b5aabbe2366beedd77ac3cafa25b61d.webp",
|
||||
"cover_sha256": "eeb79612ebf0b21ff8bd63911c5ad4c644ca44426d9dfa98d6ada9b0880bd464"
|
||||
},
|
||||
{
|
||||
"mint_id": "6841696",
|
||||
"artist": "Alice Cooper",
|
||||
"title": "Alice Cooper's Greatest Hits",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/7f/7ff80457af5f40979283e4a48bf55a438239ba1516eb8fdb2f792ead5ac87e8f.webp",
|
||||
"cover_sha256": "06b6aa52e82b14bf55a1a376e803b7bdf073b26fb77f88d719e151910ff70515"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_158_record.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 158,
|
||||
"slug": "egg-records",
|
||||
"name": "Egg Records",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "record"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 111320,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 158,
|
||||
"sample": "random.Random(158) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "1490673",
|
||||
"artist": "MC5",
|
||||
"title": "High Time",
|
||||
"price": 50.0,
|
||||
"condition": "",
|
||||
"cover": "/img/cf/cfd515b69f7b5ab131d8cf02edec80edad9785c8c348be37e4b8d019e5537f86.webp",
|
||||
"cover_sha256": "3a6ef116f5452aaa1676f61ce8b15a8fe3ca6627c46afb5e9b5321471b6f9e9b"
|
||||
},
|
||||
{
|
||||
"mint_id": "1504320",
|
||||
"artist": "Amerie",
|
||||
"title": "1 Thing",
|
||||
"price": 2.69,
|
||||
"condition": "",
|
||||
"cover": "/img/db/db2efb4148d5558c2009cfb8bf88751177f7413ef50b0f0e181cbc8c6ef10b9b.webp",
|
||||
"cover_sha256": "f908e95620f34d5a2cc26255ab724e187ad2045d329d86cd709afbdc96f1103f"
|
||||
},
|
||||
{
|
||||
"mint_id": "1505490",
|
||||
"artist": "Inaya Day",
|
||||
"title": "Nasty Girl",
|
||||
"price": 13.11,
|
||||
"condition": "",
|
||||
"cover": "/img/3e/3e37c22539732f8eadfde27ef14ff7338352746309590ee1a8feef4ea0787e7d.webp",
|
||||
"cover_sha256": "a24abd8eeb0425422532443ba5cccdecc10112bfe72dc4655e5637bfa522f407"
|
||||
},
|
||||
{
|
||||
"mint_id": "1555544",
|
||||
"artist": "Elton John",
|
||||
"title": "Heartache All Over The World",
|
||||
"price": 9.98,
|
||||
"condition": "",
|
||||
"cover": "/img/17/176b1cee3792be9855edb2bc47392e01d7496f0648be0458d04b544f30e8c06e.webp",
|
||||
"cover_sha256": "279c2b313202764b0ff39fb60850c5445185c393bf717ba973f994a5c35ba942"
|
||||
},
|
||||
{
|
||||
"mint_id": "1960626",
|
||||
"artist": "Johnny Rivers",
|
||||
"title": "The Very Best Of Johnny Rivers",
|
||||
"price": 12.0,
|
||||
"condition": "",
|
||||
"cover": "/img/66/660ac73460bd9dd8e8a3c31c8ad28bd15bea0021f247e5c110cc905680a74082.webp",
|
||||
"cover_sha256": "593240266b1b73262fee5eedb196da5df59a39174f32388298cc7e9a71dcb673"
|
||||
},
|
||||
{
|
||||
"mint_id": "3148069",
|
||||
"artist": "Dominic Fike",
|
||||
"title": "Sunburn",
|
||||
"price": 69.0,
|
||||
"condition": "",
|
||||
"cover": "/img/12/12f2e30aa9f93012138148f8afe4db48fca9c6598f2be2d7cb7349f13319ef3a.webp",
|
||||
"cover_sha256": "08eb83b1bf88b858321f203d373ca4870af1b73ba02c6573a2b3e15d51127ea4"
|
||||
},
|
||||
{
|
||||
"mint_id": "3274969",
|
||||
"artist": "Sex Pistols",
|
||||
"title": "God Save The Queen",
|
||||
"price": 49.99,
|
||||
"condition": "",
|
||||
"cover": "/img/2e/2e76e87a0d201fa7e7fdb6cd6f1950f84eeda74d83d933ddafe71f1a52f557c1.webp",
|
||||
"cover_sha256": "be582d725f4ed229a977ceaa73b73d53c95f13ce026b441ba003d2504c3a2bd4"
|
||||
},
|
||||
{
|
||||
"mint_id": "3312435",
|
||||
"artist": "TV Girl",
|
||||
"title": "Death of a Party Girl",
|
||||
"price": 69.95,
|
||||
"condition": "",
|
||||
"cover": "/img/fa/fa5a544a0932e7adf01ce477f9c9614f51a69c9eb5c85386e29473fe4498305d.webp",
|
||||
"cover_sha256": "3bb843460ade3a14a870ae036318d59cd2c01c4bacba0f3a1ea040027da02f56"
|
||||
},
|
||||
{
|
||||
"mint_id": "5225870",
|
||||
"artist": "Dream Theater",
|
||||
"title": "Systematic Chaos",
|
||||
"price": 134.99,
|
||||
"condition": "",
|
||||
"cover": "/img/d2/d2e4f12f3227851e9ddaedb5ad84bd67743a62fd9e6118f637a95b8e2025aece.webp",
|
||||
"cover_sha256": "2e33d981ef34dda770106690eccd5286dcb33e8a832963b9384ad515539c0e22"
|
||||
},
|
||||
{
|
||||
"mint_id": "6005806",
|
||||
"artist": "Led Zeppelin",
|
||||
"title": "Physical Graffiti",
|
||||
"price": 115.0,
|
||||
"condition": "",
|
||||
"cover": "/img/f0/f0b6d7657ff8ef885f57e8cb48725f881cc70ef758ba2f5c7f63649958a3fa30.webp",
|
||||
"cover_sha256": "b3807bcbcb25f1bad10f37105112f73d189e9b9d845d61c2689974cce6810d4f"
|
||||
},
|
||||
{
|
||||
"mint_id": "6007579",
|
||||
"artist": "The Budos Band",
|
||||
"title": "The Budos Band EP",
|
||||
"price": 52.0,
|
||||
"condition": "",
|
||||
"cover": "/img/fc/fc93db92f289bc7afb1e5dfb66111914bb2049efb30f95b8feb4b3acc37eb3ce.webp",
|
||||
"cover_sha256": "2c731749994ffe548078435d26ff92ae8b85a5c0f189af6382955663a3d7e27e"
|
||||
},
|
||||
{
|
||||
"mint_id": "6307515",
|
||||
"artist": "Joe Satriani",
|
||||
"title": "Shockwave Supernova",
|
||||
"price": 79.95,
|
||||
"condition": "",
|
||||
"cover": "/img/35/35f210fa3ded044311e877d57be4e316b2d35035af263ffe7d6e8bb83a0a2101.webp",
|
||||
"cover_sha256": "c493dc0849ed20faea97142b755a8239cec587d79b523f1410af01e729db40ed"
|
||||
},
|
||||
{
|
||||
"mint_id": "6512824",
|
||||
"artist": "Royal Trux",
|
||||
"title": "Royal Trux",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/55/55ac4e6dc1a16826970239451abcf2dc19cd23797489f52b30d4d4b53b3ca223.webp",
|
||||
"cover_sha256": "42ed85ecce2d23ef3c4678a98882fa32cbbd9371fdc889cf696a5da18b7fbc53"
|
||||
},
|
||||
{
|
||||
"mint_id": "6515893",
|
||||
"artist": "Jennifer Warnes",
|
||||
"title": "First We Take Manhattan",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/73/73ef3fe4c92d7924c7ec4821f2bd47bda11a53dc56c4988040226abeffe1368c.webp",
|
||||
"cover_sha256": "41ed3fc218711549717302babaad5b10951a4e9933312c094020c3c5219209e7"
|
||||
},
|
||||
{
|
||||
"mint_id": "6842418",
|
||||
"artist": "Joan Baez",
|
||||
"title": "Any Day Now",
|
||||
"price": 32.0,
|
||||
"condition": "",
|
||||
"cover": "/img/25/255eb21ee5e56612b723a5501f6ab986a087d31d53c5c578fd6f34a5c422a12a.webp",
|
||||
"cover_sha256": "295129f4339b41666d22270aaab3df7c6761340b736855544155af7eb1b73dc4"
|
||||
},
|
||||
{
|
||||
"mint_id": "6974962",
|
||||
"artist": "Vis A Vis",
|
||||
"title": "Di Wo Ho Ni",
|
||||
"price": 49.95,
|
||||
"condition": "",
|
||||
"cover": "/img/f2/f243ee56afd1ca6ce86b5b053bd980333a45f1b8fb30d847dfe2bb25590cb10f.webp",
|
||||
"cover_sha256": "0e70b8191c0222d91a48e12a13343d29091bc8e761e26d69be0feac572858abf"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2200_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2200,
|
||||
"slug": "better-read-than-dead",
|
||||
"name": "Better Read Than Dead",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2200,
|
||||
"sample": "random.Random(2200) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "831781",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "The Fallen - David Baldacci - BPAP - BOO020",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/48/4825ca2268f67018dfe83f52e4f76bb8491d00f80c49bde4c0b9a62fa38bc84a.webp",
|
||||
"cover_sha256": "fb310978a48bc8aaf7730450e7939a1361bd02d42d1f0af3468499b9696a4b98"
|
||||
},
|
||||
{
|
||||
"mint_id": "1925436",
|
||||
"artist": "Lodestars",
|
||||
"title": "Lodestars Anthology: New Zealand",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/b2/b242096b94841f3cb1d489d6c4a750a56c445a5fb4a542d3c3d604cb123beb92.webp",
|
||||
"cover_sha256": "2e591f2e0b1a725d4e4766e3e6b2f6c9eff85583acd377bba6a157936ed3ba0a"
|
||||
},
|
||||
{
|
||||
"mint_id": "1931996",
|
||||
"artist": "Katherine Ryan",
|
||||
"title": "Audacity : Why Being Too Much Is Exactly Enough - Katherine Ryan",
|
||||
"price": 27.0,
|
||||
"condition": "",
|
||||
"cover": "/img/08/086275737c228ee850f6fe2fc277677895cbc6a63752c866239440afafaabcbd.webp",
|
||||
"cover_sha256": "0577cb716ba8decda884a8507186fc4a01d2a2c38b40dcf1fe74273d548a33c0"
|
||||
},
|
||||
{
|
||||
"mint_id": "1932007",
|
||||
"artist": "Matthew Walker",
|
||||
"title": "Why We Sleep : The New Science of Sleep and Dreams - Matthew Walker",
|
||||
"price": 27.0,
|
||||
"condition": "",
|
||||
"cover": "/img/8e/8e26eedebb3ca7d85a45504bf5877996c8d05aa0bd9992a11dfc55369d71fc5d.webp",
|
||||
"cover_sha256": "2e75483c91b7c319c69a6ddf89f4c492d2dc8c19c3dc6c9e52b2fb1ced86b5a6"
|
||||
},
|
||||
{
|
||||
"mint_id": "4069295",
|
||||
"artist": "A24",
|
||||
"title": "99 TV Crosswords - A24",
|
||||
"price": 70.0,
|
||||
"condition": "",
|
||||
"cover": "/img/8f/8fd890f45ff42925c09b1d337fe516398cc527f56cc983db09b2a50187b2a074.webp",
|
||||
"cover_sha256": "756961abe95a177dcb196bcbf8efdc6f8a9088f2fc7b76fd56ebf9af95c6ec76"
|
||||
},
|
||||
{
|
||||
"mint_id": "6728501",
|
||||
"artist": "NewSouth Publishing",
|
||||
"title": "Liars, cheats and copycatsTrickery and deception in nature",
|
||||
"price": 34.99,
|
||||
"condition": "",
|
||||
"cover": "/img/9f/9f93c1a865e2a34b658c4122cc1be143b3694f1bf6c920b2b7a8ce14db9e82c9.webp",
|
||||
"cover_sha256": "e261a5ad93dfe98bc6ce7e3d65aea38472e76f24c75be69c924cb918e428996d"
|
||||
},
|
||||
{
|
||||
"mint_id": "6728751",
|
||||
"artist": "Brio Books",
|
||||
"title": "The Story of Growl",
|
||||
"price": 18.99,
|
||||
"condition": "",
|
||||
"cover": "/img/5f/5fa2f4fb07ce2ff5ed9529af7298e41901578a7c84e2ac88bf3a0939cf6c95e4.webp",
|
||||
"cover_sha256": "b8f8acbe69dab2991816ec8a5e8756809bb6bb24bb388ba185752250bf5abff5"
|
||||
},
|
||||
{
|
||||
"mint_id": "6730340",
|
||||
"artist": "HarperCollins Publishers Australia",
|
||||
"title": "Ozzie Goes to School",
|
||||
"price": 16.99,
|
||||
"condition": "",
|
||||
"cover": "/img/b2/b2f2785d9194f89d8503316024fcb3040620fac4c71e0ec29edbfbf6a530e88d.webp",
|
||||
"cover_sha256": "f48fefd16e89268ae5c2741bf0e5d507919c784bf85110941f1fec08fcec2870"
|
||||
},
|
||||
{
|
||||
"mint_id": "6962635",
|
||||
"artist": "Royal Academy of Arts",
|
||||
"title": "Leonardo Da Vinci: the Anatomical Dra...",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/f0/f0a73552248b176b11ba8a43cfeace107558c8009075109c592b548bed1eaeea.webp",
|
||||
"cover_sha256": "b530a67712d3473316c07c2a9a249accfd32f45c2c2743e9c5caa3b95e60135f"
|
||||
},
|
||||
{
|
||||
"mint_id": "6962907",
|
||||
"artist": "NewSouth Publishing",
|
||||
"title": "Painting by Numbers: The life and art of Ferdinand",
|
||||
"price": 14.0,
|
||||
"condition": "",
|
||||
"cover": "/img/21/21c0468d0203b87ead14e02ac1657871f48561c1205d6d7ebecd7ed2c1b712fe.webp",
|
||||
"cover_sha256": "5f5f298289dbac28ec8e5ccaaa56c5f9dc2aee59dd71b9ec0132a847bfa69c4a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6964245",
|
||||
"artist": "New Holland Publishers",
|
||||
"title": "ECO STYLE",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/d2/d271dc15b464c45ca8ffff40f080316795e8dd6084c227589bc100b06b23443c.webp",
|
||||
"cover_sha256": "2499b0c9ada9afc9311485ce0ae9ac1c0856fba371e327497e065f6bc007f5d1"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966282",
|
||||
"artist": "teNeues Verlag",
|
||||
"title": "Children of the World",
|
||||
"price": 125.0,
|
||||
"condition": "",
|
||||
"cover": "/img/7d/7d8744ee5195944b4898477a229f91915998fd016ae6c0caa310ef2186c7d1b9.webp",
|
||||
"cover_sha256": "a1b037b052ff6b982a11de95316a4695c48d1bda74e2015af201bae0dad88c08"
|
||||
},
|
||||
{
|
||||
"mint_id": "6967149",
|
||||
"artist": "National Library of Australia",
|
||||
"title": "Australia's Wild Places",
|
||||
"price": 39.95,
|
||||
"condition": "",
|
||||
"cover": "/img/df/dfc5ed8dc519354be8f0209cee495ea18fd65c1f375e0b90f1bb132479321380.webp",
|
||||
"cover_sha256": "d638554812ba3995ebeceef734dacdcb971e90db84dd1059a3a40dab8aa3ecae"
|
||||
},
|
||||
{
|
||||
"mint_id": "6967659",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"title": "Fashion Central Saint Martins",
|
||||
"price": 59.99,
|
||||
"condition": "",
|
||||
"cover": "/img/6c/6ceb0393c9c74e8e24e4b81b3715c4bdf8ead06afd3e65969db3d2f2a185e259.webp",
|
||||
"cover_sha256": "eaf80cd029cc18689907d7fa254dfdb925bd68ea3aaae5aa5e24a0fdcda054c6"
|
||||
},
|
||||
{
|
||||
"mint_id": "6969218",
|
||||
"artist": "Ryland Peters & Small",
|
||||
"title": "Simple Natural Crochet: 35 Projects to Make - Gorge",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ff/ff6bd38a06660088dc911b89ae5a09f273c1f6abc74241e62e8779dd9cff6710.webp",
|
||||
"cover_sha256": "f0d904af9caf02bbb5cbda55084bd5f493bf565021f0a568668ca6255f492e4e"
|
||||
},
|
||||
{
|
||||
"mint_id": "6999001",
|
||||
"artist": "Dorling Kindersley Publishing, Incorporated",
|
||||
"title": "Grow, Cook, Dye, Wear: From Seed To Style The Susta",
|
||||
"price": 39.99,
|
||||
"condition": "",
|
||||
"cover": "/img/4c/4cf4754f7510aacdba4ccda44e0c6ee3f1d1d933a93dc19c5eccfddd7f3b98e1.webp",
|
||||
"cover_sha256": "214c550d97b40827b86617cbd153e15d1ce9fdd4269cbea4729169fbf0a5bdc4"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2201_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2201,
|
||||
"slug": "elizabeth-s-bookshop",
|
||||
"name": "Elizabeth's Bookshop",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2201,
|
||||
"sample": "random.Random(2201) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "826954",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Lessons in Chemistry - Bonnie Garmus - BPAP - BOO008",
|
||||
"price": 4.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a0/a09b725743c8ae60f1982c4a2c98d46e66f13436546d73245394eff29d3ab17d.webp",
|
||||
"cover_sha256": "030076d3ed8a2e06d2597bfacf77bac5ad2f3e8bd9d11ccae32418c72986f22a"
|
||||
},
|
||||
{
|
||||
"mint_id": "1931980",
|
||||
"artist": "Fiona Austin",
|
||||
"title": "Beaumaris Modern 2 - Fiona Austin",
|
||||
"price": 65.0,
|
||||
"condition": "",
|
||||
"cover": "/img/5f/5f3517573ffde59673a0c3bfca2ab139ba5c8e2a853c6cf5d5c0dd9424337b81.webp",
|
||||
"cover_sha256": "ee67a591860e4e6c84d6fcf631f47f07661ec6e50c9afa3fc6f6b9cf96f30e2d"
|
||||
},
|
||||
{
|
||||
"mint_id": "2065183",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Slow Cooker: The Complete Collection - Australian Women's Weekly - BCOO - BOO053A",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/83/83639c9cf4c8b2c2466c5a47a168b8be6bf43a0e1b8b5e818db51727a68690f0.webp",
|
||||
"cover_sha256": "d553f928914481c8104eebe40cea2884e686758bbc1c2aad38b22c87540b11b2"
|
||||
},
|
||||
{
|
||||
"mint_id": "3310554",
|
||||
"artist": "GAR",
|
||||
"title": "Jones, Lesley-Anne - Songbird: An Intimate Biography Of [Book]",
|
||||
"price": 24.95,
|
||||
"condition": "",
|
||||
"cover": "/img/35/3544d7a3c8b1b4f7313b7eada7d0f2ae75d8d3e2011e63531c0b84014adcabc6.webp",
|
||||
"cover_sha256": "0e1a425fa722c2c4677bcb57a141638dc29dd6aedf9a5432cef8d9521ba055f1"
|
||||
},
|
||||
{
|
||||
"mint_id": "6109637",
|
||||
"artist": "Truman Capote",
|
||||
"title": "Breakfast At Tiffany's (Popular Penguins) - Truman Capote",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/9f/9fff0590cd3cb093776e0b9ce050f302f1c72033ebbc6aca307eb729c5490f4e.webp",
|
||||
"cover_sha256": "ec10cc13129834065b9e5ce57838cfb3bd3001744d6a616bc456b54b4c13861a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6109781",
|
||||
"artist": "Dr Seuss",
|
||||
"title": "Lorax - Dr Seuss",
|
||||
"price": 12.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ca/ca381c35ec120856fa55e8522ac53d9ba6d0791ed475ff404fa4c89aaed6e772.webp",
|
||||
"cover_sha256": "4cfde6063de59dca2c92974ce44061b7f222917b2f1fbdbe3db11d6d571fc5b9"
|
||||
},
|
||||
{
|
||||
"mint_id": "6729688",
|
||||
"artist": "Ultimo Press",
|
||||
"title": "The Man Who Wasn't There",
|
||||
"price": 36.99,
|
||||
"condition": "",
|
||||
"cover": "/img/39/39cc2a4478c5119d43ce5d5e028d1d98b1bd8f3d53a4cb5262af101f681a03cd.webp",
|
||||
"cover_sha256": "4762d4bc643e4d4485a0db92bd93504a0d1e927bf700322f55a1f945748f9a0f"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965715",
|
||||
"artist": "Tate Publishing",
|
||||
"title": "Matisse",
|
||||
"price": 13.95,
|
||||
"condition": "",
|
||||
"cover": "/img/12/12ee7d9ed628e9b64c63b3796ba3cd6ab09c615c6a16c6934e9cd473a7d9c43c.webp",
|
||||
"cover_sha256": "3ad3523e2c6473db571677c285e75e54bda1f6d9a8c6de0c215d903ae928d501"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966158",
|
||||
"artist": "Merrell Publishers Limited",
|
||||
"title": "More Dream Homes: 100 Inspirational Interiors",
|
||||
"price": 100.0,
|
||||
"condition": "",
|
||||
"cover": "/img/0d/0dda691ba3ba9c12bdbda2206e8fc17401d1c294a5b09a2ab0b62d7f8659902e.webp",
|
||||
"cover_sha256": "aa09a92c8d9f398538d55d0a46697bc76d476b0d4b6c60cb491b83319019578c"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966174",
|
||||
"artist": "Phaidon Press Limited",
|
||||
"title": "Wild: The Naturalistic Garden",
|
||||
"price": 79.95,
|
||||
"condition": "",
|
||||
"cover": "/img/53/53ea69f9b69168bb0b26ee76f466d86baf4944ea885b1e2aa795d94bdb2ec4a5.webp",
|
||||
"cover_sha256": "133eb315c93afa888da886474e710ba751a3ac16d8fef79f8fca51f63935f314"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966273",
|
||||
"artist": "Gibbs Smith, Publisher",
|
||||
"title": "Tales from the Forest Kingdom Coloring Book",
|
||||
"price": 24.99,
|
||||
"condition": "",
|
||||
"cover": "/img/19/194a44a00b3111f10427aa668c3325c01be8e1fb5f6f113459aa2b5122290462.webp",
|
||||
"cover_sha256": "7ca75bbbb3d3a3a5a316c50edc7d32406dcef8ce214b051fcc33328d552fed6e"
|
||||
},
|
||||
{
|
||||
"mint_id": "6968094",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"title": "Ravens and Red Lipstick: Japanese Photography Since",
|
||||
"price": 59.95,
|
||||
"condition": "",
|
||||
"cover": "/img/0a/0a589521a852195ac698df12984573cdc3022d32c84760080202c7569c187de8.webp",
|
||||
"cover_sha256": "824b9ea857f16acc859995b4cb921a7e4f8cd7fc0d22540c6325a019bfec45bb"
|
||||
},
|
||||
{
|
||||
"mint_id": "6968262",
|
||||
"artist": "Orion Publishing Group, Limited",
|
||||
"title": "A Fire Born of Exile - A Spellbinding Standalone Sci-Fi Romance and 2024 Hugo Award Finalist Perfect for Fans of Becky Chambers\\n by Aliette de Bodard",
|
||||
"price": 24.99,
|
||||
"condition": "",
|
||||
"cover": "/img/52/52ef904919cd6b4409a7e3b4bd66edc59d758f6b2d5abd4ba93d533f130c6cec.webp",
|
||||
"cover_sha256": "d3c708c1988e64f5a3dee433688fb313b47bd4a32ba95793024d73a5702371bc"
|
||||
},
|
||||
{
|
||||
"mint_id": "6968962",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"title": "Audrey Hepburn: Icons Of Style",
|
||||
"price": 16.99,
|
||||
"condition": "",
|
||||
"cover": "/img/88/880d2af978b227fa73d3e9c0c448aaee3b7196d1dd74f20218816244263e8077.webp",
|
||||
"cover_sha256": "98badfd98df1ae6032f9ea1499960ee1375a8aae298fefff1e781ffc940c72fe"
|
||||
},
|
||||
{
|
||||
"mint_id": "6994056",
|
||||
"artist": "Hachette UK",
|
||||
"title": "Marina Abramovic: A Visual Biography",
|
||||
"price": 175.0,
|
||||
"condition": "",
|
||||
"cover": "/img/8a/8afe1ed12ea7eec163833b1724d25df87c467284a46403ed1162317aa4efdd14.webp",
|
||||
"cover_sha256": "c3c0de828404407277a500d4a3b9cdb93fd00b0659e762100eb76f2b7aed8d00"
|
||||
},
|
||||
{
|
||||
"mint_id": "7035785",
|
||||
"artist": "Margot Douaihy",
|
||||
"title": "Scorched Grace: A Sister Holiday Mystery",
|
||||
"price": 24.99,
|
||||
"condition": "",
|
||||
"cover": "/img/20/20476208320a6d0054578d561d717e3288107e8d7954cb63596a99064e3032c8.webp",
|
||||
"cover_sha256": "d478394384f8c1c76ba88d031aa6751d25bc4307d012f4329c5316a8daeef0b2"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2212_record.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2212,
|
||||
"slug": "papa-disquo",
|
||||
"name": "Papa Disquo",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "record"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 111320,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2212,
|
||||
"sample": "random.Random(2212) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "1487770",
|
||||
"artist": "Leftfield",
|
||||
"title": "Rhythm And Stealth",
|
||||
"price": 74.99,
|
||||
"condition": "Mint (M)\\n\\n \\n \\n \\n \\n Absolutely perfect in every way. Certainly never been played. Should be used sparingly as a grade. / sleeve Mint (M)",
|
||||
"cover": "/img/4e/4e992da54767b477d871c2a1b492e88132b55b99ccff034a81cac1820bdff04b.webp",
|
||||
"cover_sha256": "ae02289bd2c8c661423e9046c9efa2119156672cdc1211cf819d545f0c03d446"
|
||||
},
|
||||
{
|
||||
"mint_id": "1508398",
|
||||
"artist": "Djenga",
|
||||
"title": "Djengastyle#1",
|
||||
"price": 31.79,
|
||||
"condition": "",
|
||||
"cover": "/img/ab/ab054f7aa3132541a4a3a51576f4ea490ae7c9f77e85d60bc19b83e265a64178.webp",
|
||||
"cover_sha256": "7f1e468c54c67b06ae8456d39e7c1c5d7e457607d0aedc34a01eb801dd4a204a"
|
||||
},
|
||||
{
|
||||
"mint_id": "1542765",
|
||||
"artist": "Peggy Lee",
|
||||
"title": "Fever",
|
||||
"price": 6.0,
|
||||
"condition": "",
|
||||
"cover": "/img/2b/2b093642b474ba7c45aae2cc62a7cca99547591f0c45c4760e50a0fc68b0aa5b.webp",
|
||||
"cover_sha256": "91c2a5208181555d4b08cbd6ac0ce3cfbb4991a6311db149f44cee79b5c5d677"
|
||||
},
|
||||
{
|
||||
"mint_id": "1954799",
|
||||
"artist": "The Replacements",
|
||||
"title": "Not Ready For Prime Time: Live At The Cabaret Metro, 1986",
|
||||
"price": 82.0,
|
||||
"condition": "",
|
||||
"cover": "/img/55/55e9d553fb2041ea640a4eb00a58a4bef47378eddcf1a57f79a4a10f576dd614.webp",
|
||||
"cover_sha256": "7f00b70321f5eba2fdd470665b10decb2df9ef83f174f2a03b2db9c30787b18b"
|
||||
},
|
||||
{
|
||||
"mint_id": "1955503",
|
||||
"artist": "Matt Bianco",
|
||||
"title": "Matt Bianco - Whose Side Are You On? (7\", Single)",
|
||||
"price": 19.52,
|
||||
"condition": "",
|
||||
"cover": "/img/f9/f9cd4ad402f62ac991df7f36d2855dee191b512a24ec04d5827f12095169dfa1.webp",
|
||||
"cover_sha256": "aafcb923dc40d799cc414b0459e8957c4829aca40ba23edc4ed5afcdb10a45c4"
|
||||
},
|
||||
{
|
||||
"mint_id": "2635771",
|
||||
"artist": "Clifford Brown and Max Roach",
|
||||
"title": "Clifford Brown And Max Roach \u2013 Study In Brown (E/E)",
|
||||
"price": 70.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c9/c9a9c4234428168908702c412d627a6c8f7825a6863169484d1eda44a4c1afd0.webp",
|
||||
"cover_sha256": "7b6b29c56098d40fd9f05f4c6d1a5489fa75213b80e94690290fec805564393f"
|
||||
},
|
||||
{
|
||||
"mint_id": "3153138",
|
||||
"artist": "David Bowie",
|
||||
"title": "Hours...",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/84/846673771fb176ad71b7f7f3e457ad680a0c824628f61a0281bccb795ad82b99.webp",
|
||||
"cover_sha256": "ebf22b64fae2020aa30d0575450be544c9dbd3de53424aa8a5546abe2afa10e8"
|
||||
},
|
||||
{
|
||||
"mint_id": "3277085",
|
||||
"artist": "Midnight Oil",
|
||||
"title": "Armistice Day",
|
||||
"price": 200.0,
|
||||
"condition": "",
|
||||
"cover": "/img/55/5532a8b151cf8f56caf98b030af7db763fc4e87757bb5448f71f7f6739f5d91e.webp",
|
||||
"cover_sha256": "c8ed4ff585c085f5d740a8837f478a86c551d03c4ee61910178308057b1e6d5e"
|
||||
},
|
||||
{
|
||||
"mint_id": "3277357",
|
||||
"artist": "Re-Flex (2)",
|
||||
"title": "How Much Longer",
|
||||
"price": 40.0,
|
||||
"condition": "",
|
||||
"cover": "/img/d3/d364552e7f6c93a840a5b1a48565242f12880795c2eb5ba6b738f92eed550e80.webp",
|
||||
"cover_sha256": "d248b9a05049f77636371c47ecbd78355cde097c53f2de18978423b1eb37d4f1"
|
||||
},
|
||||
{
|
||||
"mint_id": "3293690",
|
||||
"artist": "Boy Harsher",
|
||||
"title": "The Runner (Original Soundtrack)",
|
||||
"price": 59.95,
|
||||
"condition": "",
|
||||
"cover": "/img/31/318301c5bc4b8fd4366626ed6b4c8103f618d00dda190506aeb0dad9cce4e348.webp",
|
||||
"cover_sha256": "c314fde1578285bae2b1b020bb2327f37b48c4c95b767510cc4c1517722fcb63"
|
||||
},
|
||||
{
|
||||
"mint_id": "3511436",
|
||||
"artist": "Les Paul & Mary Ford",
|
||||
"title": "Bye Bye Blues!",
|
||||
"price": 30.0,
|
||||
"condition": "M",
|
||||
"cover": "/img/c4/c4d274b76c271a48768da9a0b021162f85ab2715c3d95062567dd9c9512d8837.webp",
|
||||
"cover_sha256": "bf4342ad4f41e0bf17aebf56de2f999eb87a95d9c6e008796ea9aa82ad79607e"
|
||||
},
|
||||
{
|
||||
"mint_id": "4520905",
|
||||
"artist": "Various",
|
||||
"title": "Various \u2013 Now Generation - The Best Of The Indie Stuff (2 x CD, Compilation)",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ac/acc8fe4d33ac62785952d6f0c0a70cb7763467525b79c0d87bf4ef0e840458c1.webp",
|
||||
"cover_sha256": "0ace606982d70fcb7b74d07dec9fd23cad45be8d29551be174e98ca0ba1f48af"
|
||||
},
|
||||
{
|
||||
"mint_id": "5947485",
|
||||
"artist": "Dark Funeral",
|
||||
"title": "Where Shadows Forever Reign",
|
||||
"price": 9.99,
|
||||
"condition": "",
|
||||
"cover": "/img/eb/eb4d0efa2a41c3b65ec6235fbc2aa26020c3fe983b20456ca7c8efd105b1eefc.webp",
|
||||
"cover_sha256": "6f537236291d367a820011f0618baa2df2e52a8a2ca3c71e20a7c50e677707e1"
|
||||
},
|
||||
{
|
||||
"mint_id": "5948394",
|
||||
"artist": "Metal Church",
|
||||
"title": "Metal Church",
|
||||
"price": 29.99,
|
||||
"condition": "",
|
||||
"cover": "/img/a0/a042498efce32bfc3269ef673ca0b63a3f96f9aa843cca93d6be9a74052cc4fd.webp",
|
||||
"cover_sha256": "bdb27429b4e91b7f35c75efb4f858278504ca98f6089d489e4cc80f032ad5506"
|
||||
},
|
||||
{
|
||||
"mint_id": "6358606",
|
||||
"artist": "Suede",
|
||||
"title": "Autofiction",
|
||||
"price": 29.99,
|
||||
"condition": "",
|
||||
"cover": "/img/93/93736e5bd94734edb57739d9791e56ec12413ce0c804f76b140a5bcfe786ee17.webp",
|
||||
"cover_sha256": "4becb72dd4bd0ea191b86f9a6c110d3f2999d325f6371bde14a0e2f046c20593"
|
||||
},
|
||||
{
|
||||
"mint_id": "6359222",
|
||||
"artist": "The Dream Syndicate",
|
||||
"title": "Ultraviolet Battle Hymns And True Confessions",
|
||||
"price": 31.99,
|
||||
"condition": "",
|
||||
"cover": "/img/7e/7e94b01cfdb93906c6ec74152f144f3670bdb16fb2487966963194970b9775dd.webp",
|
||||
"cover_sha256": "c92f4dfdeaa31d2bb8a4fc31db72f39c5676dc44e732842cd3e4b0faf30d2c71"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2287_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2287,
|
||||
"slug": "little-bird-bookshop",
|
||||
"name": "Little Bird Bookshop",
|
||||
"suburb": "Paddington",
|
||||
"state": "QLD",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2287,
|
||||
"sample": "random.Random(2287) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "826912",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "An Undeniable Voice - Tania Blanchard - BPAP - BOO009",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/4c/4c1ae94cfa061e88568bba37d5b1f12eac3f2532a883876bdb10a5df8ff88f82.webp",
|
||||
"cover_sha256": "e3108fbf847ae793e7bf263e08065408bc5418a17b98b08b9097a34c01efff28"
|
||||
},
|
||||
{
|
||||
"mint_id": "1926301",
|
||||
"artist": "Oliver Jeffers",
|
||||
"title": "I'm Very Busy - Oliver Jeffers",
|
||||
"price": 25.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a9/a94712d1773ad0af48a4386e0c37ca07cebaef288fc760ddda939f6fd3c63e1d.webp",
|
||||
"cover_sha256": "50950bebf870d7852161e4f06ee8e54992b4247ed5254b216aa1fe81e93f3a93"
|
||||
},
|
||||
{
|
||||
"mint_id": "1926750",
|
||||
"artist": "Chris Deville",
|
||||
"title": "Such Great Heights - Chris Deville",
|
||||
"price": 55.0,
|
||||
"condition": "",
|
||||
"cover": "/img/68/68b814d93f294a9772588ae4289aefdf04c36b4492cecca5d6bb99cf8a5535a1.webp",
|
||||
"cover_sha256": "2acfffd12ee5e0743bc5ec9dfba9e9ee18e8e9d7c5c53841863b8e1213b05ab5"
|
||||
},
|
||||
{
|
||||
"mint_id": "3275778",
|
||||
"artist": "Movie",
|
||||
"title": "Daniel Falconer - The Art Of District 9 Weta Workshop 2010 Hardcover Book",
|
||||
"price": 190.0,
|
||||
"condition": "",
|
||||
"cover": "/img/45/458c58b0b3a87ae8e194d994ea5eb38c3ba6fe5716065e7678f6f13c4a197215.webp",
|
||||
"cover_sha256": "a9fd7403cc3f92448b1e371288769fe880a878d866215551418366c5fe83b167"
|
||||
},
|
||||
{
|
||||
"mint_id": "3310625",
|
||||
"artist": "GAR",
|
||||
"title": "Ruland, Jim - Corporate Rock Sucks: The Rise And Fall [Book]",
|
||||
"price": 44.95,
|
||||
"condition": "",
|
||||
"cover": "/img/52/5243eb436f11806064f1ceef3c83f172637fb65ca948212aa55c39cf75644884.webp",
|
||||
"cover_sha256": "2e94fcdce59df098f36fa73cf418d7ac02ad868772c4810a715e6fe25bf4029e"
|
||||
},
|
||||
{
|
||||
"mint_id": "4296826",
|
||||
"artist": "GAR",
|
||||
"title": "Trowell, Ian - Throbbing Gristle: An Endless Discontent [Book]",
|
||||
"price": 69.95,
|
||||
"condition": "",
|
||||
"cover": "/img/00/00d75f2d131aa20bca225c5fd7fc50b6b359bbd477e77c5708985cd7f38c19b4.webp",
|
||||
"cover_sha256": "081eb3108bb8d0b46c219b9483de7c49bd8919c3fb40227205c4bc8d51d9ae77"
|
||||
},
|
||||
{
|
||||
"mint_id": "6962945",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"title": "The Iconic Interior - 1900 to the Present",
|
||||
"price": 1900.0,
|
||||
"condition": "",
|
||||
"cover": "/img/33/33379e72faca924d9071e1c64aa0b119d0598e688351e08822cb09bc454ba0c9.webp",
|
||||
"cover_sha256": "5ce2a83b5271615315f690da494fd7997a64cb92b3e59ed9629ac3007d79c17b"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963194",
|
||||
"artist": "Taschen",
|
||||
"title": "Modern Architecture A-Z",
|
||||
"price": 49.99,
|
||||
"condition": "",
|
||||
"cover": "/img/8a/8aeca50552ea115efc40702e79f8399b65d93be2d56bc765305eabe968902a2c.webp",
|
||||
"cover_sha256": "4004f83c636eb81e4f43dbe4812742fd6469337bd217c070a6702d508df532d6"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965345",
|
||||
"artist": "Pavilion Books",
|
||||
"title": "Learn Oils Quickly",
|
||||
"price": 19.99,
|
||||
"condition": "",
|
||||
"cover": "/img/b1/b1bfa72db76bbf5bd5fe334b05afd3fb37e50bbfd7ac770c3271b21f05b4f809.webp",
|
||||
"cover_sha256": "5731d74108c753a22473581eb874adaf8bfe215645b37458ef96fd8fabdd0d77"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966159",
|
||||
"artist": "Phaidon",
|
||||
"title": "Flower Colour Theory",
|
||||
"price": 49.95,
|
||||
"condition": "",
|
||||
"cover": "/img/54/54a065c6881e4a4bab6ec0ff258667fca6a2ad6e432cef583be7b746c0d2cc46.webp",
|
||||
"cover_sha256": "1fa732fd6305ae4f8493d5b9195302a1ca322838e94d4b82c6d9aaa2b0cd7760"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966277",
|
||||
"artist": "Thames and Hudson Ltd",
|
||||
"title": "The Library: A World History",
|
||||
"price": 59.99,
|
||||
"condition": "",
|
||||
"cover": "/img/f7/f74b3ef81311913d7425197b46d40103266a04a1ca92b5d512ed963a0baadc1f.webp",
|
||||
"cover_sha256": "d457549ddb5c0c8929f3e01a4e08eb592418beb8ebee4d9aae7e5483d8c60e29"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966390",
|
||||
"artist": "John Wiley and Sons Ltd",
|
||||
"title": "Small Space Decorating",
|
||||
"price": 27.95,
|
||||
"condition": "",
|
||||
"cover": "/img/b3/b33e0fa30a9f27a2b562e2fa1efec8ba11debe9eae281d01aa89909f8310d237.webp",
|
||||
"cover_sha256": "f88973841382d89735d95193e84d0755aeda79570f1d8864b91ea3972b4f58ca"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966784",
|
||||
"artist": "Welbeck",
|
||||
"title": "Little Guides to Style: The Story of Four Iconic Fa",
|
||||
"price": 99.99,
|
||||
"condition": "",
|
||||
"cover": "/img/9c/9cdfeefe794106f5f7218cbd85e159a321b48a9ff12ac13351e654c6e07ee5ec.webp",
|
||||
"cover_sha256": "23298d8f5a887c00c03b17524330e9ddb4d9955c85101fe22aae5eb7773bbf2e"
|
||||
},
|
||||
{
|
||||
"mint_id": "6967561",
|
||||
"artist": "Assouline",
|
||||
"title": "Akris",
|
||||
"price": 175.0,
|
||||
"condition": "",
|
||||
"cover": "/img/f6/f68c8fb642ca235e3914d7c02514756be30db273cdcff19721ba8756f0bf8ce9.webp",
|
||||
"cover_sha256": "a4d90855c50817b1508afa006dd06b7a2947dabc621ba1e20d58c6ad50b19f90"
|
||||
},
|
||||
{
|
||||
"mint_id": "6969361",
|
||||
"artist": "Penguin Books Ltd",
|
||||
"title": "RHS Encyclopedia of Plants and Flowers",
|
||||
"price": 99.95,
|
||||
"condition": "",
|
||||
"cover": "/img/0a/0ac73b0839f17ab8a7f6f7121fac7d0ceebed02ad6e2b3afdb7fbb1f06efe45b.webp",
|
||||
"cover_sha256": "ac714cf1e9a1cfd02359c4fecf7b0a81aad2d0b373061128290bde75729f775c"
|
||||
},
|
||||
{
|
||||
"mint_id": "6994248",
|
||||
"artist": "HarperCollins Publishers Limited",
|
||||
"title": "Common Reader",
|
||||
"price": 9.99,
|
||||
"condition": "",
|
||||
"cover": "/img/c2/c2b3bbe3b488d56231fd0d08da09f9baed14d40689a44e7689c85fe00d3789ec.webp",
|
||||
"cover_sha256": "9601daadb52f90251e157604d058c3b5e1530142c3d9bddd07bd9237682a8f4b"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2377_toy.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2377,
|
||||
"slug": "kidstuff",
|
||||
"name": "Kidstuff",
|
||||
"suburb": "Camperdown",
|
||||
"state": "NSW",
|
||||
"type": "toy"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 103530,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2377,
|
||||
"sample": "random.Random(2377) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "28804",
|
||||
"artist": "Microsoft",
|
||||
"title": "Mx Vs Atv - Unleashed Xbox (Original)",
|
||||
"price": 14.99,
|
||||
"condition": "",
|
||||
"cover": "/img/32/321c5fb9640a978f3fa1359b66738aa52edaedfa1795b3be740fd182ff1f281b.webp",
|
||||
"cover_sha256": "b94d498d92031697fa95d6ecfcf6a9ec010fdd47fac576f3d0a526363d2c0041"
|
||||
},
|
||||
{
|
||||
"mint_id": "28813",
|
||||
"artist": "Sony",
|
||||
"title": "Rapala Pro Fishing Playstation 2 (PS2)",
|
||||
"price": 9.99,
|
||||
"condition": "",
|
||||
"cover": "/img/67/67b101df1ec77fe138f10ac27ba8cc66cc1cb2dbf5e81f88cee0fbf939da5516.webp",
|
||||
"cover_sha256": "7e5210b3ea0ca4813f074b73c2038ba08393ea899e511e6f1758b769189b42e0"
|
||||
},
|
||||
{
|
||||
"mint_id": "60762",
|
||||
"artist": "Nintendo",
|
||||
"title": "Mario Isalnd Party World Tour Nintendo 3DS",
|
||||
"price": 18.0,
|
||||
"condition": "",
|
||||
"cover": "/img/2f/2f9a42b20cee79c42a28c682d4c639fc80ece33cbca99c117c1cb1b3ca3f79fa.webp",
|
||||
"cover_sha256": "4874b34abb1701aa101a3c45e03a9f3437339443581d0b8b95b400b6033c77e7"
|
||||
},
|
||||
{
|
||||
"mint_id": "64465",
|
||||
"artist": "Ea Sports",
|
||||
"title": "FIFA 15 Playstation 3 (PS3)",
|
||||
"price": 2.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c1/c11f60112c7a9f9f7bd0d7f35484d9ae2f5190e12256fdfb3979064c1ee5d9fd.webp",
|
||||
"cover_sha256": "7688eaac4547cf774258d45ab562fce200a1ec409018197c6b428cd947899157"
|
||||
},
|
||||
{
|
||||
"mint_id": "165601",
|
||||
"artist": "Sony",
|
||||
"title": "Spiderman Miles Morales Playstation 5 (PS5)",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/28/283a69a97a440a47d75781a5d50472ed24ab5dc8f4a3eb3889176799387f4e65.webp",
|
||||
"cover_sha256": "3217b3f98897c381afd73e8279213fc6d1641fa79dd9ca880b0847f5770e8769"
|
||||
},
|
||||
{
|
||||
"mint_id": "370120",
|
||||
"artist": "Nintendo",
|
||||
"title": "Nintendo Switch Black Hac-001",
|
||||
"price": 149.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a6/a6d6d8e6e729d0f070f8fdeaf8861f34d1cbf59a8c1efea59ee9fa70a99dad14.webp",
|
||||
"cover_sha256": "397f55f3823330cf39f8e3042844734e8abe841eab3a2481ce9f38e83e171433"
|
||||
},
|
||||
{
|
||||
"mint_id": "387296",
|
||||
"artist": "Sony",
|
||||
"title": "Sony Playstation 4 (PS4) Slim 500GB Cuh-Zct2e 500GB Black",
|
||||
"price": 129.0,
|
||||
"condition": "",
|
||||
"cover": "/img/f2/f2b807944d77b5510526d86ff301c8cfbecec09af1d0ab1200a9c0005171308e.webp",
|
||||
"cover_sha256": "91e5dd3b1b27521958d49d3d16f0937ebe7515f9ea67b675b216d82cc53ba5e2"
|
||||
},
|
||||
{
|
||||
"mint_id": "393994",
|
||||
"artist": "Centenary Of The Overland Telegraph",
|
||||
"title": "Centenary Of The Overland Telegraph White",
|
||||
"price": 1.5,
|
||||
"condition": "",
|
||||
"cover": "/img/d3/d3f779eb8d0dabceeb16686aabdc898c806a712131123ca13d572218338c54e5.webp",
|
||||
"cover_sha256": "7ac33d527d79364ce9c603a055c3e854aac5059091dd3e8ad3519c3413a605f5"
|
||||
},
|
||||
{
|
||||
"mint_id": "525015",
|
||||
"artist": "Nintendo",
|
||||
"title": "Nintendo Sports Nintendo Switch",
|
||||
"price": 12.0,
|
||||
"condition": "",
|
||||
"cover": "/img/7f/7feaff5ff33597bf09a8c3446b1d6e3fe38fdcf97c00d41a90160338291a7b57.webp",
|
||||
"cover_sha256": "25a86d1a9a54ca45906670ae5fc927861ce16547370b5c4c29b226e0ef695907"
|
||||
},
|
||||
{
|
||||
"mint_id": "1949276",
|
||||
"artist": "Sony",
|
||||
"title": "Call Of Duty Black Ops Iii Playstation 4 (PS4)",
|
||||
"price": 5.0,
|
||||
"condition": "",
|
||||
"cover": "/img/6f/6f85936b134685b41ad3c8decbe8ac3627a5d843f2ee44279422d5df569c5844.webp",
|
||||
"cover_sha256": "a34785f11e44fed7a0252e8343467b1a5844407e52c9b7fce643191a45fde974"
|
||||
},
|
||||
{
|
||||
"mint_id": "2144718",
|
||||
"artist": "JIM SHORE DISNEY TRADITIONS",
|
||||
"title": "Jim Shore Disney Traditions - The Lion King - Remember Who You Are Storybook",
|
||||
"price": 201.3,
|
||||
"condition": "",
|
||||
"cover": "/img/ea/eac790a6f47bb5d8eb99ea2daf64be38b0cc674a1da124c4b3fa2ace582d3d47.webp",
|
||||
"cover_sha256": "6fa8d198a3b9b442a5c3e9a82d825e2d15f4906f6d3b01574fe3c987971e9953"
|
||||
},
|
||||
{
|
||||
"mint_id": "2145450",
|
||||
"artist": "Games Workshop",
|
||||
"title": "Games Workshop Warhammer 40K World Eaters Codex",
|
||||
"price": 92.63,
|
||||
"condition": "",
|
||||
"cover": "/img/cf/cf95e77db0304ccf62e4c5663fa3adb3c0db2dd7d1a9aa78642f132b113926b1.webp",
|
||||
"cover_sha256": "251348484eddf14b4eeb3b0f7cf0d08894da15793ee6129a5fa822cc576e897b"
|
||||
},
|
||||
{
|
||||
"mint_id": "4720215",
|
||||
"artist": "Nintendo",
|
||||
"title": "Pokemon Sheild Nintendo Switch",
|
||||
"price": 49.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a1/a1e66f27e46bcf460b92c3128c2dd235d51395c7bc1431ed5b27d4c7c369b0ed.webp",
|
||||
"cover_sha256": "9530c88a698f9cee05330d3726311c6804a0657cdc6d1f40addbe1eec4def169"
|
||||
},
|
||||
{
|
||||
"mint_id": "5522185",
|
||||
"artist": "Pop!",
|
||||
"title": "Pop! Minnie & Mickey",
|
||||
"price": 39.0,
|
||||
"condition": "",
|
||||
"cover": "/img/fc/fccdd7b3a3fa39be228457d690183f4c3109e26cd28b02b7829e094ffe9b715d.webp",
|
||||
"cover_sha256": "d4c9723ac3e8dc9be922c37d4b1d6190c6acfafc97da3001c6f4b63a0c040109"
|
||||
},
|
||||
{
|
||||
"mint_id": "6812211",
|
||||
"artist": "AK INTERACTIVE",
|
||||
"title": "AK Interactive Wargame: Medium Earth Enamel Liquid Pigment 35ml",
|
||||
"price": 10.99,
|
||||
"condition": "",
|
||||
"cover": "/img/f9/f966eadced9915d9c2432f4115a6a678df58033949dbc68e01389ecaca42f9c5.webp",
|
||||
"cover_sha256": "8938ac822f96b29ddb1bc54d509542a858f45d279530b80abc56c33c8a2c3f6a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6858153",
|
||||
"artist": "Awaken Realms",
|
||||
"title": "Nemesis Retaliation: Core Box",
|
||||
"price": 250.0,
|
||||
"condition": "",
|
||||
"cover": "/img/16/1696a262ad7721387dcde52af3953f949db8675b2e78bfd8ddf6def03d3e1a6a.webp",
|
||||
"cover_sha256": "31f4acbc4e4b8110c0bdedfad8b296413f36280657c79ce0d7270593227fb4d8"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_247_record.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 247,
|
||||
"slug": "the-vintage-record",
|
||||
"name": "The Vintage Record",
|
||||
"suburb": "Annandale",
|
||||
"state": "NSW",
|
||||
"type": "record"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 111320,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 247,
|
||||
"sample": "random.Random(247) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "1383351",
|
||||
"artist": "Graham Parker",
|
||||
"title": "The Real Macaw",
|
||||
"price": 15.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a5/a5e17e1d42a8b0364a76c68ce5226e93b5e8fb91d3f5b874d7c98674a7a9b9b6.webp",
|
||||
"cover_sha256": "473cc49b2c14f52bce31fc735c1fc9e5b44c3b882bb6f6a0ea9ae968cc6d329a"
|
||||
},
|
||||
{
|
||||
"mint_id": "1449829",
|
||||
"artist": "Lewis Capaldi",
|
||||
"title": "Survive",
|
||||
"price": 59.98,
|
||||
"condition": "",
|
||||
"cover": "/img/19/19ab0c71f6629b1ac6623681c9b4bcca258610cfcdd10785fcccb9a8acf0cb4d.webp",
|
||||
"cover_sha256": "15e8797a6a85187a5b94f5a089b3c955ade756836ae44cc87a160c56352ea03f"
|
||||
},
|
||||
{
|
||||
"mint_id": "1501649",
|
||||
"artist": "Stefano Di Carlo",
|
||||
"title": "Eclissi",
|
||||
"price": 25.25,
|
||||
"condition": "",
|
||||
"cover": "/img/97/97cdc8918bab3da8d35f4b9e15b43f09f5e52d0e692dffe05288862f33cf0550.webp",
|
||||
"cover_sha256": "7fe773b5282b1beaa58f91d95e32fb31c8390d8a3f777225c60c9258f706f8d9"
|
||||
},
|
||||
{
|
||||
"mint_id": "1572697",
|
||||
"artist": "Peter Nero",
|
||||
"title": "The First Time Ever (I Saw Your Face)",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/38/388c26e4edc901c12df6a75f129bcd30101619849f6fd188984a63a19928e6ff.webp",
|
||||
"cover_sha256": "4b7e88ae7bd0587346f66b8dd7a3c5967d976715d880f0c4660852657c79dc2b"
|
||||
},
|
||||
{
|
||||
"mint_id": "1923720",
|
||||
"artist": "Couch Kids Antidote",
|
||||
"title": "Distasteful Character Assissination",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/6c/6c4a268fb6f807c7eae7e06ea177c2769b4ffef09df49f4eb700ebc0af8875f4.webp",
|
||||
"cover_sha256": "9348f916e6eff23380ce8ce207ee4e3e6052e5d6eb3c139156b8907336cc7d3e"
|
||||
},
|
||||
{
|
||||
"mint_id": "1954310",
|
||||
"artist": "Peter Blakeley",
|
||||
"title": "Crying In The Chapel",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/5e/5efde08c8fee915fb2bfa1801176cb435260bd9efb881c1e59eb217407d888f4.webp",
|
||||
"cover_sha256": "6e2cd5c775d7c2ab3de98f32f1a85c3cfc50a758519bc013a09df8118ca79049"
|
||||
},
|
||||
{
|
||||
"mint_id": "2638666",
|
||||
"artist": "Frank Tovey",
|
||||
"title": "Frank Tovey \u2013 Tyranny And The Hired Hand (VG+/VG+)",
|
||||
"price": 20.0,
|
||||
"condition": "",
|
||||
"cover": "/img/b1/b152c2d42551ced179ae0c46bfc1842cabbefec5cb7d68e38b7fc38e51023a72.webp",
|
||||
"cover_sha256": "e038c4127290295dacaed5f5a8288f921b232f9f8c8f87a52ed36ae652816b06"
|
||||
},
|
||||
{
|
||||
"mint_id": "3149798",
|
||||
"artist": "Animal Collective",
|
||||
"title": "Sung Tongs",
|
||||
"price": 67.0,
|
||||
"condition": "",
|
||||
"cover": "/img/0a/0a7ac56ba89d603b40b1d9e790948d7f17dccfb41d70fc7dca3648ef7c459b97.webp",
|
||||
"cover_sha256": "bb1be9ec044229a1653731cff6706051e99490edbad7167d62fbb605a0eb5334"
|
||||
},
|
||||
{
|
||||
"mint_id": "3151476",
|
||||
"artist": "The Replacements",
|
||||
"title": "All Shook Down",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/18/184dc78017d465d34d98f6b82d92b4e4bc3da83120366e8606fcf9b177878599.webp",
|
||||
"cover_sha256": "fb44a704f95eaf28e4e1cda5c48ea32163feffb4735f3db6d30e5281022a8eae"
|
||||
},
|
||||
{
|
||||
"mint_id": "3153341",
|
||||
"artist": "Smokie",
|
||||
"title": "Have You Ever Seen The Rain",
|
||||
"price": 55.0,
|
||||
"condition": "",
|
||||
"cover": "/img/4b/4b0e7344a6e75c04ee687cd5f613f3b0a3f2acbf995330263184273e840c82d9.webp",
|
||||
"cover_sha256": "2f4272e3987a9399d508543be6ab21af5f12746cc4d68b4d0137619006dbbb22"
|
||||
},
|
||||
{
|
||||
"mint_id": "3277109",
|
||||
"artist": "2Pac",
|
||||
"title": "Strictly 4 My N.I.G.G.A.Z...",
|
||||
"price": 140.0,
|
||||
"condition": "",
|
||||
"cover": "/img/68/6849f5e003740fb4564a869f2bc0055133d12e814f75aa0692d7b26deda64abf.webp",
|
||||
"cover_sha256": "5c9503dd85edd8df7040a63f586e4e07ba7d8241a6f9329598f2b35d06cd25fd"
|
||||
},
|
||||
{
|
||||
"mint_id": "3308281",
|
||||
"artist": "Faith No More",
|
||||
"title": "Introduce Yourself",
|
||||
"price": 9.95,
|
||||
"condition": "",
|
||||
"cover": "/img/20/2036577f50d3db1fd9c8f3a4279fc8ea80952c47ec098c3e2194719f00d59bac.webp",
|
||||
"cover_sha256": "0c7749de6af9d551cdcbb7578dd13dfe3a35d6318df373a2d4fb3aad18e0478a"
|
||||
},
|
||||
{
|
||||
"mint_id": "3415870",
|
||||
"artist": "Simon Joyner",
|
||||
"title": "Coyote Butterfly",
|
||||
"price": 45.95,
|
||||
"condition": "",
|
||||
"cover": "/img/a5/a537149ba3b52616df1ee9d478f6ab109b431ade302111169ded6df4b9b04e32.webp",
|
||||
"cover_sha256": "edd3e53ef94ce8c7eb613aeec200a2a72c396881ea46bcfb4b24933e43445262"
|
||||
},
|
||||
{
|
||||
"mint_id": "5943968",
|
||||
"artist": "Midnight Oil",
|
||||
"title": "Armistice Day: Live At The Domain, Sydney",
|
||||
"price": 27.99,
|
||||
"condition": "",
|
||||
"cover": "/img/e4/e468090b8d767b5f6b842c3e1e48b9048260d99bf86cdb0864ff557352595f20.webp",
|
||||
"cover_sha256": "63a57eff6be9e2ff18d8b98201581abe99e9da0fbc1d74e1dfbc4446547bac84"
|
||||
},
|
||||
{
|
||||
"mint_id": "6010664",
|
||||
"artist": "Bob Dylan",
|
||||
"title": "The Freewheelin' Bob Dylan",
|
||||
"price": 48.0,
|
||||
"condition": "",
|
||||
"cover": "/img/1f/1fdb214e0a3b6536f3924708de79625e5425a9ec266af68e8f9e95c19d6f4dbe.webp",
|
||||
"cover_sha256": "ef6f7e2d422a60343ecdb809ce8d1fbc1dec9ae7796b8e29795dae0c3cd3bd7b"
|
||||
},
|
||||
{
|
||||
"mint_id": "6537917",
|
||||
"artist": "Metallica",
|
||||
"title": "The Videos 1989 - 2004",
|
||||
"price": 9.95,
|
||||
"condition": "",
|
||||
"cover": "/img/a5/a5848b431ae941a385374327e051650020fea1af05992ea8658d83eefcfb6411.webp",
|
||||
"cover_sha256": "5682f8419fb07519a902c4b987ad2bb0b519be5bc873e9b09452d9d88795d6d9"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_2506_toy.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 2506,
|
||||
"slug": "toys-and-tales",
|
||||
"name": "Toys and Tales",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "toy"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 103530,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2506,
|
||||
"sample": "random.Random(2506) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "9361",
|
||||
"artist": "Computer Game",
|
||||
"title": "Fashion Factory For The Sims 2 Orange",
|
||||
"price": 3.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c7/c76b30530cd4894ae352be888a9cc2cf55579d2bcc5b7317ee8c054d6cb2283b.webp",
|
||||
"cover_sha256": "318d9e6db165e5bb80c703f31ba091a64ad8e3907f8f4c45d33fc5f17bc95949"
|
||||
},
|
||||
{
|
||||
"mint_id": "12503",
|
||||
"artist": "Lominger International",
|
||||
"title": "Lominger International The Leadership Architect Red",
|
||||
"price": 79.0,
|
||||
"condition": "",
|
||||
"cover": "/img/51/51c80586a815d73574af47aa1b6ce2478428c1edd55a4383bfec597656b68ec1.webp",
|
||||
"cover_sha256": "76edc00524694489a583d2778993d975c2f9eb308d0e9ed72bd23f5932140e47"
|
||||
},
|
||||
{
|
||||
"mint_id": "15800",
|
||||
"artist": "Generic",
|
||||
"title": "Generic Book Ends With Money Box",
|
||||
"price": 5.0,
|
||||
"condition": "",
|
||||
"cover": "/img/65/65d3a21975499b28db38ebfe111b705e7865d3b0be99814d861f2ccf8b778b14.webp",
|
||||
"cover_sha256": "c1214ba2d266429da544bb832a3d9e0f393d2d31e381a3756ed4b79c6200681b"
|
||||
},
|
||||
{
|
||||
"mint_id": "54954",
|
||||
"artist": "Sony",
|
||||
"title": "Tom Clancy's Rainbow Six Vegas Playstation 3 (PS3)",
|
||||
"price": 6.0,
|
||||
"condition": "",
|
||||
"cover": "/img/74/74213ac784897a524b7ab82007b6748c2eb385576231f635e3b543957473d423.webp",
|
||||
"cover_sha256": "8e5f299280ee12ff400b4b851428701daeabc794c1517b71b1f2a5f23e39f2af"
|
||||
},
|
||||
{
|
||||
"mint_id": "122102",
|
||||
"artist": "Funko",
|
||||
"title": "Funko Eivor",
|
||||
"price": 7.0,
|
||||
"condition": "",
|
||||
"cover": "/img/f3/f3b1e24ce1389dddd6f7a2772636a8f1ad99f62aae9a74254575c05187182af2.webp",
|
||||
"cover_sha256": "059b04ffe5583a0f9ddcb42bc3d278e1b53d9b3f590ee20c791c4fd5dd9c89dc"
|
||||
},
|
||||
{
|
||||
"mint_id": "309175",
|
||||
"artist": "Microsoft",
|
||||
"title": "Assasins Creed Black Flag Xbox 360",
|
||||
"price": 5.0,
|
||||
"condition": "",
|
||||
"cover": "/img/02/02c464c486c57afb618758401535b75c14592ffb4254a48a1ee2e49b600e6c3e.webp",
|
||||
"cover_sha256": "4cd9ea1588caeb315092d427bf30f3a9259c74710f6de4e200d4e7c005288481"
|
||||
},
|
||||
{
|
||||
"mint_id": "408285",
|
||||
"artist": "Nintendo",
|
||||
"title": "Pokemon Legends Za Nintendo Switch",
|
||||
"price": 69.0,
|
||||
"condition": "",
|
||||
"cover": "/img/9f/9fc8d6e1d157632750afe80587ec291a0d8cfca7baf46e44f74170d5f61d03ea.webp",
|
||||
"cover_sha256": "249f70388e11675a7e25bfcda8ed6c5bbd49dacadb0383bb1d287efe7624b63d"
|
||||
},
|
||||
{
|
||||
"mint_id": "418917",
|
||||
"artist": "Funko",
|
||||
"title": "Funko Black Adam 1232 Funko Pop Figure",
|
||||
"price": 8.84,
|
||||
"condition": "",
|
||||
"cover": "/img/f5/f539c714858ec0e9e881e4d13c6e65992a2ff143a297bf562ace929deb477ae6.webp",
|
||||
"cover_sha256": "9d5b53ecdf6b90929c18f4f968fa95644d3d2ed7042dd08588e8e38f5a718f87"
|
||||
},
|
||||
{
|
||||
"mint_id": "494201",
|
||||
"artist": "Microsoft",
|
||||
"title": "Battlefield 2042 Xbox One",
|
||||
"price": 5.0,
|
||||
"condition": "",
|
||||
"cover": "/img/6b/6bb96af151a316c7a96a3db6f233f6e563ac5db5d465ff6054de0b0e12507330.webp",
|
||||
"cover_sha256": "d58f5b929e8ad4d4fcd997234bd30ce82e6e1af57a8dd31cd7c2c670e5656977"
|
||||
},
|
||||
{
|
||||
"mint_id": "508371",
|
||||
"artist": "Sony",
|
||||
"title": "Sony Playstation 5 (PS5) White",
|
||||
"price": 75.0,
|
||||
"condition": "",
|
||||
"cover": "/img/32/322b224ec52694dc954d8b3d38f3012d23b8f8bb71d43c5af3b9df59861e06f5.webp",
|
||||
"cover_sha256": "97fa6231f51d15d69870fb9723f242b0fb81b5693a53acc9439a537b4d3084bc"
|
||||
},
|
||||
{
|
||||
"mint_id": "587671",
|
||||
"artist": "Microsoft",
|
||||
"title": "Destiny 2 Xbox One",
|
||||
"price": 2.0,
|
||||
"condition": "",
|
||||
"cover": "/img/62/62f668a8ca577df9b829726b24f8d7fb9f53e12d2d5386c680bdc9edb5e2b93e.webp",
|
||||
"cover_sha256": "badb04ec6a53c7448c47b4298ebe8df8ba1513f61d046872c3a5526f80be4c00"
|
||||
},
|
||||
{
|
||||
"mint_id": "5922574",
|
||||
"artist": "STORY OF SEASONS",
|
||||
"title": "STORY OF SEASONS: Grand Bazaar",
|
||||
"price": 84.0,
|
||||
"condition": "",
|
||||
"cover": "/img/de/de779ee1d218a78bbf750f66d95c72052fa78aa0dfaf58a46b0521e134aec19c.webp",
|
||||
"cover_sha256": "0cc940258c5bf22c2d13fda3e42b2c225017cc204b484da9843e05ed56c21021"
|
||||
},
|
||||
{
|
||||
"mint_id": "6731996",
|
||||
"artist": "Titan Comics",
|
||||
"title": "Little Nightmares: Descent to Nowhere #4 Stokely Cover",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/92/92c9e06b06da9aceec814cee0716a0c72e094d46d2efd7f13e891f12ea68382f.webp",
|
||||
"cover_sha256": "c048b53fcc37eb4239c0e18fb3d2267b7cac3c82005de1740768fe26070b0718"
|
||||
},
|
||||
{
|
||||
"mint_id": "6857889",
|
||||
"artist": "Magic: The Gathering",
|
||||
"title": "Gorma, the Gullet (Borderless) [Commander: Secrets of Strixhaven]",
|
||||
"price": 6.5,
|
||||
"condition": "",
|
||||
"cover": "/img/7d/7dbe757976ebf284360735eabd7f1775c6b4491b38e76bab6818a82865f7ce2a.webp",
|
||||
"cover_sha256": "4c606591fbb3c3a680b675e242692662bbb7640be795f6d02b2727d8d9b8cca8"
|
||||
},
|
||||
{
|
||||
"mint_id": "7229680",
|
||||
"artist": "Razer",
|
||||
"title": "Razer Cynosa Chroma BlackKeyboard - GamingCairns, QLD",
|
||||
"price": 29.95,
|
||||
"condition": "",
|
||||
"cover": "/img/85/855f2f00f6556093e51ae9d975f30056f6a3a5fdc5a59795b1afde5d6a437d94.webp",
|
||||
"cover_sha256": "01cda7d41f70fa2705486a80142946c1ec9849c7149a34f88b402213b7a37790"
|
||||
},
|
||||
{
|
||||
"mint_id": "7267697",
|
||||
"artist": "Jada",
|
||||
"title": "Jada Ultra Street Fighter 2 The Final Challengers M. Bison BlackToyMorley, WA",
|
||||
"price": 129.0,
|
||||
"condition": "",
|
||||
"cover": "/img/6e/6e6880e2f35bb8e712bae8503f5fc4d6d23d2755560104fa9e8f8917d3c1ef66.webp",
|
||||
"cover_sha256": "66fba64f4a5d2f18c9734823eeeb65b857bac2d543ac0a5cce5d7618b9c7a8b9"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_608_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 608,
|
||||
"slug": "goulds-books",
|
||||
"name": "Goulds Books",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 608,
|
||||
"sample": "random.Random(608) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "757983",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "World table - The Australian Women's Weekly - BCOO - BOO052A",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ac/ace0938ba44f8e81d41082bd871c1161fd6395abe365baccc5e699dfe3df2681.webp",
|
||||
"cover_sha256": "a76b0703dfc0cfe6874e6a2356ab3bb88f51f73d4ace1450e433b93e3b571544"
|
||||
},
|
||||
{
|
||||
"mint_id": "1932075",
|
||||
"artist": "Brandon Stosuy",
|
||||
"title": "Stay Inspired : Finding Motivation for Your Creative Work - Brandon Stosuy",
|
||||
"price": 25.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ad/addcab851935b0a57c54b7f65365621c6f176afb83719a7a76cb3634ded83f7c.webp",
|
||||
"cover_sha256": "4e33ec28b3999d8a1c2f500371ce16d4939f10ab832701c3125f29bbe743da50"
|
||||
},
|
||||
{
|
||||
"mint_id": "1933916",
|
||||
"artist": "Monocle",
|
||||
"title": "Monocle Guide to Shops, Kiosks and Markets",
|
||||
"price": 85.0,
|
||||
"condition": "",
|
||||
"cover": "/img/65/651c3662466cb8f3bd33a3e6611315a150d9c5b0f6880608f28bd1f34a248a84.webp",
|
||||
"cover_sha256": "60cb2bb9f732dd279bac87b090967d5f9dcf936a5ca8f69a061dbb0b9b5d257a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6109669",
|
||||
"artist": "TTTISM, Nick Schonberger",
|
||||
"title": "TTT : Tattoo - Nick Schonberger",
|
||||
"price": 110.0,
|
||||
"condition": "",
|
||||
"cover": "/img/57/574544194726c90e9db88686191e1ceaff2d8b525349dc06572691e412c57619.webp",
|
||||
"cover_sha256": "a995ace6f2071371141acf661d04a9bc2b9ecbf53ca62b0b88e8931524bafaa7"
|
||||
},
|
||||
{
|
||||
"mint_id": "6306539",
|
||||
"artist": "HACHETTE LIVRE NZ",
|
||||
"title": "MOKUMOKUREN | THE SUMMER HIKARU DIED, VOL. 3",
|
||||
"price": 29.99,
|
||||
"condition": "",
|
||||
"cover": "/img/39/39a47170fe16813a50ecad36f662501d8891558d219d6d7c8906156671f612b3.webp",
|
||||
"cover_sha256": "c86bd2d5ebfb295bfd46222a9617486deff90d27accd9bfefc2ee54cb975ef68"
|
||||
},
|
||||
{
|
||||
"mint_id": "6962465",
|
||||
"artist": "NewSouth Publishing",
|
||||
"title": "David Jones : 175 Years",
|
||||
"price": 175.0,
|
||||
"condition": "",
|
||||
"cover": "/img/d6/d63f9299cb61f5a7bfb8a67010c7916066d343a1ad942a11a8bcecdfc5a7f329.webp",
|
||||
"cover_sha256": "3c356fe9ce237828975bb3afb1f566143cea152696ff63423aba8d990e39fbfa"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963671",
|
||||
"artist": "Penguin Random House",
|
||||
"title": "My Amalfi Coast",
|
||||
"price": 39.99,
|
||||
"condition": "",
|
||||
"cover": "/img/6f/6ff81b80d0ced7ee2ef47cef5225d3c207bc86e6188ccdfc4f70a3ab5afa24fe.webp",
|
||||
"cover_sha256": "dd9dcd3ba5d4aaeb5d1f4bd05ee2a3c6a65a0374aed81fb72c180f853d9431ff"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963722",
|
||||
"artist": "GMC Distribution",
|
||||
"title": "Crocheted Accessories",
|
||||
"price": 29.99,
|
||||
"condition": "",
|
||||
"cover": "/img/01/01a6800024c350f12183fcc414c624a20ce197e856b62ba8649a7b7128d4ba19.webp",
|
||||
"cover_sha256": "f4fe05f13bf71043e327b58cecb1313e41b94d52f480fb5ef86664bba2c440d7"
|
||||
},
|
||||
{
|
||||
"mint_id": "6964521",
|
||||
"artist": "Sirrocco-Parkstone International",
|
||||
"title": "1000 Monuments of Genius",
|
||||
"price": 1000.0,
|
||||
"condition": "",
|
||||
"cover": "/img/7e/7ef563ba157eed5d7cc36cf71009073e9ba79b1afe5b5496346a9d222e33d611.webp",
|
||||
"cover_sha256": "ddf38409be733de111a28d874ff506a4f82afd926d7eb49c186bca7482ca8a03"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965023",
|
||||
"artist": "Manna Trading Pty Ltd",
|
||||
"title": "Grafting and Budding for Australian Gardeners",
|
||||
"price": 29.95,
|
||||
"condition": "",
|
||||
"cover": "/img/93/934e9fd8fc75325cf1ebf2c8ff8f40bc7c1c1175e3967da313101fbb64046ad2.webp",
|
||||
"cover_sha256": "a4af5612139bdae39116873df50290d8e4f82f1406115c2079863e4ec3fc98f6"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965459",
|
||||
"artist": "David & Charles",
|
||||
"title": "Sashiko 365: Stitch a New Sashiko Pattern Every Day",
|
||||
"price": 365.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c2/c2a155ad3dc42a7e38708cbcd43e93354e103f0a7f0946e85752a3dc064ee5e8.webp",
|
||||
"cover_sha256": "8ff454026e58e54537bb63cb7f455dfce0765f88b9c095e65924203eba91350d"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966582",
|
||||
"artist": "Jacqui Small",
|
||||
"title": "The Quintessential Grooming Guide for the Modern Ge",
|
||||
"price": 39.99,
|
||||
"condition": "",
|
||||
"cover": "/img/cb/cb19bac8b0b0ac46034a5728166e4f8ec18e118501000f9d09ec787a6082324b.webp",
|
||||
"cover_sha256": "345110caa571a0e181074181445b128845a3125c557b155d3279ae9fd90106c7"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966740",
|
||||
"artist": "Fremantle Press",
|
||||
"title": "A Place in the Country: A Guide to Creating your Pa",
|
||||
"price": 49.99,
|
||||
"condition": "",
|
||||
"cover": "/img/60/605a479f9f4b0f32ab9026a1afe040a684ed8af3304a5c61dc0a5bbef866edec.webp",
|
||||
"cover_sha256": "be3a1c56e82c88f62cb7a0e90ccd1e6988138921292921574557b4d6041d5b5a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6967976",
|
||||
"artist": "Thames & Hudson Australia Pty Ltd",
|
||||
"title": "Tiwi in Paris",
|
||||
"price": 26.99,
|
||||
"condition": "",
|
||||
"cover": "/img/9d/9d7ccca33e2451c6522af8d42e5f0bd0c5b4f8d1241aeae28276649613b929df.webp",
|
||||
"cover_sha256": "c13e973c38ce4199c627250e43c8c7483c83f3d0737a682971e43b3f68153419"
|
||||
},
|
||||
{
|
||||
"mint_id": "6968969",
|
||||
"artist": "Quarto US",
|
||||
"title": "The Ultimate Bushcraft Survival Pack: Tips, Tools,",
|
||||
"price": 39.99,
|
||||
"condition": "",
|
||||
"cover": "/img/01/01fec50a9c60f7b5da220934aaca1cbf0f8b66c87e187c84fe4483c51a3b83fe.webp",
|
||||
"cover_sha256": "9645a32cdc6a8a2d3e18058b917ad792875cf1f428100a54babad9a0296b11bc"
|
||||
},
|
||||
{
|
||||
"mint_id": "6999820",
|
||||
"artist": "Korimco",
|
||||
"title": "Dingo Puppet (Lil Friends)",
|
||||
"price": 34.99,
|
||||
"condition": "",
|
||||
"cover": "/img/02/021a18c34f3f2e8597cfb58cb899528cd5030c591ac9478ebb4740a443531fa1.webp",
|
||||
"cover_sha256": "3c08e5fead3f217c9a00a131918cfcbc08ce7a12eb23622122976bcc8b8cd07b"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_717_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 717,
|
||||
"slug": "co-op",
|
||||
"name": "Co-op",
|
||||
"suburb": "Glebe",
|
||||
"state": "NSW",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 717,
|
||||
"sample": "random.Random(717) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "822558",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Bookery Cook - Jessica Thompson, Georgia Thompson, Maxine Thompson - BCOO - BOO043",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/3e/3e3713560ee9ee7fde773d14ca831b3dd92693b5ca2b018cfe88a379a9d200f7.webp",
|
||||
"cover_sha256": "2287b2872062d1c0827e77d080ea536629605223c6bcef56cd29cff31be93adc"
|
||||
},
|
||||
{
|
||||
"mint_id": "824813",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "QCE Biology: Units 3 & 4 - BTEX - BOO038",
|
||||
"price": 12.0,
|
||||
"condition": "",
|
||||
"cover": "/img/9e/9e9507e4a839e2f847510eac9938fa6d556f0768a7cbc36bb4b15f0df5c5ab37.webp",
|
||||
"cover_sha256": "1d9329bad1e32684e88065d63cff24bfe24c0bcb6ef5ec02365d8a56cc8bddad"
|
||||
},
|
||||
{
|
||||
"mint_id": "829668",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Death in the Arctic - Tom Hindle - BPAP - BOO017",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/e4/e4afcfaeb3a42a4854858840cf2e7eb1e91d3845b659d8436445d83442c7d674.webp",
|
||||
"cover_sha256": "08da37f6987ddf3c6ab906fecf38100089a087f5d3643bbbf7f47c361ab789b9"
|
||||
},
|
||||
{
|
||||
"mint_id": "831472",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Absolute Power - David Baldacci - BPAP - BOO022",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/9d/9d43ef1a480e273c41897ac990572471297f32ef5dcf9991a7fa94997c430ca6.webp",
|
||||
"cover_sha256": "8af7c752c7c42435a0a2469bade3ef5d43740bafbeee14e251917285b6274043"
|
||||
},
|
||||
{
|
||||
"mint_id": "3267613",
|
||||
"artist": "Rock-Pop-Alt",
|
||||
"title": "Rolling Stones \u2013 All The Songs: The Story Behind Every Track By Philippe Margotin & Jean-Michel Guesdon Hardcover Book (2016)",
|
||||
"price": 90.0,
|
||||
"condition": "",
|
||||
"cover": "/img/4b/4bfdec0f95d90afb76af74b57c9a04f0f06a074e5eff044cb0af52096f57f139.webp",
|
||||
"cover_sha256": "03a58cf1fd78a9d502a70d5574dfd43e4b8b4ac704060404b7db14019dad65c0"
|
||||
},
|
||||
{
|
||||
"mint_id": "6728479",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"title": "Spellcaster - an intense enemies-to-lovers romantasy with steamy heat, magical creatures, fast pacing, and stakes that will keep you hooked.Dive into a world where love is as dangerous as power -- and nothing is ever as it seems. Pre-order now.",
|
||||
"price": 32.99,
|
||||
"condition": "",
|
||||
"cover": "/img/50/5097e687651a2109b3c325f2239784d834dbd621ef4f425b8b356e0c18e4899c.webp",
|
||||
"cover_sha256": "c358f03b48fb894e5784aa4a65bc23bf0c0bd93e4ff8924c1e816e926e31bb3f"
|
||||
},
|
||||
{
|
||||
"mint_id": "6728802",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"title": "The Double Dangerous Book For Boys",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/97/9719f12de67ac2ff4cdc3a49cb2430dab34175becee6285b9cb1bddfce034422.webp",
|
||||
"cover_sha256": "b97890acfd2c617bc0b1fef89c8ca0c5e393d0529be0ec861c9cbef7e7591419"
|
||||
},
|
||||
{
|
||||
"mint_id": "6729273",
|
||||
"artist": "SCHOLASTIC AUSTRALIA PTY LTD",
|
||||
"title": "Every Thing We Keep (Revised Edition)",
|
||||
"price": 18.99,
|
||||
"condition": "",
|
||||
"cover": "/img/1a/1a52115b5562b0f07d2255764cce3aa7f79e9f7d7b005f6e045b53c72176982e.webp",
|
||||
"cover_sha256": "ea946863a8e87b59f68713d164ce43bfc8565592ebf22574a956858bcb54a66a"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963103",
|
||||
"artist": "Gibbs Smith, Publisher",
|
||||
"title": "Make Yourself at Home - A Guide to Decorating with",
|
||||
"price": 60.0,
|
||||
"condition": "",
|
||||
"cover": "/img/9b/9bd903c0528c37ac306dc23b32152d4ed77783b4e6ead9f87cb9fbea535bfc38.webp",
|
||||
"cover_sha256": "631fb35f62ded573ec61f2109b4e89c02645712450cefc4a41993e675e04ba38"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963297",
|
||||
"artist": "Quadrille Publishing Ltd",
|
||||
"title": "Liberty Book of Simple Sewing - A Collection of 25",
|
||||
"price": 25.0,
|
||||
"condition": "",
|
||||
"cover": "/img/df/df37bfcd20d3978d629b628d7dbcb80288006253045e3c1ef99cc842e25ad339.webp",
|
||||
"cover_sha256": "4a0c206f71bbb40575ea0b235eba3a27c26abea118cbb74a1c793219fcb507e5"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965982",
|
||||
"artist": "Thames and Hudson Ltd",
|
||||
"title": "The Artists' Colour Box",
|
||||
"price": 36.99,
|
||||
"condition": "",
|
||||
"cover": "/img/e5/e5df65d0490c9b91456784d68d5a2ae48b53d00fd03c3e26e56efc9c50db16a4.webp",
|
||||
"cover_sha256": "be6888e9a23098cefac2198fa14d61d118cee94c3642f256ae28984f3c239b1f"
|
||||
},
|
||||
{
|
||||
"mint_id": "6968195",
|
||||
"artist": "Taschen",
|
||||
"title": "Erotica Universalis",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/95/95091ad5b6cdad98684c161fefe425a17fdc97ce43268869ed44fa1daf734f33.webp",
|
||||
"cover_sha256": "e1fd0d3dcca7571d16ddebd501824c3fd761608a80c0521fe2d03bbaaefb18fa"
|
||||
},
|
||||
{
|
||||
"mint_id": "7004444",
|
||||
"artist": "Rizzoli International Publications, Incorporated",
|
||||
"title": "Tamsin Johnson: Contrast, Space, Harmony",
|
||||
"price": 145.0,
|
||||
"condition": "",
|
||||
"cover": "/img/23/23ca5ea9bfba4a6ada3048cc898e6159b52d3965167c4165f2b1b2872369ae27.webp",
|
||||
"cover_sha256": "2ec6d2c6b84ca0d0c03c0ec848c198cd9801a66fe77c405dfc17c9c09fb73bd9"
|
||||
},
|
||||
{
|
||||
"mint_id": "7035606",
|
||||
"artist": "Michelle Tea",
|
||||
"title": "SLUTS: An Anthology",
|
||||
"price": 32.99,
|
||||
"condition": "",
|
||||
"cover": "/img/c0/c0f4d005cfb96d69f5f96c21ce65406315bcbfde559673370bef0480cf7041fb.webp",
|
||||
"cover_sha256": "72ab5f8a92ad4c374ddb014cf86b59d88a3ad901d962d27fc4dd2300798fa207"
|
||||
},
|
||||
{
|
||||
"mint_id": "7035682",
|
||||
"artist": "Elly Griffiths",
|
||||
"title": "The Postscript Murders (DS Harbinder Kaur Book #2)",
|
||||
"price": 22.99,
|
||||
"condition": "",
|
||||
"cover": "/img/65/65c4b2ab4515e9edb3ff9180d101e3f0fd3da121a2a1bc048dc2591dc9947496.webp",
|
||||
"cover_sha256": "8977168f1e1939d973ed840891aaddac895f11510555394956c8ea72672572a5"
|
||||
},
|
||||
{
|
||||
"mint_id": "7035751",
|
||||
"artist": "Claudia Cravens",
|
||||
"title": "Lucky Red",
|
||||
"price": 24.99,
|
||||
"condition": "",
|
||||
"cover": "/img/81/811c4f096e9d52dcf298f90fb2e0df1aca8dd6272e5942abbe7c58fa01ea8f2f.webp",
|
||||
"cover_sha256": "93328ec73724607a19d28f6a1825d28192075b95fc7e9b8143bf706a10f1ceb1"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_767_toy.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 767,
|
||||
"slug": "presents-of-mind",
|
||||
"name": "Presents of Mind",
|
||||
"suburb": "Paddington",
|
||||
"state": "QLD",
|
||||
"type": "toy"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 103530,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 767,
|
||||
"sample": "random.Random(767) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "41771",
|
||||
"artist": "Panini",
|
||||
"title": "Panini NBA Prizm Rookie Card Joel Embiid 76Ers Silver",
|
||||
"price": 39.0,
|
||||
"condition": "",
|
||||
"cover": "/img/50/50bd880dd2513a82588e77a3aa1c45a8e9e02d5fd330ff3653508a878ed9447d.webp",
|
||||
"cover_sha256": "60aba06dbfa21eba53eb8802e3faaa0989c6d18ba5057782152cd93579fd16cb"
|
||||
},
|
||||
{
|
||||
"mint_id": "41875",
|
||||
"artist": "Funko",
|
||||
"title": "Funko Pop! Heroes Wonder Woman (2018 Fall Convention Exclusive Limited Edition)",
|
||||
"price": 39.0,
|
||||
"condition": "",
|
||||
"cover": "/img/5c/5ca2bc808e7ef45ad5b7306621637640fbbe61ebb52bf28052c26b4979616fb8.webp",
|
||||
"cover_sha256": "2779f480de7748a7151c0d52a784b21cdc62cf29b5717e549d0f40ae4a368b1f"
|
||||
},
|
||||
{
|
||||
"mint_id": "69556",
|
||||
"artist": "Sony",
|
||||
"title": "Ufc 2 Playstation 4 (PS4)",
|
||||
"price": 9.0,
|
||||
"condition": "",
|
||||
"cover": "/img/60/60933e4f325dd554b5b3f8f46f34cbedbd79b093d46bfc40d339e2768e236c4d.webp",
|
||||
"cover_sha256": "3f0ffb779aeb94a060fcf5c0cd411ce130846350caf9e2cfdc55c2c20387b597"
|
||||
},
|
||||
{
|
||||
"mint_id": "169013",
|
||||
"artist": "Marvel",
|
||||
"title": "Marvel Cyborg Spider-Man",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/00/0075f2ce7c73ad06aacc4ffd106deb5396d8706cb4f42b9b4a78a3146f93f380.webp",
|
||||
"cover_sha256": "75ec68b6784dd7f96fd85eae306c30484ce1a9a53604c08fd9c5eab5022d543d"
|
||||
},
|
||||
{
|
||||
"mint_id": "331293",
|
||||
"artist": "Microsoft",
|
||||
"title": "Microsoft Xbox One X 1TB 1787 White",
|
||||
"price": 199.0,
|
||||
"condition": "",
|
||||
"cover": "/img/7b/7babd19a1a271919236c5a8c5a18419c3b9895b13752ec94ffdca7b29fc09366.webp",
|
||||
"cover_sha256": "ea8ef16b7fab56cd2f77fcdc9a9fa4479115245d3cae2ee839c149cbc764b18d"
|
||||
},
|
||||
{
|
||||
"mint_id": "401046",
|
||||
"artist": "Sony",
|
||||
"title": "Call Of Duty Black Ops Playstation 3 (PS3)",
|
||||
"price": 5.0,
|
||||
"condition": "",
|
||||
"cover": "/img/0a/0ae26d43b8dd89c8500ee9785aac8644f66ab5f0437a94cb702216b7cdaf9e8f.webp",
|
||||
"cover_sha256": "cf90f963fde7d5adea8673040fcedf7e65dfa733aa12828be49baa3cb1a83798"
|
||||
},
|
||||
{
|
||||
"mint_id": "404220",
|
||||
"artist": "Pop! Movies",
|
||||
"title": "Pop! Movies Harley Quinn",
|
||||
"price": 30.0,
|
||||
"condition": "",
|
||||
"cover": "/img/28/287da5b65a4699efc6ced5c228ebd3fe94b8624116483bba80ecc8316d6a9dc3.webp",
|
||||
"cover_sha256": "72cf5a77dcf4af65a9158763f54d271c336d65182d5f5ed2b1c327b33ec06866"
|
||||
},
|
||||
{
|
||||
"mint_id": "495340",
|
||||
"artist": "Sony",
|
||||
"title": "Battlefield 2042 Playstation 4 (PS4)",
|
||||
"price": 9.0,
|
||||
"condition": "",
|
||||
"cover": "/img/23/23c76fd8fbbc0597ed2f349b5f0c4afc92b283eaa3cc34f94f4e94ec61b71476.webp",
|
||||
"cover_sha256": "51604bcab044a7777879b7ea3b23b6f19a3f4b80d9b75b11528b3cad2fa9f323"
|
||||
},
|
||||
{
|
||||
"mint_id": "519277",
|
||||
"artist": "Usa",
|
||||
"title": "Usa 1 Oz American Eagle Silver Bullion Coin Silver",
|
||||
"price": 159.0,
|
||||
"condition": "",
|
||||
"cover": "/img/8a/8af4423553e212361ba09b623c8eb7e6ba68cbede4707e858f32ca88873a5467.webp",
|
||||
"cover_sha256": "af32bc8c8ec3838dba0545894fec3b2e7eba3f54c1a144c2206e24e0d690596e"
|
||||
},
|
||||
{
|
||||
"mint_id": "532131",
|
||||
"artist": "Microsoft",
|
||||
"title": "Halo 3 Xbox 360",
|
||||
"price": 6.0,
|
||||
"condition": "",
|
||||
"cover": "/img/1a/1acf99f6099c43ab59847bb73354507712c964d817a6ca18544b8e7affbdc4f8.webp",
|
||||
"cover_sha256": "e386f0791b236f04962fe269d75cdeef2614e9f544448543573abfbb03b8b95d"
|
||||
},
|
||||
{
|
||||
"mint_id": "537456",
|
||||
"artist": "Nintendo",
|
||||
"title": "Knife Edge (Jpn) Nintendo 64 (N64)",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c5/c5e565014894fa8b63dc7a90252edc615219ca64d28944ceb3ba295e87f88913.webp",
|
||||
"cover_sha256": "e9420422b685329174861bba132c4754b59ae2eca482b83d2941ed2f78acd263"
|
||||
},
|
||||
{
|
||||
"mint_id": "5912643",
|
||||
"artist": "NOSTALGIC ART",
|
||||
"title": "Nostalgic-Art Round Ducati Moto Servizio Decorative Sign Plaque 35x35x0.5cm",
|
||||
"price": 36.0,
|
||||
"condition": "",
|
||||
"cover": "/img/29/29b5c978c42ca2619467c5c314f8d2ba4f71bef3616f4a7c1c056732dca7d6d4.webp",
|
||||
"cover_sha256": "4d6d00ee03306d14d450a9747e975db62cd81ca8629e7e87f33b31702ea984f0"
|
||||
},
|
||||
{
|
||||
"mint_id": "6504005",
|
||||
"artist": "Ribtex",
|
||||
"title": "Ribtex UV Resin",
|
||||
"price": 5.95,
|
||||
"condition": "",
|
||||
"cover": "/img/25/25288f61e6f360a9df08bd9a8db41be3221432b8374e6ac0c6c4502d8468a95f.webp",
|
||||
"cover_sha256": "b35666f3a06cfb3c6328c99519c6eef745608493a79be0168a78778d153491f9"
|
||||
},
|
||||
{
|
||||
"mint_id": "6515920",
|
||||
"artist": "VELVET UNDERGROUND",
|
||||
"title": "Velvet Underground - Andy Warhol",
|
||||
"price": 75.0,
|
||||
"condition": "",
|
||||
"cover": "/img/fd/fdf293000655801074dd3391ca13a2592f6c679dfbd232548e6daabdb6b55f55.webp",
|
||||
"cover_sha256": "16a849cccfeed4f06732bb7a812557be83518dbf41aa15dbcb1f6bfb43de6646"
|
||||
},
|
||||
{
|
||||
"mint_id": "6811007",
|
||||
"artist": "TRUMPETER",
|
||||
"title": "TRUMPETER 1/35 CH-47D Chinook",
|
||||
"price": 170.99,
|
||||
"condition": "",
|
||||
"cover": "/img/b9/b9d511f3aa6869770299276f7739973a44d0be9c44d0053568b42eea296f3689.webp",
|
||||
"cover_sha256": "8cefdb6f9796825bcb7e99fb9ec68573018e318d365b70c1ee5980e23204761c"
|
||||
},
|
||||
{
|
||||
"mint_id": "6858956",
|
||||
"artist": "WizKids",
|
||||
"title": "D&D Booster Brick: Icons of the Realms - Baldurs Gate Descent into Avernus (8)",
|
||||
"price": 169.0,
|
||||
"condition": "",
|
||||
"cover": "/img/30/30da48e6d5cbec1ad8d62a85b183bfa308c64c0b8425a4aee223887a8c728af3.webp",
|
||||
"cover_sha256": "930dc3d5917fbf260e42ee75e62e6eee5d11000b102bb57093a67e7e6df31125"
|
||||
}
|
||||
]
|
||||
}
|
||||
182
pipeline/_godverse/mint_885_book.snapshot.json
Normal file
@ -0,0 +1,182 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"shop": {
|
||||
"godverse_id": 885,
|
||||
"slug": "scrumptious-reads-book-store",
|
||||
"name": "Scrumptious Reads Book Store",
|
||||
"suburb": "Ashgrove",
|
||||
"state": "QLD",
|
||||
"type": "book"
|
||||
},
|
||||
"counts": {
|
||||
"pool": 19707,
|
||||
"baked": 16,
|
||||
"dropped": {
|
||||
"file_missing": 0
|
||||
}
|
||||
},
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 885,
|
||||
"sample": "random.Random(885) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"mint_id": "829641",
|
||||
"artist": "Lifeline Queensland",
|
||||
"title": "Worthy Opponents - Danielle Steel - BPAP - BOO018",
|
||||
"price": 8.0,
|
||||
"condition": "",
|
||||
"cover": "/img/63/6357f6cad903a31d40a88f38dcef722a84a02047f3b44422db89e4b711f02833.webp",
|
||||
"cover_sha256": "48e7c1b2ca5bd9af2300c6b1bf7cea4787a07557348ef83953d141cc81882ead"
|
||||
},
|
||||
{
|
||||
"mint_id": "1903008",
|
||||
"artist": "Lonely Planet",
|
||||
"title": "Lonely Planet's Travel Journal - Pink",
|
||||
"price": 33.0,
|
||||
"condition": "",
|
||||
"cover": "/img/3e/3e2d5517a0d8a2e5d0bccfc6bff9d46a8240258d0a5f47ac9f82221af98b3825.webp",
|
||||
"cover_sha256": "0a84527648555dacd88d7fe1b74ccaf5517f33b793ae47948f4b580f99dfd257"
|
||||
},
|
||||
{
|
||||
"mint_id": "1925211",
|
||||
"artist": "Jack Mitchell",
|
||||
"title": "Aqua Nullius - Jack Mitchell",
|
||||
"price": 85.0,
|
||||
"condition": "",
|
||||
"cover": "/img/a7/a760d44135e4b656ca05980a963d34112f1f92c8632f74c7688b3e1bc8dc631d.webp",
|
||||
"cover_sha256": "a6e6e525b5188bda37b607fb00efb7d35d969c4a6651e3e8917020406b9a008c"
|
||||
},
|
||||
{
|
||||
"mint_id": "1928391",
|
||||
"artist": "Kei Lum Chan",
|
||||
"title": "China (Phaidon Cookbook) - Kei Lum Chan",
|
||||
"price": 75.0,
|
||||
"condition": "",
|
||||
"cover": "/img/00/0085359ce820eb3ac3ea1de117cfe6a80460f62efebc8699a33402f46cee32e5.webp",
|
||||
"cover_sha256": "725b861239a41dec6b92665a7990fd00f4c92f34789b5c38eac0ecea1d003d37"
|
||||
},
|
||||
{
|
||||
"mint_id": "1930798",
|
||||
"artist": "Bill Gates",
|
||||
"title": "How to Prevent the Next Pandemic (Hardback) - Bill Gates",
|
||||
"price": 50.0,
|
||||
"condition": "",
|
||||
"cover": "/img/dd/dd239257aac42354155c457b24d4d0b25282391377cff81b97b578ccc7724a88.webp",
|
||||
"cover_sha256": "fdeee2bcba0c090257e3a8115cbd55d8ea698c5b1975c386b89713bf36afc074"
|
||||
},
|
||||
{
|
||||
"mint_id": "1930874",
|
||||
"artist": "Gabrielle Zevin",
|
||||
"title": "Tomorrow, and Tomorrow, and Tomorrow - Gabrielle Zevin",
|
||||
"price": 25.0,
|
||||
"condition": "",
|
||||
"cover": "/img/d7/d787cc7498606884d0dff77fb3bd06f9b1b2beb8f16d01bc0001b2d907e0b9e5.webp",
|
||||
"cover_sha256": "cc4ca168c6a19459b525dd0bf213034cdf838390b93908f614322b75f291abbc"
|
||||
},
|
||||
{
|
||||
"mint_id": "3275806",
|
||||
"artist": "Rock-Pop-Alt",
|
||||
"title": "Popular Annual 1964 Sept - Dave Clark 5 Vs Beatles Magazine (Used)",
|
||||
"price": 40.0,
|
||||
"condition": "",
|
||||
"cover": "/img/68/6837ccc52ca3204c03adbbef213f2419aad3471e761263a0fd7131f5b595010a.webp",
|
||||
"cover_sha256": "a56c889af6e89359329152ef72961911acc2a183be169b196588840fb65675da"
|
||||
},
|
||||
{
|
||||
"mint_id": "6938204",
|
||||
"artist": "Lia Dewey Morgan",
|
||||
"title": "Traffic Saga",
|
||||
"price": 20.0,
|
||||
"condition": "",
|
||||
"cover": "/img/11/11f7c34086188a40e085f540793eedc426050a342d23c5351bebedd35f87b649.webp",
|
||||
"cover_sha256": "9705d8ef010f901ee8451f9aba0c174e74a97233b25af20a495c2a7368512175"
|
||||
},
|
||||
{
|
||||
"mint_id": "6961188",
|
||||
"artist": "Monoray",
|
||||
"title": "Murder In Paris '68",
|
||||
"price": 68.0,
|
||||
"condition": "",
|
||||
"cover": "/img/78/78f3c87e2fafabef55fa61240c2de42c1f5f771067f545cfb332b007c7f224d8.webp",
|
||||
"cover_sha256": "9e1f712393d8cd5c2e44010a340ec30252a469794908185a33c45a661d6c2ef8"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963036",
|
||||
"artist": "Dorling Kindersley",
|
||||
"title": "Knitting Stitches Step-by-Step: More than 150 Essen",
|
||||
"price": 150.0,
|
||||
"condition": "",
|
||||
"cover": "/img/36/3643a49fee7b49b6e3b00e7dd9b6591abaee1004a3d9ff19ae81ba23da6f71c6.webp",
|
||||
"cover_sha256": "40f8aab11ca5ad6b6ae214eff9c57725b08ef259e9d525e5d3a9f5399f8de453"
|
||||
},
|
||||
{
|
||||
"mint_id": "6963927",
|
||||
"artist": "Random House US",
|
||||
"title": "Banksy",
|
||||
"price": 54.99,
|
||||
"condition": "",
|
||||
"cover": "/img/d3/d3e972f296ff9802c87a15f3a39818784ca1157995dbd9d49a15a4c2061cea9c.webp",
|
||||
"cover_sha256": "49a000eab3f5761d921aa9731847355a4330ea57a7ff8976cc2475969e6c2f85"
|
||||
},
|
||||
{
|
||||
"mint_id": "6965987",
|
||||
"artist": "Phaidon",
|
||||
"title": "The Talks - No Idea Is Final: Quotes from the Creat",
|
||||
"price": 49.95,
|
||||
"condition": "",
|
||||
"cover": "/img/99/9965e806f34638c06cd6e41809260e06da66420c936dd44091edf9829e54663d.webp",
|
||||
"cover_sha256": "82e8d332dd7aae72791979da2d85aaf1c9f112536a160750a20b307a0fae2cc6"
|
||||
},
|
||||
{
|
||||
"mint_id": "6966191",
|
||||
"artist": "HarperCollins Publishers Australia",
|
||||
"title": "Yates Garden Guide ANZ Edition",
|
||||
"price": 45.0,
|
||||
"condition": "",
|
||||
"cover": "/img/ec/eccb6f4269967ac31a7f1f34003f911f205df1182b1fa7262b620c42bd071937.webp",
|
||||
"cover_sha256": "4ceb8d42c7252aab5e833c343c404b296eef060cf03f307c40bfdaf5649dabbb"
|
||||
},
|
||||
{
|
||||
"mint_id": "6994153",
|
||||
"artist": "Head of Zeus",
|
||||
"title": "Absynthe",
|
||||
"price": 10.0,
|
||||
"condition": "",
|
||||
"cover": "/img/c5/c5ad0c70d6bef23ba82596108bc4770aa12c9129e481937381ff36b920f06ebf.webp",
|
||||
"cover_sha256": "b138c323769116f1ac43f0eba3e83b7be38177fb2c7c74f8a9e34576918116ed"
|
||||
},
|
||||
{
|
||||
"mint_id": "7000975",
|
||||
"artist": "PAN MACMILLAN UK",
|
||||
"title": "Sociopath: A Memoir\\n by Patric Gagne",
|
||||
"price": 24.99,
|
||||
"condition": "",
|
||||
"cover": "/img/10/1037e2d926c188e52eb4174df3a9365923d4375abbe4989d0d3a729107e41485.webp",
|
||||
"cover_sha256": "17149248c12e9005214fe4efc39a8a8a2dc209d88bbb1cf2587e36c93fc93620"
|
||||
},
|
||||
{
|
||||
"mint_id": "7004394",
|
||||
"artist": "Penguin Random House",
|
||||
"title": "Having Spent Life Seeking",
|
||||
"price": 35.0,
|
||||
"condition": "",
|
||||
"cover": "/img/b7/b7d2f2b36bcd30e8124bea54d79ac15b4dc5c8a1d74996a561910c81d1a92d86.webp",
|
||||
"cover_sha256": "ef0c6035910a7cade1e93d0934c7bc1a198de01eb57ce4d088486cd88c28b821"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -52,8 +52,8 @@ SHOP = {
|
||||
}
|
||||
OWN_PHOTO_HOST = "monsterrobot.party" # the licence test: the shop's own domain, nothing else
|
||||
|
||||
CELL_W, CELL_H, GRID, ATLAS_PX = 256, 256, 8, 2048 # Lane E's record contract (build_stock_pack.py)
|
||||
PER_ATLAS = GRID * (ATLAS_PX // CELL_H) # 64
|
||||
CELL_W, CELL_H, ATLAS_PX = 256, 256, 2048 # Lane E's record contract (build_stock_pack.py)
|
||||
STOCK_TYPES = ("record", "book", "toy") # C §7.1 — the only types the loader can fetch
|
||||
|
||||
|
||||
def price_band(price):
|
||||
@ -99,6 +99,127 @@ def load_image_map(path):
|
||||
return m
|
||||
|
||||
|
||||
def crate_menu():
|
||||
"""The G3 §4 crate-rotation menu, baked statically — the shop's real crates, with real labels.
|
||||
|
||||
NOTE (→ C, R26): this is METADATA, not stock, and it cannot be otherwise under the contract as
|
||||
written. The loader fetches ONE index per base (`<base>stock_<type>_index.json`) and C §7.6
|
||||
caps a shop at 2 atlases = 128 items. Monster Robot has 357 crates / 24,646 baked-able records.
|
||||
So "the crate menu, baked statically" can ship as the shop's real crate LIST (below) — what it
|
||||
cannot ship as is per-crate stock, which needs a per-crate base (`…/3962749/crate_550/`) and
|
||||
therefore a C contract line. Filed, not invented: the menu is honest metadata today, and tier 2
|
||||
is where rotation actually lives (G3 §4 `/crates`).
|
||||
"""
|
||||
rows = psql("recordgod", """
|
||||
SELECT c.id, c.name, COALESCE(c.label_text,''), count(i.sku)
|
||||
FROM crate c JOIN inventory i ON i.crate_id = c.id AND i.in_stock
|
||||
GROUP BY c.id, c.name, c.label_text HAVING count(i.sku) > 0 ORDER BY c.id""")
|
||||
return [{"id": int(r[0]), "name": r[1], "label": r[2], "count": int(r[3])} for r in rows]
|
||||
|
||||
|
||||
# ── the MINT baker (R26 ledger #2) ───────────────────────────────────────────────────────
|
||||
# The G3 doc's own note, promoted: a keyed shop with NO POS gets a deterministic seeded sample of
|
||||
# real dealgod listings, so its crate is distinct and plausible — never claimed as its stock.
|
||||
#
|
||||
# DETERMINISM: `random.Random(shop_id)` over an ID-ORDERED pool. Same shop_id + same pool =>
|
||||
# byte-identical bake, forever. No TABLESAMPLE, no unseeded random — the two things that
|
||||
# disqualified thriftgod's own mint() from tier 1 (G3 §2). The shop_id IS the seed, so two shops
|
||||
# can never draw the same crate, which is what F's distinctness gate asserts.
|
||||
#
|
||||
# HONESTY: the snapshot is marked `sourcing: "mint"` and carries NO POS-claim field — no `crate`,
|
||||
# no `pos_db`, no `pos_dump` (E's POS_CLAIM_FIELDS). A mint crate is structurally incapable of
|
||||
# claiming a shop's real inventory: the fields that would say so are absent, not merely false.
|
||||
MINT_KINDS = { # pool row -> the stock type it can furnish
|
||||
"record": lambda r: r["release_id"] != "\\N",
|
||||
"book": lambda r: r["cat"].split("/")[0] == "books",
|
||||
"toy": lambda r: r["cat"].split("/")[0] in ("collectables-hobbies-toys", "gaming"),
|
||||
}
|
||||
MINT_COUNT = 16 # ≤16 items => ONE 1024² atlas (C §7.6: ≤1024² when it fits;
|
||||
# 1024²/256² = 16 cells). See G-progress R26 on why not more.
|
||||
|
||||
|
||||
def load_pool(path):
|
||||
"""The dealgod mint pool — a frozen projection of the same dated dump the real tier uses."""
|
||||
pool = []
|
||||
with open(path) as fh:
|
||||
for ln in fh:
|
||||
f = ln.rstrip("\n").split("\t")
|
||||
if len(f) < 9:
|
||||
continue
|
||||
pool.append({"id": f[0], "title": f[1], "artist": f[2], "price": f[3], "cond": f[4],
|
||||
"cover": f[5], "ptype": f[6], "cat": f[7], "release_id": f[8]})
|
||||
pool.sort(key=lambda r: int(r["id"])) # ID-ORDERED: the sample's determinism rests on this
|
||||
return pool
|
||||
|
||||
|
||||
def mint(args):
|
||||
import random
|
||||
pool = [r for r in load_pool(args.pool) if MINT_KINDS[args.type](r)]
|
||||
seen, uniq = set(), []
|
||||
for r in pool: # de-dupe by cover so a crate never doubles a sleeve
|
||||
if r["cover"] in seen:
|
||||
continue
|
||||
seen.add(r["cover"])
|
||||
uniq.append(r)
|
||||
|
||||
rng = random.Random(args.shop) # THE SEED IS THE SHOP — deterministic, per-shop distinct
|
||||
picks, items, dropped = rng.sample(uniq, min(len(uniq), args.count * 4)), [], {"file_missing": 0}
|
||||
for r in picks:
|
||||
if len(items) >= args.count:
|
||||
break
|
||||
path = os.path.join(IMG_CACHE, r["cover"][len("/img/"):])
|
||||
if not os.path.isfile(path):
|
||||
dropped["file_missing"] += 1
|
||||
continue
|
||||
with open(path, "rb") as fh:
|
||||
sha = hashlib.sha256(fh.read()).hexdigest()
|
||||
try:
|
||||
price = float(r["price"])
|
||||
except ValueError:
|
||||
continue
|
||||
items.append({
|
||||
# C §7.2a: derived from the source's OWN stable key, never position. The source here is
|
||||
# dealgod, so the key is its listing id — NOT `sku_`. See G-progress R26: a POS sku and a
|
||||
# dealgod product id are DIFFERENT NAMESPACES, and tier-2's sold-means-gone will look up
|
||||
# POS skus. An id shaped like a sku that no POS can resolve is the R26 standing note
|
||||
# (plan ids vs godverse ids) waiting to happen in the economy.
|
||||
"mint_id": r["id"], "artist": r["artist"] if r["artist"] != "\\N" else "",
|
||||
"title": r["title"], "price": price,
|
||||
# §7.2c: emit `condition` ONLY if the listing genuinely carries one — an invented grade is
|
||||
# exactly the fiction `sourcing` exists to prevent.
|
||||
"condition": r["cond"] if r["cond"] not in ("\\N", "") else "",
|
||||
"cover": r["cover"], "cover_sha256": sha,
|
||||
})
|
||||
items.sort(key=lambda i: int(i["mint_id"]))
|
||||
|
||||
snap = {
|
||||
"version": 1, "kind": args.type, "tier": 1, "sourcing": "mint",
|
||||
"shop": {"godverse_id": args.shop, "slug": args.slug, "name": args.name,
|
||||
"suburb": args.suburb, "state": args.state, "type": args.type},
|
||||
"counts": {"pool": len(uniq), "baked": len(items), "dropped": dropped},
|
||||
"source": { # NO pos_db / pos_dump — a mint crate has no POS to claim
|
||||
"feed_db": "dealgod", "feed_dump": args.feed_dump, "image_cache": IMG_CACHE,
|
||||
"captured": args.captured, "seed": args.shop,
|
||||
"sample": f"random.Random({args.shop}) over an id-ordered pool of {len(uniq)} listings",
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green", "flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists — John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT — a seeded sample standing in for a shop with no POS. Plausible, and "
|
||||
"NEVER this shop's actual stock. Nothing here is a claim about this business.",
|
||||
},
|
||||
"items": items,
|
||||
}
|
||||
os.makedirs(SNAP_DIR, exist_ok=True)
|
||||
dst = os.path.join(SNAP_DIR, f"mint_{args.shop}_{args.type}.snapshot.json")
|
||||
with open(dst, "w") as fh:
|
||||
json.dump(snap, fh, indent=1)
|
||||
fh.write("\n")
|
||||
print(f"mint: shop {args.shop} ({args.name}) — {len(items)} {args.type} items "
|
||||
f"seeded random.Random({args.shop}) from {len(uniq)} listings -> {dst}")
|
||||
|
||||
|
||||
def snapshot(args):
|
||||
crate = psql("recordgod", f"SELECT id,name,COALESCE(label_text,'') FROM crate WHERE id={args.crate}")
|
||||
if not crate:
|
||||
@ -141,9 +262,10 @@ def snapshot(args):
|
||||
items = items[:args.max_items]
|
||||
|
||||
snap = {
|
||||
"version": 1, "kind": "record", "tier": 1,
|
||||
"version": 1, "kind": "record", "tier": 1, "sourcing": "real",
|
||||
"shop": SHOP,
|
||||
"crate": {"id": int(cid), "name": cname, "label": clabel},
|
||||
"crate_menu": crate_menu(), # G3 §4's menu, baked as metadata — see crate_menu()
|
||||
"counts": {"in_crate": len(rows), "baked": len(items), "dropped": dropped},
|
||||
"source": {
|
||||
"pos_db": "recordgod", "pos_dump": args.pos_dump,
|
||||
@ -175,39 +297,54 @@ def pack(args):
|
||||
from PIL import Image
|
||||
snap = json.load(open(args.snapshot))
|
||||
shop, items = snap["shop"], snap["items"]
|
||||
kind, sourcing = snap.get("kind", "record"), snap["sourcing"]
|
||||
out_dir = os.path.join(STOCK_DIR, str(shop["godverse_id"]))
|
||||
os.makedirs(out_dir, exist_ok=True)
|
||||
|
||||
# C §7.6: ≤2048², and ≤1024² whenever the crate fits it. 1024²/256² = 16 cells; 2048² = 64.
|
||||
# A 16-item mint crate is ONE 1024² sheet; the 120-record real crate needs 2×2048² (C's own
|
||||
# worked example). Cell stays 256² either way — C: never shrink it, the dig renders it close-up.
|
||||
px = ATLAS_PX if len(items) > (1024 // CELL_H) ** 2 else 1024
|
||||
grid, per_atlas = px // CELL_W, (px // CELL_W) * (px // CELL_H)
|
||||
|
||||
idx_items, atlases = [], []
|
||||
for ai in range((len(items) + PER_ATLAS - 1) // PER_ATLAS):
|
||||
chunk = items[ai * PER_ATLAS:(ai + 1) * PER_ATLAS]
|
||||
W, H = GRID * CELL_W, (ATLAS_PX // CELL_H) * CELL_H
|
||||
for ai in range((len(items) + per_atlas - 1) // per_atlas):
|
||||
chunk = items[ai * per_atlas:(ai + 1) * per_atlas]
|
||||
W = H = px
|
||||
sheet = Image.new("RGB", (W, H), (28, 28, 32))
|
||||
aname = f"stock_record_atlas_{ai:02d}.webp"
|
||||
aname = f"stock_{kind}_atlas_{ai:02d}.webp"
|
||||
for j, it in enumerate(chunk):
|
||||
gx, gy = j % GRID, j // GRID
|
||||
gx, gy = j % grid, j // grid
|
||||
path = os.path.join(IMG_CACHE, it["cover"][len("/img/"):])
|
||||
with open(path, "rb") as fh:
|
||||
raw = fh.read()
|
||||
if hashlib.sha256(raw).hexdigest() != it["cover_sha256"]:
|
||||
sys.exit(f"cover drift: {it['sku']} {it['cover']} — snapshot sha mismatch, re-snapshot")
|
||||
sys.exit(f"cover drift: {it['cover']} — snapshot sha mismatch, re-snapshot")
|
||||
import io
|
||||
cov = Image.open(io.BytesIO(raw)).convert("RGB").resize((CELL_W, CELL_H), Image.LANCZOS)
|
||||
sheet.paste(cov, (gx * CELL_W, gy * CELL_H))
|
||||
u0, v0 = gx * CELL_W / W, gy * CELL_H / H
|
||||
idx_items.append({
|
||||
# C §7.2a (R25): sku-derived, never positional. `rec_NNNN` is the generic packs'
|
||||
# namespace and a real-stock pack must not emit into it — positionally, all 120 of
|
||||
# our ids WERE generic-pack ids, which is what made an id-equality gate vacuous.
|
||||
# And position isn't identity: sell one record out of the crate and `rec_0050`
|
||||
# silently becomes a different record on the next bake, which is exactly what
|
||||
# tier-2's sold-means-gone must never do. The POS sku is the shop's own identity
|
||||
# for that copy (release_id identifies the pressing; the sku identifies the copy).
|
||||
"id": f"sku_{it['sku']}", "title": it["title"], "artist": it["artist"],
|
||||
# C §7.2a: derived from the source's own stable key, never position. `rec_NNNN` is the
|
||||
# generic packs' namespace and a real-stock pack must not emit into it. And position
|
||||
# isn't identity: sell one record and `rec_0050` becomes a DIFFERENT record next bake —
|
||||
# exactly what tier-2's sold-means-gone must never do.
|
||||
# real → `sku_<POS sku>` (the shop's own identity for that COPY)
|
||||
# mint → `mint_<dealgod listing id>` (dealgod's own key; NOT a sku — see G-progress)
|
||||
slot_id = f"sku_{it['sku']}" if sourcing == "real" else f"mint_{it['mint_id']}"
|
||||
item = {
|
||||
"id": slot_id, "title": it["title"], "artist": it["artist"],
|
||||
"price": int(round(it["price"])), "price_band": price_band(it["price"]),
|
||||
"atlas": aname, "uv": [round(u0, 4), round(v0, 4),
|
||||
round(u0 + CELL_W / W, 4), round(v0 + CELL_H / H, 4)],
|
||||
})
|
||||
}
|
||||
# C §7.2c: the price card is a record-shop sticker — artist/title/condition/price.
|
||||
# Emit only what the source actually has; C's card omits what's absent, and an invented
|
||||
# grade is the fiction `sourcing` exists to prevent.
|
||||
if it.get("condition"):
|
||||
item["condition"] = it["condition"]
|
||||
if it.get("sleeve_cond"):
|
||||
item["sleeve_cond"] = it["sleeve_cond"]
|
||||
idx_items.append(item)
|
||||
sheet.save(os.path.join(out_dir, aname), "WEBP", quality=88, method=6)
|
||||
atlases.append(aname)
|
||||
|
||||
@ -215,11 +352,19 @@ def pack(args):
|
||||
snap_sha = hashlib.sha256(fh.read()).hexdigest()
|
||||
lic = snap["license"]
|
||||
generator, snapshot_name = "pipeline/godverse_stock.py", os.path.basename(args.snapshot)
|
||||
attribution = (f"Stock, prices + covers: {shop['name']} ({OWN_PHOTO_HOST}) — the shop's own "
|
||||
f"product shots · cover cache: GODVERSE/dealgod · POS: recordgod")
|
||||
if sourcing == "real":
|
||||
attribution = (f"Stock, prices + covers: {shop['name']} ({OWN_PHOTO_HOST}) — the shop's own "
|
||||
f"product shots · cover cache: GODVERSE/dealgod · POS: recordgod")
|
||||
else:
|
||||
# The attribution must not imply this shop supplied anything — it didn't. Say what it is.
|
||||
attribution = (f"MINT (seeded sample, not {shop['name']}'s stock): real dealgod listings — "
|
||||
f"the sellers' own product shots · cover cache: GODVERSE/dealgod")
|
||||
index = {
|
||||
"version": 1, "kind": "record", "tier": 1,
|
||||
"atlas_px": ATLAS_PX, "cell_w": CELL_W, "cell_h": CELL_H,
|
||||
"version": 1, "kind": kind, "tier": 1,
|
||||
# C §7.2b: `sourcing` is the real-vs-mint axis; `tier` stays the charter's ladder rung (both
|
||||
# are rung 1 — same mechanism, different origin). One name, one meaning.
|
||||
"sourcing": sourcing,
|
||||
"atlas_px": px, "cell_w": CELL_W, "cell_h": CELL_H,
|
||||
"count": len(idx_items), "atlases": atlases,
|
||||
# TOP LEVEL, per C's contract §7.3 + the house convention of the shipped town caches
|
||||
# (`license` is a short US-spelled string there, `attribution` its companion).
|
||||
@ -228,28 +373,65 @@ def pack(args):
|
||||
"generator": generator,
|
||||
"snapshot": snapshot_name,
|
||||
"shop": {k: shop[k] for k in ("godverse_id", "slug", "name", "suburb", "state")},
|
||||
"crate": snap["crate"],
|
||||
# NESTED, per E's validate_atlas.py — which is the authority C's §7.3 defers to for these
|
||||
# fields, and which reads provenance.{generator,snapshot,licence|license{zone,flag,covers}}.
|
||||
# C's doc asserts top-level is "exactly what E's validator reads"; measured, it is not (see
|
||||
# G-progress R24). Emitting both keeps C's contract and E's gate green off ONE source of
|
||||
# truth (`lic`/`generator`/`snapshot` above) — flagged for F/Fable to collapse to one.
|
||||
# NESTED — the rich block C calls colour; the four gate fields are top level above.
|
||||
"provenance": {
|
||||
"generator": generator,
|
||||
"source": snap["source"], "license": lic,
|
||||
"snapshot": snapshot_name, "snapshot_sha256": snap_sha,
|
||||
"determinism": "pure bake — same snapshot + same cover bytes => byte-identical atlas; "
|
||||
"covers pinned by sha256, no RNG, no clock",
|
||||
"determinism": ("pure bake — same snapshot + same cover bytes => byte-identical atlas; "
|
||||
"covers pinned by sha256, no RNG, no clock"
|
||||
if sourcing == "real" else
|
||||
f"pure bake; the sample itself is seeded random.Random({shop['godverse_id']}) "
|
||||
f"over an id-ordered pool => same shop id + same pool = same crate, forever"),
|
||||
},
|
||||
"items": idx_items,
|
||||
}
|
||||
dst = os.path.join(out_dir, "stock_record_index.json")
|
||||
# C §7.2b / E's POS_CLAIM_FIELDS: a mint index carries NO field that claims a shop's real
|
||||
# inventory — `crate` and the pos_* source keys are ABSENT, not merely false. The separation is
|
||||
# structural: there is no line here that could make a mint crate read as real.
|
||||
if sourcing == "real":
|
||||
index["crate"] = snap["crate"]
|
||||
index["crate_menu"] = snap.get("crate_menu", [])
|
||||
dst = os.path.join(out_dir, f"stock_{kind}_index.json")
|
||||
with open(dst, "w") as fh:
|
||||
json.dump(index, fh, indent=1)
|
||||
fh.write("\n")
|
||||
print(f"pack: {len(idx_items)} real sleeves -> {len(atlases)} atlas(es) in {out_dir}")
|
||||
print(f" shop {shop['godverse_id']} ({shop['slug']}) · crate "
|
||||
f"{snap['crate']['id']} '{snap['crate']['label'] or snap['crate']['name']}'")
|
||||
where = (f"crate {snap['crate']['id']} '{snap['crate']['label'] or snap['crate']['name']}'"
|
||||
if sourcing == "real" else f"seeded random.Random({shop['godverse_id']})")
|
||||
print(f"pack[{sourcing}]: {len(idx_items)} {kind} items -> {len(atlases)}×{px}² atlas(es) "
|
||||
f"in {os.path.relpath(out_dir, ROOT)}")
|
||||
print(f" shop {shop['godverse_id']} ({shop['slug']}) · {where}")
|
||||
|
||||
|
||||
# ── the atlas manifest (R26 ledger #6, C §7.2d) ───────────────────────────────────────────
|
||||
def manifest(args):
|
||||
"""Existence DECLARED, never probed. F's wire consults this before fetching, so a shop with no
|
||||
atlas is never fetched — no 404, and the zero-console-errors law holds without the attribution
|
||||
exception that was tolerating 8 of them. Derived from the files on disk, so it cannot drift:
|
||||
the manifest IS the directory, read back."""
|
||||
shops = []
|
||||
for d in sorted(os.listdir(STOCK_DIR)) if os.path.isdir(STOCK_DIR) else []:
|
||||
sd = os.path.join(STOCK_DIR, d)
|
||||
if not (os.path.isdir(sd) and d.isdigit()):
|
||||
continue
|
||||
entry = {"godverseShopId": int(d), "types": [], "sourcing": None}
|
||||
for t in sorted(STOCK_TYPES):
|
||||
p = os.path.join(sd, f"stock_{t}_index.json")
|
||||
if not os.path.isfile(p):
|
||||
continue
|
||||
idx = json.load(open(p))
|
||||
entry["types"].append(t)
|
||||
entry["sourcing"] = idx.get("sourcing")
|
||||
if entry["types"]:
|
||||
shops.append(entry)
|
||||
man = {"version": 1, "shops": shops}
|
||||
dst = os.path.join(STOCK_DIR, "index.json")
|
||||
with open(dst, "w") as fh:
|
||||
json.dump(man, fh, indent=1)
|
||||
fh.write("\n")
|
||||
real = sum(1 for s in shops if s["sourcing"] == "real")
|
||||
print(f"manifest: {len(shops)} shop(s) carry atlases ({real} real, {len(shops) - real} mint) "
|
||||
f"-> {os.path.relpath(dst, ROOT)}")
|
||||
|
||||
|
||||
ap = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter)
|
||||
@ -265,5 +447,19 @@ s1.set_defaults(func=snapshot)
|
||||
s2 = sub.add_parser("pack", help="snapshot -> atlas + index (pure; needs PIL, no DB)")
|
||||
s2.add_argument("snapshot")
|
||||
s2.set_defaults(func=pack)
|
||||
s3 = sub.add_parser("mint", help="seeded sample -> mint snapshot (a keyed shop with no POS)")
|
||||
s3.add_argument("--shop", type=int, required=True, help="godverseShopId — AND the seed")
|
||||
s3.add_argument("--type", required=True, choices=sorted(MINT_KINDS))
|
||||
s3.add_argument("--pool", required=True, help="TSV projection of dealgod's listings")
|
||||
s3.add_argument("--count", type=int, default=MINT_COUNT)
|
||||
s3.add_argument("--slug", default="")
|
||||
s3.add_argument("--name", default="")
|
||||
s3.add_argument("--suburb", default="")
|
||||
s3.add_argument("--state", default="")
|
||||
s3.add_argument("--feed-dump", default="", help="dealgod dump filename, for provenance")
|
||||
s3.add_argument("--captured", default="")
|
||||
s3.set_defaults(func=mint)
|
||||
s4 = sub.add_parser("manifest", help="emit stock_godverse/index.json from the atlases on disk")
|
||||
s4.set_defaults(func=manifest)
|
||||
args = ap.parse_args()
|
||||
args.func(args)
|
||||
|
||||
@ -1,9 +1,22 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Validate per-shop real-stock atlases — the G2a format gate (v5.0-alpha, R23 #4 · R24 #4 · R25 #2).
|
||||
"""Validate per-shop real-stock atlases — the G2a format gate (R23 #4 · R24 #4 · R25 #2 · R26 #3/#6).
|
||||
|
||||
Judges Lane G's tier-1 atlases **from the committed files alone** — no dealgod DB, no network — so the
|
||||
gate runs on m3. Wired into `validate_manifest` (qa gate 3).
|
||||
|
||||
R26 — `sourcing` + the atlas manifest (ledgers #3, #6). Two arms, both C's contract:
|
||||
• **§7.2b `sourcing: real|mint`** — REQUIRED; no `sourcing` ⇒ FAIL. **The brief called this `tier`; C
|
||||
ruled it cannot be** — `tier` is already the charter's ladder rung and a mint atlas is *also* rung 1.
|
||||
This gate reads C's field, not the brief's word (R23's whole lesson: the contract's author is the
|
||||
authority for the contract's shape, and a gate built to a paraphrase diverges from the emitter).
|
||||
The real/mint separation is asserted **both directions**: mint must carry no POS claim, real must
|
||||
carry the POS provenance it claims. The licence line prints for both.
|
||||
• **§7.2d the manifest** — `stock_godverse/index.json` declares which shops carry atlases so the wire
|
||||
never probes blind (that probe is the 404 noise the zero-console-errors law was eating by
|
||||
attribution). Consistency BOTH ways: an atlas on disk absent from the manifest is unreachable and
|
||||
FAILS; a manifest entry with no atlas would 404 and FAILS. An absent manifest is legitimate **only**
|
||||
with zero atlases — a manifest that promises atlases that don't exist is a FAIL, not a SKIP.
|
||||
|
||||
R25 — THE LICENCE LINE, MADE UNMISSABLE (ledger #2), and it is the sharpest bug this file has had.
|
||||
The R24 gate reported `OK — 0 warnings` on real product photos while printing **nothing** about their
|
||||
licence. Not a typo — a DIVERGENCE between two paths reading one field:
|
||||
@ -59,6 +72,18 @@ REQUIRED_ITEM = ("id", "title", "artist", "price", "price_band", "atlas", "uv")
|
||||
# the `rec_`/`boo_`/`toy_` positional namespace and a real-stock pack must not emit into it.
|
||||
SLOT_ID_PREFIX = "sku_"
|
||||
GENERIC_PACKS = os.path.join(ROOT, "web", "assets", "models", "stock_*_index.json")
|
||||
# C §7.2b (R26 #1): `sourcing` — real (that shop's own POS snapshot) vs mint (a seeded sample standing in
|
||||
# for a keyed shop with no POS). NOTE the brief called this `tier`; C ruled it CANNOT be — `tier` is already
|
||||
# the charter's ladder rung (0 parody / 1 static-real / 2 live) and a mint atlas is ALSO rung 1. One name,
|
||||
# one meaning. This gate reads C's field, not the brief's word.
|
||||
SOURCING = {"real", "mint"}
|
||||
# C §7.2b: "a mint index MUST NOT carry POS-snapshot fields (the separation IS the honesty)". C states the
|
||||
# rule but does not enumerate the fields, so E names them — these are the ones that CLAIM a specific shop's
|
||||
# actual inventory. `snapshot` is deliberately NOT here: it pins determinism (§7.3 requires it on every
|
||||
# atlas) and a mint bake has its own honest source snapshot. → C/G: if a mint bake needs any of these, say
|
||||
# so and this set changes; the error names the exact field found so a divergence is diagnosable, not a mystery.
|
||||
POS_CLAIM_FIELDS = (("crate",), ("provenance", "source", "pos_db"), ("provenance", "source", "pos_dump"))
|
||||
MANIFEST = os.path.join(ROOT, "web", "assets", "stock_godverse", "index.json") # C §7.2d
|
||||
MAX_ATLASES = 2 # C §7.2: ≤2 atlases per shop
|
||||
PX_MAX = 2048 # C §7.2: ≤2048² each
|
||||
PX_TYPICAL = 1024 # C §7.2: ≤1024² whenever the crate fits it (≤64 items at 256²)
|
||||
@ -69,6 +94,15 @@ FORBIDDEN_ITEM_KEYS = {"seller", "seller_name", "owner", "owner_name", "customer
|
||||
_GENERIC_IDS = None # lazily filled by generic_pack_ids()
|
||||
|
||||
|
||||
def _dig(obj, path):
|
||||
"""obj["a"]["b"]… for path ("a","b",…) — None if any hop is missing or not a dict."""
|
||||
for k in path:
|
||||
if not isinstance(obj, dict):
|
||||
return None
|
||||
obj = obj.get(k)
|
||||
return obj
|
||||
|
||||
|
||||
def generic_pack_ids():
|
||||
"""{pack filename: {id, …}} for the shipped town-wide packs — the other side of "unique across ALL
|
||||
packs". Read-only; lazily cached. This is what makes §7.2a falsifiable rather than a naming rule: the
|
||||
@ -138,6 +172,25 @@ def validate_index(path):
|
||||
errs.append(f"{name}: shop.godverse_id {sid!r} != its directory {shop_dir!r} "
|
||||
f"(base `stock_godverse/{shop_dir}/` is the cache identity — they must agree)")
|
||||
|
||||
# ── C §7.2b: `sourcing` — real vs mint, and the separation that makes it honest ──
|
||||
# Vacuous-gate law: no `sourcing` ⇒ FAIL. A crate that cannot say where it came from must never pass
|
||||
# as one that can; "plausible" silently reading as "real" is the whole failure this field prevents.
|
||||
sourcing = idx.get("sourcing")
|
||||
if sourcing not in SOURCING:
|
||||
errs.append(f"{name}: `sourcing` is {sourcing!r} — C §7.2b requires top-level "
|
||||
f"`sourcing` ∈ {sorted(SOURCING)} on every real-stock atlas. Without it a seeded mint "
|
||||
f"crate is indistinguishable from that shop's actual POS inventory.")
|
||||
else:
|
||||
claims = [".".join(p) for p in POS_CLAIM_FIELDS if _dig(idx, p) not in (None, "", {}, [])]
|
||||
if sourcing == "mint" and claims:
|
||||
errs.append(f"{name}: sourcing='mint' but it carries POS-snapshot field(s) {claims} — C §7.2b: "
|
||||
f"a mint crate is a seeded sample and must never claim a shop's real inventory. "
|
||||
f"The separation IS the honesty.")
|
||||
if sourcing == "real" and not claims:
|
||||
errs.append(f"{name}: sourcing='real' but it carries none of the POS-snapshot fields "
|
||||
f"{['.'.join(p) for p in POS_CLAIM_FIELDS]} — C §7.2b asserts both directions: a "
|
||||
f"'real' crate must show the POS provenance it claims.")
|
||||
|
||||
# ── provenance: the FOUR gate fields, TOP LEVEL, US `license` (C §7.3 + charter law #3) ──
|
||||
# `snapshot` pins determinism (the atlas is re-bakeable); `license`/`attribution` are the human-facing
|
||||
# pair every town cache already carries. The nested `provenance{}` block (G's source / snapshot_sha256
|
||||
@ -236,21 +289,110 @@ def validate_index(path):
|
||||
return errs, warns, (str(idx.get("license", "")).strip() or None)
|
||||
|
||||
|
||||
def load_manifest():
|
||||
"""→ (manifest_dict_or_None, errs). C §7.2d: `stock_godverse/index.json` is the authority for which
|
||||
shops carry atlases — no entry, no fetch, so no 404 and no attribution exception. Absent is a legitimate
|
||||
state (a tree with no godverse atlases); absent-while-atlases-exist is not, and main() catches that."""
|
||||
if not os.path.isfile(MANIFEST):
|
||||
return None, []
|
||||
try:
|
||||
man = json.load(open(MANIFEST))
|
||||
except Exception as e:
|
||||
return None, [f"index.json: the atlas manifest does not parse: {e} — C §7.2d makes it the "
|
||||
f"authority for what the runtime may fetch; an unreadable authority is a FAIL, "
|
||||
f"not a fall-back-to-probing"]
|
||||
errs = []
|
||||
if not isinstance(man.get("shops"), list):
|
||||
errs.append("index.json: no `shops[]` — C §7.2d shape is {version, shops:[{godverseShopId, types[], sourcing}]}")
|
||||
man["shops"] = []
|
||||
return man, errs
|
||||
|
||||
|
||||
def check_manifest(idxs, man):
|
||||
"""manifest ↔ files, BOTH ways (C §7.2d → Lane E). An atlas on disk absent from the manifest FAILS (the
|
||||
runtime would never fetch it — it would silently never load); a manifest entry with no atlas FAILS (the
|
||||
runtime would fetch it and 404, which is the noise the manifest exists to kill)."""
|
||||
errs = []
|
||||
on_disk = {} # {shop_id: {type: index_path}}
|
||||
for p in idxs:
|
||||
sid = os.path.basename(os.path.dirname(p))
|
||||
t = os.path.basename(p)[len("stock_"):-len("_index.json")]
|
||||
on_disk.setdefault(sid, {})[t] = p
|
||||
declared = {}
|
||||
for i, e in enumerate(man.get("shops", [])):
|
||||
if not isinstance(e, dict) or e.get("godverseShopId") is None:
|
||||
errs.append(f"index.json shops[{i}]: no `godverseShopId`"); continue
|
||||
# standing note (R26): godverseShopId lives in the GODVERSE namespace and shares a numeric space
|
||||
# with plan ids — str() for the directory match, never a bare cross-namespace number compare.
|
||||
sid = str(e["godverseShopId"])
|
||||
types = e.get("types")
|
||||
if not isinstance(types, list) or not types:
|
||||
errs.append(f"index.json[{sid}]: no `types[]` — C §7.2d declares which packs exist"); continue
|
||||
declared[sid] = e
|
||||
for t in types:
|
||||
if t not in on_disk.get(sid, {}):
|
||||
errs.append(f"index.json[{sid}]: declares type {t!r} but "
|
||||
f"stock_godverse/{sid}/stock_{t}_index.json is NOT on disk — the wire would "
|
||||
f"fetch it and 404, which is exactly the noise C §7.2d exists to kill")
|
||||
if e.get("sourcing") is not None and e["sourcing"] not in SOURCING:
|
||||
errs.append(f"index.json[{sid}]: sourcing {e['sourcing']!r} ∉ {sorted(SOURCING)}")
|
||||
for sid, types in sorted(on_disk.items()):
|
||||
if sid not in declared:
|
||||
errs.append(f"stock_godverse/{sid}/: {len(types)} atlas index(es) on disk but the shop is ABSENT "
|
||||
f"from index.json — C §7.2d: no entry, no fetch, so this crate would silently never "
|
||||
f"load. An unreachable atlas is not a passing atlas.")
|
||||
continue
|
||||
for t, p in sorted(types.items()):
|
||||
if t not in declared[sid].get("types", []):
|
||||
errs.append(f"stock_godverse/{sid}/stock_{t}_index.json on disk but type {t!r} is not in "
|
||||
f"index.json's types {declared[sid].get('types')} — the runtime would never fetch it")
|
||||
# the manifest's per-shop sourcing must not contradict the index's own (E's addition — flagged to C)
|
||||
want = declared[sid].get("sourcing")
|
||||
for t, p in sorted(types.items()):
|
||||
try:
|
||||
got = json.load(open(p)).get("sourcing")
|
||||
except Exception:
|
||||
continue
|
||||
if want is not None and got is not None and want != got:
|
||||
errs.append(f"index.json[{sid}] says sourcing={want!r} but stock_{t}_index.json says "
|
||||
f"{got!r} — one of them tells a human a mint crate is real")
|
||||
return errs
|
||||
|
||||
|
||||
def main():
|
||||
idxs = sorted(glob.glob(GLOB))
|
||||
man, man_errs = load_manifest()
|
||||
if not idxs:
|
||||
# THE VACUOUS-GATE LAW (R23, F): absent subject ⇒ SKIP with a printed reason — and prove the set
|
||||
# really is empty. Files present but unmatched = a misnamed atlas the loader can't fetch ⇒ FAIL.
|
||||
stray = [p for p in glob.glob(os.path.join(STOCK_G, "**", "*"), recursive=True) if os.path.isfile(p)]
|
||||
stray = [p for p in glob.glob(os.path.join(STOCK_G, "**", "*"), recursive=True)
|
||||
if os.path.isfile(p) and os.path.abspath(p) != os.path.abspath(MANIFEST)]
|
||||
if stray:
|
||||
print(f"atlas-QA FAIL — {len(stray)} file(s) under stock_godverse/ but 0 matched {GLOB}")
|
||||
print(f" the runtime fetches `<base>stock_<type>_index.json`; these cannot be loaded:")
|
||||
for p in stray[:8]:
|
||||
print(f" unmatched: {os.path.relpath(p, ROOT)}")
|
||||
return 1
|
||||
print(f"atlas-QA SKIP: no atlases present (0 files matched glob {GLOB})")
|
||||
# A manifest that PROMISES atlases while none exist must not skip quietly — the wire would fetch
|
||||
# every entry and 404. C's "absent manifest ⇒ legitimate zero-shop state" covers the empty tree,
|
||||
# not a manifest whose declarations are all unbacked. (Vacuous-gate law: the subject is absent, but
|
||||
# something on disk still asserts it exists — that is a FAIL, not a SKIP.)
|
||||
if man_errs or (man and man.get("shops")):
|
||||
for e in man_errs + check_manifest([], man or {}):
|
||||
print(f" ERR {e}")
|
||||
print(f"atlas-QA FAIL — the manifest declares atlases that are not on disk (0 matched {GLOB})")
|
||||
return 1
|
||||
print(f"atlas-QA SKIP: no atlases present (0 files matched glob {GLOB})"
|
||||
+ ("" if man is None else "; manifest present and empty"))
|
||||
return 0
|
||||
all_errs, all_warns = [], []
|
||||
all_errs, all_warns = list(man_errs), []
|
||||
if man is None:
|
||||
all_errs.append(f"{len(idxs)} atlas index(es) on disk but web/assets/stock_godverse/index.json is "
|
||||
f"MISSING — C §7.2d makes the manifest the authority for what the runtime may "
|
||||
f"fetch. With no manifest the wire either probes blind (the 404 noise §7.2d kills) "
|
||||
f"or never fetches these at all. Absent is only legitimate when there are no atlases.")
|
||||
else:
|
||||
all_errs += check_manifest(idxs, man)
|
||||
printed = 0 # licence evidence lines actually emitted — see the tally below
|
||||
for p in idxs:
|
||||
e, w, evidence = validate_index(p)
|
||||
|
||||
BIN
web/assets/stock_godverse/1082/stock_record_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 148 KiB |
271
web/assets/stock_godverse/1082/stock_record_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_record_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Downtown Music's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_1082_record.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 1082,
|
||||
"slug": "downtown-music",
|
||||
"name": "Downtown Music",
|
||||
"suburb": "Annandale",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 1082,
|
||||
"sample": "random.Random(1082) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_1082_record.snapshot.json",
|
||||
"snapshot_sha256": "92f9a9e09c857e2257ec7b35e9ca32899be0ee51d8a49babde0fed93b5eb5283",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(1082) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_1382327",
|
||||
"title": "Building Beauty",
|
||||
"artist": "Endgames",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1497796",
|
||||
"title": "True (The Faggot Is You)",
|
||||
"artist": "Morel",
|
||||
"price": 26,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1499132",
|
||||
"title": "You & Me",
|
||||
"artist": "Philippe B.",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1510082",
|
||||
"title": "Music Is Freedom Remixes",
|
||||
"artist": "Richie Santana",
|
||||
"price": 14,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1572084",
|
||||
"title": "Paco Pe\u00f1a - Flamenco Paco Pe\u00f1a (LP, Album)",
|
||||
"artist": "Paco Pe\u00f1a",
|
||||
"price": 12,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1952439",
|
||||
"title": "The Party Boys",
|
||||
"artist": "The Party Boys (3)",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2634580",
|
||||
"title": "Shakti With John McLaughlin = \u30a6\u30a3\u30ba\u30fb\u30b8\u30e7\u30f3\u30fb\u30de\u30af\u30e9\u30d5\u30ea\u30f3",
|
||||
"artist": "Shakti",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2636233",
|
||||
"title": "Donny Hathaway \u2013 Live (Rhino Reserve)",
|
||||
"artist": "Donny Hathaway",
|
||||
"price": 58,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3375700",
|
||||
"title": "I Love You Jennifer B",
|
||||
"artist": "Jockstrap (4)",
|
||||
"price": 60,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3377454",
|
||||
"title": "Charcoal Grace",
|
||||
"artist": "Caligula's Horse",
|
||||
"price": 90,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5040486",
|
||||
"title": "Fun Time",
|
||||
"artist": "Anri (2)",
|
||||
"price": 150,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5077859",
|
||||
"title": "Everything Is Alive",
|
||||
"artist": "Slowdive",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6319846",
|
||||
"title": "A 3 Song Recording",
|
||||
"artist": "The Black Heart Procession",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6364791",
|
||||
"title": "Garford Mute",
|
||||
"artist": "Scarcity Of Tanks",
|
||||
"price": 32,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6511306",
|
||||
"title": "The Wanted Man",
|
||||
"artist": "Nick Cave & The Bad Seeds",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7329708",
|
||||
"title": "Dirrty",
|
||||
"artist": "Christina Aguilera",
|
||||
"price": 8,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/1173/stock_record_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 196 KiB |
271
web/assets/stock_godverse/1173/stock_record_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_record_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Haze Guitars's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_1173_record.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 1173,
|
||||
"slug": "haze-guitars",
|
||||
"name": "Haze Guitars",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 1173,
|
||||
"sample": "random.Random(1173) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_1173_record.snapshot.json",
|
||||
"snapshot_sha256": "342d7612904564f43b5e06fae3197caf88a6e864e5404fd1fe9e4501ec38c527",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(1173) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_735827",
|
||||
"title": "Behind The Barricades",
|
||||
"artist": "Kasey Chambers",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1506171",
|
||||
"title": "Just FX",
|
||||
"artist": "Jas Van Houten",
|
||||
"price": 33,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1572335",
|
||||
"title": "Fats Waller In London (No. 2)",
|
||||
"artist": "Fats Waller",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1927813",
|
||||
"title": "More Blood, More Tracks (The Bootleg Series Vol.14)",
|
||||
"artist": "Bob Dylan",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1955485",
|
||||
"title": "Stay With Me Heartache / I Feel Fine",
|
||||
"artist": "Wet Wet Wet",
|
||||
"price": 14,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2949568",
|
||||
"title": "Blondie Singles Collection: 1977-1982",
|
||||
"artist": "Blondie",
|
||||
"price": 29,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3150782",
|
||||
"title": "Jolene",
|
||||
"artist": "Dolly Parton",
|
||||
"price": 58,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3150992",
|
||||
"title": "Rose Pink Cadillac",
|
||||
"artist": "Dope Lemon",
|
||||
"price": 65,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3261454",
|
||||
"title": "Feature Magnetic",
|
||||
"artist": "Kool Keith",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3274472",
|
||||
"title": "Ayers Rock \u2013 Big Red Rock Vinyl LP (Used)",
|
||||
"artist": "Ayers Rock",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_4521621",
|
||||
"title": "The Pleasure Of Your Company...",
|
||||
"artist": "Models (2)",
|
||||
"price": 37,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6008610",
|
||||
"title": "Love Me Like A Rocket",
|
||||
"artist": "Kate Garner",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6308495",
|
||||
"title": "Little River",
|
||||
"artist": "Audrey Landers",
|
||||
"price": 13,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6355830",
|
||||
"title": "Butthole Surfers + PCPPEP",
|
||||
"artist": "Butthole Surfers",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6356386",
|
||||
"title": "Around The Sun",
|
||||
"artist": "R.E.M.",
|
||||
"price": 87,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6841696",
|
||||
"title": "Alice Cooper's Greatest Hits",
|
||||
"artist": "Alice Cooper",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/158/stock_record_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 212 KiB |
271
web/assets/stock_godverse/158/stock_record_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_record_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Egg Records's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_158_record.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 158,
|
||||
"slug": "egg-records",
|
||||
"name": "Egg Records",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 158,
|
||||
"sample": "random.Random(158) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_158_record.snapshot.json",
|
||||
"snapshot_sha256": "26c5c16e160d1955dd8424ed95fb22af340cd62aab8a0b15dc78ac07c70b5376",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(158) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_1490673",
|
||||
"title": "High Time",
|
||||
"artist": "MC5",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1504320",
|
||||
"title": "1 Thing",
|
||||
"artist": "Amerie",
|
||||
"price": 3,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1505490",
|
||||
"title": "Nasty Girl",
|
||||
"artist": "Inaya Day",
|
||||
"price": 13,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1555544",
|
||||
"title": "Heartache All Over The World",
|
||||
"artist": "Elton John",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1960626",
|
||||
"title": "The Very Best Of Johnny Rivers",
|
||||
"artist": "Johnny Rivers",
|
||||
"price": 12,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3148069",
|
||||
"title": "Sunburn",
|
||||
"artist": "Dominic Fike",
|
||||
"price": 69,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3274969",
|
||||
"title": "God Save The Queen",
|
||||
"artist": "Sex Pistols",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3312435",
|
||||
"title": "Death of a Party Girl",
|
||||
"artist": "TV Girl",
|
||||
"price": 70,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5225870",
|
||||
"title": "Systematic Chaos",
|
||||
"artist": "Dream Theater",
|
||||
"price": 135,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6005806",
|
||||
"title": "Physical Graffiti",
|
||||
"artist": "Led Zeppelin",
|
||||
"price": 115,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6007579",
|
||||
"title": "The Budos Band EP",
|
||||
"artist": "The Budos Band",
|
||||
"price": 52,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6307515",
|
||||
"title": "Shockwave Supernova",
|
||||
"artist": "Joe Satriani",
|
||||
"price": 80,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6512824",
|
||||
"title": "Royal Trux",
|
||||
"artist": "Royal Trux",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6515893",
|
||||
"title": "First We Take Manhattan",
|
||||
"artist": "Jennifer Warnes",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6842418",
|
||||
"title": "Any Day Now",
|
||||
"artist": "Joan Baez",
|
||||
"price": 32,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6974962",
|
||||
"title": "Di Wo Ho Ni",
|
||||
"artist": "Vis A Vis",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2200/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 209 KiB |
271
web/assets/stock_godverse/2200/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Better Read Than Dead's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2200_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2200,
|
||||
"slug": "better-read-than-dead",
|
||||
"name": "Better Read Than Dead",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2200,
|
||||
"sample": "random.Random(2200) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2200_book.snapshot.json",
|
||||
"snapshot_sha256": "f2483807c6c8e28761d1801093644ae07a4b462259974483c331adf98bcb32e1",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2200) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_831781",
|
||||
"title": "The Fallen - David Baldacci - BPAP - BOO020",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1925436",
|
||||
"title": "Lodestars Anthology: New Zealand",
|
||||
"artist": "Lodestars",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1931996",
|
||||
"title": "Audacity : Why Being Too Much Is Exactly Enough - Katherine Ryan",
|
||||
"artist": "Katherine Ryan",
|
||||
"price": 27,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1932007",
|
||||
"title": "Why We Sleep : The New Science of Sleep and Dreams - Matthew Walker",
|
||||
"artist": "Matthew Walker",
|
||||
"price": 27,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_4069295",
|
||||
"title": "99 TV Crosswords - A24",
|
||||
"artist": "A24",
|
||||
"price": 70,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6728501",
|
||||
"title": "Liars, cheats and copycatsTrickery and deception in nature",
|
||||
"artist": "NewSouth Publishing",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6728751",
|
||||
"title": "The Story of Growl",
|
||||
"artist": "Brio Books",
|
||||
"price": 19,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6730340",
|
||||
"title": "Ozzie Goes to School",
|
||||
"artist": "HarperCollins Publishers Australia",
|
||||
"price": 17,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6962635",
|
||||
"title": "Leonardo Da Vinci: the Anatomical Dra...",
|
||||
"artist": "Royal Academy of Arts",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6962907",
|
||||
"title": "Painting by Numbers: The life and art of Ferdinand",
|
||||
"artist": "NewSouth Publishing",
|
||||
"price": 14,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6964245",
|
||||
"title": "ECO STYLE",
|
||||
"artist": "New Holland Publishers",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966282",
|
||||
"title": "Children of the World",
|
||||
"artist": "teNeues Verlag",
|
||||
"price": 125,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6967149",
|
||||
"title": "Australia's Wild Places",
|
||||
"artist": "National Library of Australia",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6967659",
|
||||
"title": "Fashion Central Saint Martins",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6969218",
|
||||
"title": "Simple Natural Crochet: 35 Projects to Make - Gorge",
|
||||
"artist": "Ryland Peters & Small",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6999001",
|
||||
"title": "Grow, Cook, Dye, Wear: From Seed To Style The Susta",
|
||||
"artist": "Dorling Kindersley Publishing, Incorporated",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2201/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 200 KiB |
271
web/assets/stock_godverse/2201/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Elizabeth's Bookshop's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2201_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2201,
|
||||
"slug": "elizabeth-s-bookshop",
|
||||
"name": "Elizabeth's Bookshop",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2201,
|
||||
"sample": "random.Random(2201) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2201_book.snapshot.json",
|
||||
"snapshot_sha256": "ad170343f039a5fe37b6cac8d804d5001ddaa8533dcb4a1a58a259a629d46770",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2201) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_826954",
|
||||
"title": "Lessons in Chemistry - Bonnie Garmus - BPAP - BOO008",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 4,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1931980",
|
||||
"title": "Beaumaris Modern 2 - Fiona Austin",
|
||||
"artist": "Fiona Austin",
|
||||
"price": 65,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2065183",
|
||||
"title": "Slow Cooker: The Complete Collection - Australian Women's Weekly - BCOO - BOO053A",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3310554",
|
||||
"title": "Jones, Lesley-Anne - Songbird: An Intimate Biography Of [Book]",
|
||||
"artist": "GAR",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6109637",
|
||||
"title": "Breakfast At Tiffany's (Popular Penguins) - Truman Capote",
|
||||
"artist": "Truman Capote",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6109781",
|
||||
"title": "Lorax - Dr Seuss",
|
||||
"artist": "Dr Seuss",
|
||||
"price": 12,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6729688",
|
||||
"title": "The Man Who Wasn't There",
|
||||
"artist": "Ultimo Press",
|
||||
"price": 37,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965715",
|
||||
"title": "Matisse",
|
||||
"artist": "Tate Publishing",
|
||||
"price": 14,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966158",
|
||||
"title": "More Dream Homes: 100 Inspirational Interiors",
|
||||
"artist": "Merrell Publishers Limited",
|
||||
"price": 100,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966174",
|
||||
"title": "Wild: The Naturalistic Garden",
|
||||
"artist": "Phaidon Press Limited",
|
||||
"price": 80,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966273",
|
||||
"title": "Tales from the Forest Kingdom Coloring Book",
|
||||
"artist": "Gibbs Smith, Publisher",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6968094",
|
||||
"title": "Ravens and Red Lipstick: Japanese Photography Since",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6968262",
|
||||
"title": "A Fire Born of Exile - A Spellbinding Standalone Sci-Fi Romance and 2024 Hugo Award Finalist Perfect for Fans of Becky Chambers\\n by Aliette de Bodard",
|
||||
"artist": "Orion Publishing Group, Limited",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6968962",
|
||||
"title": "Audrey Hepburn: Icons Of Style",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"price": 17,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6994056",
|
||||
"title": "Marina Abramovic: A Visual Biography",
|
||||
"artist": "Hachette UK",
|
||||
"price": 175,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7035785",
|
||||
"title": "Scorched Grace: A Sister Holiday Mystery",
|
||||
"artist": "Margot Douaihy",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2212/stock_record_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 231 KiB |
273
web/assets/stock_godverse/2212/stock_record_index.json
Normal file
@ -0,0 +1,273 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_record_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Papa Disquo's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2212_record.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2212,
|
||||
"slug": "papa-disquo",
|
||||
"name": "Papa Disquo",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2212,
|
||||
"sample": "random.Random(2212) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2212_record.snapshot.json",
|
||||
"snapshot_sha256": "a50aa47ca1f9d4a5234ba66f44513e208cd9be0e9dca77ae867b1ba881352a82",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2212) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_1487770",
|
||||
"title": "Rhythm And Stealth",
|
||||
"artist": "Leftfield",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
],
|
||||
"condition": "Mint (M)\\n\\n \\n \\n \\n \\n Absolutely perfect in every way. Certainly never been played. Should be used sparingly as a grade. / sleeve Mint (M)"
|
||||
},
|
||||
{
|
||||
"id": "mint_1508398",
|
||||
"title": "Djengastyle#1",
|
||||
"artist": "Djenga",
|
||||
"price": 32,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1542765",
|
||||
"title": "Fever",
|
||||
"artist": "Peggy Lee",
|
||||
"price": 6,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1954799",
|
||||
"title": "Not Ready For Prime Time: Live At The Cabaret Metro, 1986",
|
||||
"artist": "The Replacements",
|
||||
"price": 82,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1955503",
|
||||
"title": "Matt Bianco - Whose Side Are You On? (7\", Single)",
|
||||
"artist": "Matt Bianco",
|
||||
"price": 20,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2635771",
|
||||
"title": "Clifford Brown And Max Roach \u2013 Study In Brown (E/E)",
|
||||
"artist": "Clifford Brown and Max Roach",
|
||||
"price": 70,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3153138",
|
||||
"title": "Hours...",
|
||||
"artist": "David Bowie",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3277085",
|
||||
"title": "Armistice Day",
|
||||
"artist": "Midnight Oil",
|
||||
"price": 200,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3277357",
|
||||
"title": "How Much Longer",
|
||||
"artist": "Re-Flex (2)",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3293690",
|
||||
"title": "The Runner (Original Soundtrack)",
|
||||
"artist": "Boy Harsher",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3511436",
|
||||
"title": "Bye Bye Blues!",
|
||||
"artist": "Les Paul & Mary Ford",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
],
|
||||
"condition": "M"
|
||||
},
|
||||
{
|
||||
"id": "mint_4520905",
|
||||
"title": "Various \u2013 Now Generation - The Best Of The Indie Stuff (2 x CD, Compilation)",
|
||||
"artist": "Various",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5947485",
|
||||
"title": "Where Shadows Forever Reign",
|
||||
"artist": "Dark Funeral",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5948394",
|
||||
"title": "Metal Church",
|
||||
"artist": "Metal Church",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6358606",
|
||||
"title": "Autofiction",
|
||||
"artist": "Suede",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6359222",
|
||||
"title": "Ultraviolet Battle Hymns And True Confessions",
|
||||
"artist": "The Dream Syndicate",
|
||||
"price": 32,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2287/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 212 KiB |
271
web/assets/stock_godverse/2287/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Little Bird Bookshop's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2287_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2287,
|
||||
"slug": "little-bird-bookshop",
|
||||
"name": "Little Bird Bookshop",
|
||||
"suburb": "Paddington",
|
||||
"state": "QLD"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2287,
|
||||
"sample": "random.Random(2287) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2287_book.snapshot.json",
|
||||
"snapshot_sha256": "cc100d0518b78bc0f095f945c186e8e179ca82d16ed973d11f0b56984f6dbd49",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2287) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_826912",
|
||||
"title": "An Undeniable Voice - Tania Blanchard - BPAP - BOO009",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1926301",
|
||||
"title": "I'm Very Busy - Oliver Jeffers",
|
||||
"artist": "Oliver Jeffers",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1926750",
|
||||
"title": "Such Great Heights - Chris Deville",
|
||||
"artist": "Chris Deville",
|
||||
"price": 55,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3275778",
|
||||
"title": "Daniel Falconer - The Art Of District 9 Weta Workshop 2010 Hardcover Book",
|
||||
"artist": "Movie",
|
||||
"price": 190,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3310625",
|
||||
"title": "Ruland, Jim - Corporate Rock Sucks: The Rise And Fall [Book]",
|
||||
"artist": "GAR",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_4296826",
|
||||
"title": "Trowell, Ian - Throbbing Gristle: An Endless Discontent [Book]",
|
||||
"artist": "GAR",
|
||||
"price": 70,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6962945",
|
||||
"title": "The Iconic Interior - 1900 to the Present",
|
||||
"artist": "Thames & Hudson, Limited",
|
||||
"price": 1900,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963194",
|
||||
"title": "Modern Architecture A-Z",
|
||||
"artist": "Taschen",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965345",
|
||||
"title": "Learn Oils Quickly",
|
||||
"artist": "Pavilion Books",
|
||||
"price": 20,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966159",
|
||||
"title": "Flower Colour Theory",
|
||||
"artist": "Phaidon",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966277",
|
||||
"title": "The Library: A World History",
|
||||
"artist": "Thames and Hudson Ltd",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966390",
|
||||
"title": "Small Space Decorating",
|
||||
"artist": "John Wiley and Sons Ltd",
|
||||
"price": 28,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966784",
|
||||
"title": "Little Guides to Style: The Story of Four Iconic Fa",
|
||||
"artist": "Welbeck",
|
||||
"price": 100,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6967561",
|
||||
"title": "Akris",
|
||||
"artist": "Assouline",
|
||||
"price": 175,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6969361",
|
||||
"title": "RHS Encyclopedia of Plants and Flowers",
|
||||
"artist": "Penguin Books Ltd",
|
||||
"price": 100,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6994248",
|
||||
"title": "Common Reader",
|
||||
"artist": "HarperCollins Publishers Limited",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2377/stock_toy_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 124 KiB |
271
web/assets/stock_godverse/2377/stock_toy_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_toy_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Kidstuff's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2377_toy.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2377,
|
||||
"slug": "kidstuff",
|
||||
"name": "Kidstuff",
|
||||
"suburb": "Camperdown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2377,
|
||||
"sample": "random.Random(2377) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2377_toy.snapshot.json",
|
||||
"snapshot_sha256": "904cbaf444ed38cb85d22696904c4f07b3a1b2302b3f1964c0796ff96f45ab70",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2377) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_28804",
|
||||
"title": "Mx Vs Atv - Unleashed Xbox (Original)",
|
||||
"artist": "Microsoft",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_28813",
|
||||
"title": "Rapala Pro Fishing Playstation 2 (PS2)",
|
||||
"artist": "Sony",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_60762",
|
||||
"title": "Mario Isalnd Party World Tour Nintendo 3DS",
|
||||
"artist": "Nintendo",
|
||||
"price": 18,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_64465",
|
||||
"title": "FIFA 15 Playstation 3 (PS3)",
|
||||
"artist": "Ea Sports",
|
||||
"price": 2,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_165601",
|
||||
"title": "Spiderman Miles Morales Playstation 5 (PS5)",
|
||||
"artist": "Sony",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_370120",
|
||||
"title": "Nintendo Switch Black Hac-001",
|
||||
"artist": "Nintendo",
|
||||
"price": 149,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_387296",
|
||||
"title": "Sony Playstation 4 (PS4) Slim 500GB Cuh-Zct2e 500GB Black",
|
||||
"artist": "Sony",
|
||||
"price": 129,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_393994",
|
||||
"title": "Centenary Of The Overland Telegraph White",
|
||||
"artist": "Centenary Of The Overland Telegraph",
|
||||
"price": 2,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_525015",
|
||||
"title": "Nintendo Sports Nintendo Switch",
|
||||
"artist": "Nintendo",
|
||||
"price": 12,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1949276",
|
||||
"title": "Call Of Duty Black Ops Iii Playstation 4 (PS4)",
|
||||
"artist": "Sony",
|
||||
"price": 5,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2144718",
|
||||
"title": "Jim Shore Disney Traditions - The Lion King - Remember Who You Are Storybook",
|
||||
"artist": "JIM SHORE DISNEY TRADITIONS",
|
||||
"price": 201,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2145450",
|
||||
"title": "Games Workshop Warhammer 40K World Eaters Codex",
|
||||
"artist": "Games Workshop",
|
||||
"price": 93,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_4720215",
|
||||
"title": "Pokemon Sheild Nintendo Switch",
|
||||
"artist": "Nintendo",
|
||||
"price": 49,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5522185",
|
||||
"title": "Pop! Minnie & Mickey",
|
||||
"artist": "Pop!",
|
||||
"price": 39,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6812211",
|
||||
"title": "AK Interactive Wargame: Medium Earth Enamel Liquid Pigment 35ml",
|
||||
"artist": "AK INTERACTIVE",
|
||||
"price": 11,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6858153",
|
||||
"title": "Nemesis Retaliation: Core Box",
|
||||
"artist": "Awaken Realms",
|
||||
"price": 250,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/247/stock_record_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 254 KiB |
271
web/assets/stock_godverse/247/stock_record_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "record",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_record_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not The Vintage Record's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_247_record.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 247,
|
||||
"slug": "the-vintage-record",
|
||||
"name": "The Vintage Record",
|
||||
"suburb": "Annandale",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 247,
|
||||
"sample": "random.Random(247) over an id-ordered pool of 111320 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_247_record.snapshot.json",
|
||||
"snapshot_sha256": "1f7a99208d876b3c013335cce8103b561b5743a6cff894e4c44d253cda94d253",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(247) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_1383351",
|
||||
"title": "The Real Macaw",
|
||||
"artist": "Graham Parker",
|
||||
"price": 15,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1449829",
|
||||
"title": "Survive",
|
||||
"artist": "Lewis Capaldi",
|
||||
"price": 60,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1501649",
|
||||
"title": "Eclissi",
|
||||
"artist": "Stefano Di Carlo",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1572697",
|
||||
"title": "The First Time Ever (I Saw Your Face)",
|
||||
"artist": "Peter Nero",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1923720",
|
||||
"title": "Distasteful Character Assissination",
|
||||
"artist": "Couch Kids Antidote",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1954310",
|
||||
"title": "Crying In The Chapel",
|
||||
"artist": "Peter Blakeley",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_2638666",
|
||||
"title": "Frank Tovey \u2013 Tyranny And The Hired Hand (VG+/VG+)",
|
||||
"artist": "Frank Tovey",
|
||||
"price": 20,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3149798",
|
||||
"title": "Sung Tongs",
|
||||
"artist": "Animal Collective",
|
||||
"price": 67,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3151476",
|
||||
"title": "All Shook Down",
|
||||
"artist": "The Replacements",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3153341",
|
||||
"title": "Have You Ever Seen The Rain",
|
||||
"artist": "Smokie",
|
||||
"price": 55,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3277109",
|
||||
"title": "Strictly 4 My N.I.G.G.A.Z...",
|
||||
"artist": "2Pac",
|
||||
"price": 140,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3308281",
|
||||
"title": "Introduce Yourself",
|
||||
"artist": "Faith No More",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3415870",
|
||||
"title": "Coyote Butterfly",
|
||||
"artist": "Simon Joyner",
|
||||
"price": 46,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5943968",
|
||||
"title": "Armistice Day: Live At The Domain, Sydney",
|
||||
"artist": "Midnight Oil",
|
||||
"price": 28,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6010664",
|
||||
"title": "The Freewheelin' Bob Dylan",
|
||||
"artist": "Bob Dylan",
|
||||
"price": 48,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6537917",
|
||||
"title": "The Videos 1989 - 2004",
|
||||
"artist": "Metallica",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_record_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/2506/stock_toy_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 154 KiB |
271
web/assets/stock_godverse/2506/stock_toy_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_toy_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Toys and Tales's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_2506_toy.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 2506,
|
||||
"slug": "toys-and-tales",
|
||||
"name": "Toys and Tales",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 2506,
|
||||
"sample": "random.Random(2506) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_2506_toy.snapshot.json",
|
||||
"snapshot_sha256": "af879aad5b71c80c9b8c0e36b3e3054ff9096df13d06681466c010ac3b38426f",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(2506) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_9361",
|
||||
"title": "Fashion Factory For The Sims 2 Orange",
|
||||
"artist": "Computer Game",
|
||||
"price": 3,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_12503",
|
||||
"title": "Lominger International The Leadership Architect Red",
|
||||
"artist": "Lominger International",
|
||||
"price": 79,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_15800",
|
||||
"title": "Generic Book Ends With Money Box",
|
||||
"artist": "Generic",
|
||||
"price": 5,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_54954",
|
||||
"title": "Tom Clancy's Rainbow Six Vegas Playstation 3 (PS3)",
|
||||
"artist": "Sony",
|
||||
"price": 6,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_122102",
|
||||
"title": "Funko Eivor",
|
||||
"artist": "Funko",
|
||||
"price": 7,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_309175",
|
||||
"title": "Assasins Creed Black Flag Xbox 360",
|
||||
"artist": "Microsoft",
|
||||
"price": 5,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_408285",
|
||||
"title": "Pokemon Legends Za Nintendo Switch",
|
||||
"artist": "Nintendo",
|
||||
"price": 69,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_418917",
|
||||
"title": "Funko Black Adam 1232 Funko Pop Figure",
|
||||
"artist": "Funko",
|
||||
"price": 9,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_494201",
|
||||
"title": "Battlefield 2042 Xbox One",
|
||||
"artist": "Microsoft",
|
||||
"price": 5,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_508371",
|
||||
"title": "Sony Playstation 5 (PS5) White",
|
||||
"artist": "Sony",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_587671",
|
||||
"title": "Destiny 2 Xbox One",
|
||||
"artist": "Microsoft",
|
||||
"price": 2,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5922574",
|
||||
"title": "STORY OF SEASONS: Grand Bazaar",
|
||||
"artist": "STORY OF SEASONS",
|
||||
"price": 84,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6731996",
|
||||
"title": "Little Nightmares: Descent to Nowhere #4 Stokely Cover",
|
||||
"artist": "Titan Comics",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6857889",
|
||||
"title": "Gorma, the Gullet (Borderless) [Commander: Secrets of Strixhaven]",
|
||||
"artist": "Magic: The Gathering",
|
||||
"price": 6,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7229680",
|
||||
"title": "Razer Cynosa Chroma BlackKeyboard - GamingCairns, QLD",
|
||||
"artist": "Razer",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7267697",
|
||||
"title": "Jada Ultra Street Fighter 2 The Final Challengers M. Bison BlackToyMorley, WA",
|
||||
"artist": "Jada",
|
||||
"price": 129,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/608/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 258 KiB |
271
web/assets/stock_godverse/608/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Goulds Books's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_608_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 608,
|
||||
"slug": "goulds-books",
|
||||
"name": "Goulds Books",
|
||||
"suburb": "Newtown",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 608,
|
||||
"sample": "random.Random(608) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_608_book.snapshot.json",
|
||||
"snapshot_sha256": "f37b975e762c4c33530dce46f503ca7bb85fced770092ba7d7299e092630dc30",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(608) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_757983",
|
||||
"title": "World table - The Australian Women's Weekly - BCOO - BOO052A",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1932075",
|
||||
"title": "Stay Inspired : Finding Motivation for Your Creative Work - Brandon Stosuy",
|
||||
"artist": "Brandon Stosuy",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1933916",
|
||||
"title": "Monocle Guide to Shops, Kiosks and Markets",
|
||||
"artist": "Monocle",
|
||||
"price": 85,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6109669",
|
||||
"title": "TTT : Tattoo - Nick Schonberger",
|
||||
"artist": "TTTISM, Nick Schonberger",
|
||||
"price": 110,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6306539",
|
||||
"title": "MOKUMOKUREN | THE SUMMER HIKARU DIED, VOL. 3",
|
||||
"artist": "HACHETTE LIVRE NZ",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6962465",
|
||||
"title": "David Jones : 175 Years",
|
||||
"artist": "NewSouth Publishing",
|
||||
"price": 175,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963671",
|
||||
"title": "My Amalfi Coast",
|
||||
"artist": "Penguin Random House",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963722",
|
||||
"title": "Crocheted Accessories",
|
||||
"artist": "GMC Distribution",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6964521",
|
||||
"title": "1000 Monuments of Genius",
|
||||
"artist": "Sirrocco-Parkstone International",
|
||||
"price": 1000,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965023",
|
||||
"title": "Grafting and Budding for Australian Gardeners",
|
||||
"artist": "Manna Trading Pty Ltd",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965459",
|
||||
"title": "Sashiko 365: Stitch a New Sashiko Pattern Every Day",
|
||||
"artist": "David & Charles",
|
||||
"price": 365,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966582",
|
||||
"title": "The Quintessential Grooming Guide for the Modern Ge",
|
||||
"artist": "Jacqui Small",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966740",
|
||||
"title": "A Place in the Country: A Guide to Creating your Pa",
|
||||
"artist": "Fremantle Press",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6967976",
|
||||
"title": "Tiwi in Paris",
|
||||
"artist": "Thames & Hudson Australia Pty Ltd",
|
||||
"price": 27,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6968969",
|
||||
"title": "The Ultimate Bushcraft Survival Pack: Tips, Tools,",
|
||||
"artist": "Quarto US",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6999820",
|
||||
"title": "Dingo Puppet (Lil Friends)",
|
||||
"artist": "Korimco",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/717/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 239 KiB |
271
web/assets/stock_godverse/717/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Co-op's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_717_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 717,
|
||||
"slug": "co-op",
|
||||
"name": "Co-op",
|
||||
"suburb": "Glebe",
|
||||
"state": "NSW"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 717,
|
||||
"sample": "random.Random(717) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_717_book.snapshot.json",
|
||||
"snapshot_sha256": "92715735c6f2f20d8d2880cbf9a5a2211ef2c1609d1da69fd6bb1995ddc5432c",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(717) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_822558",
|
||||
"title": "Bookery Cook - Jessica Thompson, Georgia Thompson, Maxine Thompson - BCOO - BOO043",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_824813",
|
||||
"title": "QCE Biology: Units 3 & 4 - BTEX - BOO038",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 12,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_829668",
|
||||
"title": "Death in the Arctic - Tom Hindle - BPAP - BOO017",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_831472",
|
||||
"title": "Absolute Power - David Baldacci - BPAP - BOO022",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3267613",
|
||||
"title": "Rolling Stones \u2013 All The Songs: The Story Behind Every Track By Philippe Margotin & Jean-Michel Guesdon Hardcover Book (2016)",
|
||||
"artist": "Rock-Pop-Alt",
|
||||
"price": 90,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6728479",
|
||||
"title": "Spellcaster - an intense enemies-to-lovers romantasy with steamy heat, magical creatures, fast pacing, and stakes that will keep you hooked.Dive into a world where love is as dangerous as power -- and nothing is ever as it seems. Pre-order now.",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"price": 33,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6728802",
|
||||
"title": "The Double Dangerous Book For Boys",
|
||||
"artist": "HarperCollins Publishers",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6729273",
|
||||
"title": "Every Thing We Keep (Revised Edition)",
|
||||
"artist": "SCHOLASTIC AUSTRALIA PTY LTD",
|
||||
"price": 19,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963103",
|
||||
"title": "Make Yourself at Home - A Guide to Decorating with",
|
||||
"artist": "Gibbs Smith, Publisher",
|
||||
"price": 60,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963297",
|
||||
"title": "Liberty Book of Simple Sewing - A Collection of 25",
|
||||
"artist": "Quadrille Publishing Ltd",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965982",
|
||||
"title": "The Artists' Colour Box",
|
||||
"artist": "Thames and Hudson Ltd",
|
||||
"price": 37,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6968195",
|
||||
"title": "Erotica Universalis",
|
||||
"artist": "Taschen",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7004444",
|
||||
"title": "Tamsin Johnson: Contrast, Space, Harmony",
|
||||
"artist": "Rizzoli International Publications, Incorporated",
|
||||
"price": 145,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7035606",
|
||||
"title": "SLUTS: An Anthology",
|
||||
"artist": "Michelle Tea",
|
||||
"price": 33,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7035682",
|
||||
"title": "The Postscript Murders (DS Harbinder Kaur Book #2)",
|
||||
"artist": "Elly Griffiths",
|
||||
"price": 23,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7035751",
|
||||
"title": "Lucky Red",
|
||||
"artist": "Claudia Cravens",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/767/stock_toy_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 128 KiB |
271
web/assets/stock_godverse/767/stock_toy_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "toy",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_toy_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Presents of Mind's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_767_toy.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 767,
|
||||
"slug": "presents-of-mind",
|
||||
"name": "Presents of Mind",
|
||||
"suburb": "Paddington",
|
||||
"state": "QLD"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 767,
|
||||
"sample": "random.Random(767) over an id-ordered pool of 103530 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_767_toy.snapshot.json",
|
||||
"snapshot_sha256": "356b7f54239ae0f1e1c738872063011cf9bcbe48265bc372b3009da6daf5be3f",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(767) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_41771",
|
||||
"title": "Panini NBA Prizm Rookie Card Joel Embiid 76Ers Silver",
|
||||
"artist": "Panini",
|
||||
"price": 39,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_41875",
|
||||
"title": "Funko Pop! Heroes Wonder Woman (2018 Fall Convention Exclusive Limited Edition)",
|
||||
"artist": "Funko",
|
||||
"price": 39,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_69556",
|
||||
"title": "Ufc 2 Playstation 4 (PS4)",
|
||||
"artist": "Sony",
|
||||
"price": 9,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_169013",
|
||||
"title": "Marvel Cyborg Spider-Man",
|
||||
"artist": "Marvel",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_331293",
|
||||
"title": "Microsoft Xbox One X 1TB 1787 White",
|
||||
"artist": "Microsoft",
|
||||
"price": 199,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_401046",
|
||||
"title": "Call Of Duty Black Ops Playstation 3 (PS3)",
|
||||
"artist": "Sony",
|
||||
"price": 5,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_404220",
|
||||
"title": "Pop! Movies Harley Quinn",
|
||||
"artist": "Pop! Movies",
|
||||
"price": 30,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_495340",
|
||||
"title": "Battlefield 2042 Playstation 4 (PS4)",
|
||||
"artist": "Sony",
|
||||
"price": 9,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_519277",
|
||||
"title": "Usa 1 Oz American Eagle Silver Bullion Coin Silver",
|
||||
"artist": "Usa",
|
||||
"price": 159,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_532131",
|
||||
"title": "Halo 3 Xbox 360",
|
||||
"artist": "Microsoft",
|
||||
"price": 6,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_537456",
|
||||
"title": "Knife Edge (Jpn) Nintendo 64 (N64)",
|
||||
"artist": "Nintendo",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_5912643",
|
||||
"title": "Nostalgic-Art Round Ducati Moto Servizio Decorative Sign Plaque 35x35x0.5cm",
|
||||
"artist": "NOSTALGIC ART",
|
||||
"price": 36,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6504005",
|
||||
"title": "Ribtex UV Resin",
|
||||
"artist": "Ribtex",
|
||||
"price": 6,
|
||||
"price_band": "bargain",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6515920",
|
||||
"title": "Velvet Underground - Andy Warhol",
|
||||
"artist": "VELVET UNDERGROUND",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6811007",
|
||||
"title": "TRUMPETER 1/35 CH-47D Chinook",
|
||||
"artist": "TRUMPETER",
|
||||
"price": 171,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6858956",
|
||||
"title": "D&D Booster Brick: Icons of the Realms - Baldurs Gate Descent into Avernus (8)",
|
||||
"artist": "WizKids",
|
||||
"price": 169,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_toy_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
BIN
web/assets/stock_godverse/885/stock_book_atlas_00.webp
Normal file
|
After Width: | Height: | Size: 211 KiB |
271
web/assets/stock_godverse/885/stock_book_index.json
Normal file
@ -0,0 +1,271 @@
|
||||
{
|
||||
"version": 1,
|
||||
"kind": "book",
|
||||
"tier": 1,
|
||||
"sourcing": "mint",
|
||||
"atlas_px": 1024,
|
||||
"cell_w": 256,
|
||||
"cell_h": 256,
|
||||
"count": 16,
|
||||
"atlases": [
|
||||
"stock_book_atlas_00.webp"
|
||||
],
|
||||
"license": "in-house-green \u2014 real dealgod listing photos (the sellers' own product shots), cached locally; FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"attribution": "MINT (seeded sample, not Scrumptious Reads Book Store's stock): real dealgod listings \u2014 the sellers' own product shots \u00b7 cover cache: GODVERSE/dealgod",
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"snapshot": "mint_885_book.snapshot.json",
|
||||
"shop": {
|
||||
"godverse_id": 885,
|
||||
"slug": "scrumptious-reads-book-store",
|
||||
"name": "Scrumptious Reads Book Store",
|
||||
"suburb": "Ashgrove",
|
||||
"state": "QLD"
|
||||
},
|
||||
"provenance": {
|
||||
"generator": "pipeline/godverse_stock.py",
|
||||
"source": {
|
||||
"feed_db": "dealgod",
|
||||
"feed_dump": "dealgod-20260715-033001.sql.gz",
|
||||
"image_cache": "/Volumes/johnking/dealgod_backup/images",
|
||||
"captured": "2026-07-15",
|
||||
"seed": 885,
|
||||
"sample": "random.Random(885) over an id-ordered pool of 19707 listings"
|
||||
},
|
||||
"license": {
|
||||
"covers": "real dealgod listing photos (the sellers' own product shots), cached locally",
|
||||
"zone": "in-house-green",
|
||||
"flag": "FLAG BEFORE ANY PUBLIC/COMMERCIAL RELEASE",
|
||||
"metadata": "real titles/artists \u2014 John's R23 amendment to the no-real-trademarks law",
|
||||
"sourcing": "MINT \u2014 a seeded sample standing in for a shop with no POS. Plausible, and NEVER this shop's actual stock. Nothing here is a claim about this business."
|
||||
},
|
||||
"snapshot": "mint_885_book.snapshot.json",
|
||||
"snapshot_sha256": "8d279bcfae6185e577764fedfd4dfc609bd3afbdba2065197e6b753bc6ddc4dd",
|
||||
"determinism": "pure bake; the sample itself is seeded random.Random(885) over an id-ordered pool => same shop id + same pool = same crate, forever"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"id": "mint_829641",
|
||||
"title": "Worthy Opponents - Danielle Steel - BPAP - BOO018",
|
||||
"artist": "Lifeline Queensland",
|
||||
"price": 8,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.0,
|
||||
0.25,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1903008",
|
||||
"title": "Lonely Planet's Travel Journal - Pink",
|
||||
"artist": "Lonely Planet",
|
||||
"price": 33,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.0,
|
||||
0.5,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1925211",
|
||||
"title": "Aqua Nullius - Jack Mitchell",
|
||||
"artist": "Jack Mitchell",
|
||||
"price": 85,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.0,
|
||||
0.75,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1928391",
|
||||
"title": "China (Phaidon Cookbook) - Kei Lum Chan",
|
||||
"artist": "Kei Lum Chan",
|
||||
"price": 75,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.0,
|
||||
1.0,
|
||||
0.25
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1930798",
|
||||
"title": "How to Prevent the Next Pandemic (Hardback) - Bill Gates",
|
||||
"artist": "Bill Gates",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.25,
|
||||
0.25,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_1930874",
|
||||
"title": "Tomorrow, and Tomorrow, and Tomorrow - Gabrielle Zevin",
|
||||
"artist": "Gabrielle Zevin",
|
||||
"price": 25,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.25,
|
||||
0.5,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_3275806",
|
||||
"title": "Popular Annual 1964 Sept - Dave Clark 5 Vs Beatles Magazine (Used)",
|
||||
"artist": "Rock-Pop-Alt",
|
||||
"price": 40,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.25,
|
||||
0.75,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6938204",
|
||||
"title": "Traffic Saga",
|
||||
"artist": "Lia Dewey Morgan",
|
||||
"price": 20,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.25,
|
||||
1.0,
|
||||
0.5
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6961188",
|
||||
"title": "Murder In Paris '68",
|
||||
"artist": "Monoray",
|
||||
"price": 68,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.5,
|
||||
0.25,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963036",
|
||||
"title": "Knitting Stitches Step-by-Step: More than 150 Essen",
|
||||
"artist": "Dorling Kindersley",
|
||||
"price": 150,
|
||||
"price_band": "grail",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.5,
|
||||
0.5,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6963927",
|
||||
"title": "Banksy",
|
||||
"artist": "Random House US",
|
||||
"price": 55,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.5,
|
||||
0.75,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6965987",
|
||||
"title": "The Talks - No Idea Is Final: Quotes from the Creat",
|
||||
"artist": "Phaidon",
|
||||
"price": 50,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.5,
|
||||
1.0,
|
||||
0.75
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6966191",
|
||||
"title": "Yates Garden Guide ANZ Edition",
|
||||
"artist": "HarperCollins Publishers Australia",
|
||||
"price": 45,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.0,
|
||||
0.75,
|
||||
0.25,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_6994153",
|
||||
"title": "Absynthe",
|
||||
"artist": "Head of Zeus",
|
||||
"price": 10,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.25,
|
||||
0.75,
|
||||
0.5,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7000975",
|
||||
"title": "Sociopath: A Memoir\\n by Patric Gagne",
|
||||
"artist": "PAN MACMILLAN UK",
|
||||
"price": 25,
|
||||
"price_band": "standard",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.5,
|
||||
0.75,
|
||||
0.75,
|
||||
1.0
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "mint_7004394",
|
||||
"title": "Having Spent Life Seeking",
|
||||
"artist": "Penguin Random House",
|
||||
"price": 35,
|
||||
"price_band": "collector",
|
||||
"atlas": "stock_book_atlas_00.webp",
|
||||
"uv": [
|
||||
0.75,
|
||||
0.75,
|
||||
1.0,
|
||||
1.0
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
110
web/assets/stock_godverse/index.json
Normal file
@ -0,0 +1,110 @@
|
||||
{
|
||||
"version": 1,
|
||||
"shops": [
|
||||
{
|
||||
"godverseShopId": 1082,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 1173,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 158,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2200,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2201,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2212,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2287,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2377,
|
||||
"types": [
|
||||
"toy"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 247,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 2506,
|
||||
"types": [
|
||||
"toy"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 3962749,
|
||||
"types": [
|
||||
"record"
|
||||
],
|
||||
"sourcing": "real"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 608,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 717,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 767,
|
||||
"types": [
|
||||
"toy"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
},
|
||||
{
|
||||
"godverseShopId": 885,
|
||||
"types": [
|
||||
"book"
|
||||
],
|
||||
"sourcing": "mint"
|
||||
}
|
||||
]
|
||||
}
|
||||
@ -113,13 +113,21 @@ export function createDig(THREE, renderer) {
|
||||
const css = el('style'); css.textContent = `
|
||||
.pcdg-hint{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:rgba(0,0,0,.7);color:#d8d8e0;padding:6px 14px;font:13px "Courier New",monospace;pointer-events:none;display:none;z-index:60}
|
||||
.pcdg-cur{position:fixed;left:50%;top:64px;transform:translateX(-50%);color:#ffd23d;font:700 15px "Courier New",monospace;text-shadow:0 1px 4px #000;pointer-events:none;text-align:center;max-width:80%;display:none;z-index:60}
|
||||
.pcdg-panel{position:fixed;right:6%;top:50%;transform:translateY(-50%);width:250px;background:#0e0e16;border:1px solid #ffd23d;padding:16px;color:#d8d8e0;font:14px "Courier New",monospace;display:none;z-index:61}
|
||||
.pcdg-panel h3{margin:.1em 0;color:#ffd23d;font-size:15px}
|
||||
.pcdg-panel .meta{color:#8a8a9a;font-size:12px;margin:4px 0 8px}
|
||||
.pcdg-panel .price{font-size:24px;color:#3dff8b}
|
||||
.pcdg-panel button{margin-top:12px;width:100%;padding:9px;border:1px solid #666;background:#1d1d2b;color:#d8d8e0;font:inherit;cursor:pointer}
|
||||
.pcdg-panel button:hover{border-color:#3dff8b;color:#3dff8b}
|
||||
.pcdg-panel .x{position:absolute;top:6px;right:11px;cursor:pointer;color:#888}
|
||||
/* The pull panel is the shop's PRICE STICKER, not a data readout: manila card, typewriter ink, the
|
||||
round yellow $ sticker that already sits on the sleeve art (see the sleeve canvas above), a rubber-
|
||||
stamped condition grade. Fields render only when present — a missing one leaves no stray separator. */
|
||||
.pcdg-panel{position:fixed;right:6%;top:50%;transform:translateY(-50%) rotate(-1.1deg);width:262px;background:#f4ecd8;border:1px solid #cbbf9e;box-shadow:0 10px 26px rgba(0,0,0,.55);padding:15px 16px 14px;color:#241f18;font:14px "Courier New",monospace;display:none;z-index:61}
|
||||
.pcdg-panel .sticker{float:right;width:54px;height:54px;border-radius:50%;background:#f4e11a;border:1px solid #d3bf00;color:#c1121f;font:700 18px Arial;line-height:54px;text-align:center;transform:rotate(5deg);margin:-2px -4px 4px 10px;box-shadow:0 1px 3px rgba(0,0,0,.25)}
|
||||
.pcdg-panel h3{margin:.1em 0 3px;color:#241f18;font-size:15px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
|
||||
.pcdg-panel .ttl{color:#4c4436;font-size:13px;font-style:italic;margin:0 0 9px;line-height:1.25}
|
||||
.pcdg-panel .stamps{clear:both;display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-height:1px}
|
||||
.pcdg-panel .grade{border:1.5px solid #b3121f;color:#b3121f;padding:1px 6px;font:700 11px "Courier New",monospace;letter-spacing:.08em;transform:rotate(-2.5deg)}
|
||||
.pcdg-panel .tag{color:#6f6553;font-size:11px;letter-spacing:.05em}
|
||||
.pcdg-panel .star{color:#b3121f;font-size:13px}
|
||||
.pcdg-panel button{margin-top:13px;width:100%;padding:9px;border:1px solid #8a7f66;background:#e7dcc2;color:#241f18;font:700 13px "Courier New",monospace;letter-spacing:.06em;cursor:pointer}
|
||||
.pcdg-panel button:hover:not(:disabled){background:#241f18;color:#f4e11a;border-color:#241f18}
|
||||
.pcdg-panel button:disabled{color:#9a917c;border-color:#c3b99f;cursor:default}
|
||||
.pcdg-panel .x{position:absolute;top:4px;left:8px;cursor:pointer;color:#a89e86;font-size:13px}
|
||||
.pcdg-out{position:fixed;left:16px;top:16px;background:#1d1d2b;border:1px solid #666;color:#d8d8e0;padding:8px 14px;font:13px "Courier New",monospace;cursor:pointer;display:none;z-index:60}
|
||||
.pcdg-out:hover{border-color:#3dff8b;color:#3dff8b}
|
||||
.pcdg-toast{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);background:#0e0e16;border:1px solid #3dff8b;color:#3dff8b;padding:14px 22px;font:700 15px "Courier New",monospace;z-index:62;display:none}`;
|
||||
@ -211,10 +219,21 @@ export function createDig(THREE, renderer) {
|
||||
function showPanel(entry) {
|
||||
const o = entry.offer;
|
||||
const cash = getCashCb ? getCashCb() : 999;
|
||||
panel.innerHTML = `<div class="x">✕</div><h3>${o.a}</h3>`
|
||||
+ `<div class="meta">“${o.t}” · ${o.y} ${o.s} · ${o.cond}${o.rare ? ' · ★ RARE' : ''}</div>`
|
||||
+ `<div class="price">$${o.price}</div>`
|
||||
+ `<button ${o.price > cash ? 'disabled' : ''}>${o.price > cash ? 'not enough cash' : 'BUY IT'}</button>`;
|
||||
// A price sticker, composed from what this item ACTUALLY has. Real pack items carry no year (and
|
||||
// may carry no grade); procedural ones carry both. Build the stamp row from present parts only —
|
||||
// never emit a separator around a hole (that's what read as a database row). §7.2c.
|
||||
const esc = (s) => String(s).replace(/[&<>"]/g, m => ({ '&':'&','<':'<','>':'>','"':'"' }[m]));
|
||||
const stamps = [];
|
||||
if (o.cond) stamps.push(`<span class="grade">${esc(o.cond)}${o.sleeveCond ? '/' + esc(o.sleeveCond) : ''}</span>`);
|
||||
const line = [o.y, o.s].filter(Boolean).join(' '); // "1974 SOUL" | "SOUL" | "" — never " · "
|
||||
if (line) stamps.push(`<span class="tag">${esc(line)}</span>`);
|
||||
if (o.rare) stamps.push(`<span class="star">★ ${o.real ? 'GRAIL' : 'RARE'}</span>`);
|
||||
panel.innerHTML = `<div class="x">✕</div>`
|
||||
+ `<div class="sticker">$${esc(o.price)}</div>`
|
||||
+ `<h3>${esc(o.a)}</h3>`
|
||||
+ (o.t ? `<div class="ttl">“${esc(o.t)}”</div>` : '')
|
||||
+ (stamps.length ? `<div class="stamps">${stamps.join('')}</div>` : '')
|
||||
+ `<button ${o.price > cash ? 'disabled' : ''}>${o.price > cash ? 'NOT ENOUGH CASH' : 'BUY IT'}</button>`;
|
||||
panel.style.display = 'block';
|
||||
panel.querySelector('.x').onclick = unpull;
|
||||
const b = panel.querySelector('button');
|
||||
@ -271,8 +290,16 @@ export function createDig(THREE, renderer) {
|
||||
const rr = mulberry32(seed >>> 0), out = [];
|
||||
for (let i = 0; i < n; i++) {
|
||||
const it = pack.items[(rr() * pack.items.length) | 0];
|
||||
// Real fields straight off the atlas index (§7.2c): condition/sleeve_cond are OPTIONAL — present on
|
||||
// POS-sourced items, absent on mint ones that had no genuine grade. `y` (year) is never in the index,
|
||||
// so it stays empty and the card simply omits it. No invented values: an unstated grade stays unstated.
|
||||
// `grail` becomes the ★ stamp, so it must NOT also ride in `s` — otherwise the card reads
|
||||
// "GRAIL ★ GRAIL". (Procedural sleeves are unaffected: their `s` is a genre, not the band.)
|
||||
const band = (it.price_band || '').toUpperCase();
|
||||
out.push({ real: true, pack, item: it, a: it.artist, t: it.title, price: it.price,
|
||||
s: (it.price_band || '').toUpperCase(), y: '', cond: '', rare: it.price_band === 'grail' });
|
||||
s: band === 'GRAIL' ? '' : band, y: '',
|
||||
cond: it.condition || '', sleeveCond: it.sleeve_cond || '',
|
||||
rare: it.price_band === 'grail' });
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
@ -24,6 +24,62 @@ const WALL_TINTS = ['#c9b8a0', '#b0b8ab', '#c4b0b0', '#a8b4c0', '#c4bc9c', '#cab
|
||||
const ROOF_TINT = '#5b5148';
|
||||
const AWNING_SKINS = ['red', 'green', 'blue'];
|
||||
|
||||
// ── R26 #5 — the stocked shopfront (B's polish pick) ──────────────────────────────────────────────
|
||||
// A crate-diggers' shop should read as one FROM THE FOOTPATH. The beta makes every keyed crate
|
||||
// distinct *inside*; this closes the loop outside, so the player can spot a shop worth digging while
|
||||
// walking past instead of door-roulette.
|
||||
//
|
||||
// THE MANIFEST IS THE AUTHORITY (ledger #6 — the same file F's wire consults). Deliberately NOT the
|
||||
// `godverseShopId` key: keyed only means "has a stock identity", while the manifest means "a crate is
|
||||
// actually here". Advertising a crate the shop hasn't got would make the street lie — the one thing
|
||||
// this epoch keeps refusing to do. Fail-soft: no manifest (or ?noassets, or a shape we don't
|
||||
// recognise) ⇒ no treatment ⇒ the street simply makes no promise. Never an error.
|
||||
//
|
||||
// The mark says "you can dig here", which is equally true of `real` and `mint` crates, so it does NOT
|
||||
// leak tier — provenance belongs on C's price card and in the gates, not shouted from the footpath.
|
||||
//
|
||||
// Cost: ZERO extra draws / tris. The mark is drawn into the chunk's EXISTING sign-atlas cell and the
|
||||
// window cue rides the EXISTING per-shop aTint attribute. Nothing new is allocated or submitted.
|
||||
// The manifest is fetched LAZILY — only once a plan actually carries a keyed shop. A module-load fetch
|
||||
// would have hit every boot: a pointless request (and, before G emits the file, a console 404) on the
|
||||
// synthetic default, and a fetch delta on ?classic=1, whose covenant is zero-fetch. Godverse towns pay
|
||||
// for it; nobody else knows it exists.
|
||||
const STOCK_INDEX = 'assets/stock_godverse/index.json';
|
||||
let STOCKED = null; // Set<godverseShopId> | null = "unknown" (⇒ no treatment)
|
||||
let stockReq = null; // in-flight/settled marker — the fetch happens at most once per session
|
||||
function ensureStockIndex() {
|
||||
if (stockReq) return;
|
||||
stockReq = (async () => {
|
||||
try {
|
||||
const p = new URLSearchParams(location.search);
|
||||
if (p.get('noassets') != null && p.get('noassets') !== '0') return; // asset law: zero fetch
|
||||
const r = await fetch(STOCK_INDEX, { cache: 'force-cache' });
|
||||
if (!r.ok) return; // 404 before G emits it — fine
|
||||
const j = await r.json();
|
||||
// Tolerant of the exact shape (C pins §7 this round, G emits next wave): accept an array at
|
||||
// .shops/.entries/.atlases or the root, of ids or of objects carrying godverseShopId|id.
|
||||
const list = Array.isArray(j) ? j : (Array.isArray(j?.shops) ? j.shops
|
||||
: Array.isArray(j?.entries) ? j.entries : Array.isArray(j?.atlases) ? j.atlases : null);
|
||||
if (!list) return;
|
||||
const set = new Set();
|
||||
for (const e of list) {
|
||||
const id = typeof e === 'number' ? e : (e && (e.godverseShopId ?? e.id));
|
||||
if (Number.isSafeInteger(id) && id > 0) set.add(id);
|
||||
}
|
||||
if (set.size) STOCKED = set;
|
||||
} catch { /* fail-soft by design */ }
|
||||
})();
|
||||
}
|
||||
const isStocked = (shop) => !!(STOCKED && shop && Number.isSafeInteger(shop.godverseShopId) && STOCKED.has(shop.godverseShopId));
|
||||
|
||||
// Called once by the chunk manager at construction: start the manifest fetch as early as possible, but
|
||||
// still ONLY for a plan that has keyed shops. Without this the fetch would start on the first keyed
|
||||
// CHUNK — i.e. the first stocked shop you walk up to would be built before the manifest landed and
|
||||
// would miss its mark. Synthetic / real / classic plans have no keyed shops ⇒ no request, ever.
|
||||
export function prefetchStockIndex(plan) {
|
||||
if ((plan?.shops || []).some((s) => Number.isSafeInteger(s && s.godverseShopId))) ensureStockIndex();
|
||||
}
|
||||
|
||||
// ── Shop-hours facade state (§3.5): closed shops show dark windows + a CLOSED plate ─────────────
|
||||
// ONE shared window material + ONE shared CLOSED-plate material across every chunk, driven by two
|
||||
// shared uniforms that update ONCE on a day-segment change (via the 'procity:segment' event
|
||||
@ -65,7 +121,14 @@ const ROOM_TINTS = [ // muted 90s interior wall colours (RGB 0..1), seeded per s
|
||||
[0.56, 0.44, 0.33], [0.42, 0.47, 0.52], [0.52, 0.47, 0.37], [0.47, 0.42, 0.46],
|
||||
[0.54, 0.50, 0.41], [0.40, 0.45, 0.40], [0.58, 0.49, 0.40], [0.45, 0.48, 0.55],
|
||||
];
|
||||
function roomTint(shop) { return ROOM_TINTS[((shop ? shop.seed : 12345) >>> 0) % ROOM_TINTS.length]; }
|
||||
// R26 #5: a stocked shop's window room reads warm-lamp-over-crates rather than a generic 90s wall —
|
||||
// the second half of the footpath tell, and free (it rides the existing per-shop aTint attribute, so
|
||||
// the winmap glass is still ONE shared material / one draw per chunk).
|
||||
const STOCKED_ROOM_TINT = [0.50, 0.33, 0.22];
|
||||
function roomTint(shop) {
|
||||
if (isStocked(shop)) return STOCKED_ROOM_TINT;
|
||||
return ROOM_TINTS[((shop ? shop.seed : 12345) >>> 0) % ROOM_TINTS.length];
|
||||
}
|
||||
|
||||
let _winmapMat = null;
|
||||
function interiorWindowMaterial() {
|
||||
@ -241,6 +304,9 @@ export function buildChunkBuildings(chunkData, ctx) {
|
||||
const { skins } = ctx;
|
||||
const group = new THREE.Group();
|
||||
group.name = 'chunk-buildings';
|
||||
// R26 #5: ask for the stock manifest only if this town has keyed shops at all (once per session).
|
||||
// Synthetic / real / classic boots never carry a godverseShopId, so they never make the request.
|
||||
if ((chunkData.shops || []).some((s) => Number.isSafeInteger(s && s.godverseShopId))) ensureStockIndex();
|
||||
|
||||
const boxMats = []; // {matrix, color} — shells + parapets + posts, ONE instanced draw/chunk
|
||||
const awnings = []; // {matrix, color} — all awning/canopy skins, ONE instanced draw/chunk
|
||||
@ -286,12 +352,31 @@ export function buildChunkBuildings(chunkData, ctx) {
|
||||
do { actx.font = `bold ${fs}px Arial, sans-serif`; fs -= 4; }
|
||||
while (actx.measureText(label).width > CELL_W - 40 && fs > 22);
|
||||
actx.fillText(label, px + CELL_W / 2, py + CELL_H / 2);
|
||||
if (isStocked(shop)) drawCrateMark(px, py, shop); // R26 #5 — same cell, no extra draw
|
||||
const uv = [px / ATLAS_W, 1 - (py + CELL_H) / ATLAS_H, (px + CELL_W) / ATLAS_W, 1 - py / ATLAS_H];
|
||||
signUV.set(shop.id, uv);
|
||||
signCell++;
|
||||
return uv;
|
||||
}
|
||||
|
||||
// A crate of records seen end-on, along the sign's foot: the shop is worth digging. Seeded off
|
||||
// shop.seed so two stocked shops don't wear the same spines (the beta's whole theme, on the
|
||||
// street). Pure canvas into the cell already being drawn ⇒ zero draws, zero tris.
|
||||
const SPINES = ['#2f2a26', '#7a2f28', '#2c4553', '#6b5a2e', '#3f2f45', '#8a6a3a', '#26463a'];
|
||||
function drawCrateMark(px, py, shop) {
|
||||
const y = py + CELL_H - 40, h = 24;
|
||||
const x0 = px + 30, x1 = px + CELL_W - 30;
|
||||
actx.fillStyle = 'rgba(0,0,0,0.30)'; // the crate itself, in shadow
|
||||
actx.fillRect(x0 - 7, y - 5, (x1 - x0) + 14, h + 10);
|
||||
let r = ((shop.seed >>> 0) || 1) ^ 0x5bf03635;
|
||||
const rnd = () => ((r = (r * 1664525 + 1013904223) >>> 0) / 4294967296);
|
||||
for (let x = x0; x < x1 - 3; x += 6) { // the spines: leaning, uneven, dug-through
|
||||
const hh = h - ((rnd() * 7) | 0);
|
||||
actx.fillStyle = SPINES[(rnd() * SPINES.length) | 0];
|
||||
actx.fillRect(x, y + (h - hh), 4, hh);
|
||||
}
|
||||
}
|
||||
|
||||
// ── per-lot build ──
|
||||
for (const lot of chunkData.lots) {
|
||||
const shop = shopByLot.get(lot.id);
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
// buildings (buildings.js) + furniture (furniture.js); ground/sky/lighting are global.
|
||||
|
||||
import { chunkIndex, chunkCoord, chunkKey, parseKey } from './planutil.js';
|
||||
import { buildChunkBuildings } from './buildings.js';
|
||||
import { buildChunkBuildings, prefetchStockIndex } from './buildings.js';
|
||||
import { buildChunkFurniture } from './furniture.js';
|
||||
|
||||
const BUILD_BUDGET_MS = 4;
|
||||
@ -14,6 +14,7 @@ export function createChunkManager(plan, scene, ctx) {
|
||||
const R = ctx.radius ?? 3;
|
||||
const DISPOSE_R = R + 1;
|
||||
const index = chunkIndex(plan);
|
||||
prefetchStockIndex(plan); // R26 #5: keyed plans only — warm the stock manifest before any chunk builds
|
||||
|
||||
const live = new Map(); // key → { buildings, furniture, colliders, cx, cz }
|
||||
const doorMeshes = []; // live door meshes (for HUD raycast)
|
||||
|
||||