Ledger #4 (warm-up): publish.py --verify no longer false-flags non-procity_ published assets (sit.glb, vintage-cash-register). It compares the _published.json name record against the depot's full file list (fetch_depot_files) instead of a procity_ prefix filter; only OUR namespace flags as unrecorded. --verify now: all 39 recorded assets live. Ledger #6 (the scout): new pipeline/build_towns.py ports thriftgod build_city()'s Overpass route to per-town caches in A's procity-town-cache/1 contract. 5 real compact AU towns under web/assets/towns/ (katoomba/newtown/fremantle/bendigo/castlemaine, 6-21 shops, spans <2.4km): bounded Overpass query -> raw cached in-repo (re-runs never re-fetch) -> dedupe/suburb-fill/parody (trademarked chains only; indie shops keep real OSM names)/type-map. Deterministic (byte-identical re-run, no RNG). ODbL: SOURCES.md licence table + license/attribution on every cache. All 5 boot through the full structural+gig suites (selfcheck 16596/16596 green; synthetic golden 0x3fa36874 unmoved). Overpass fetch John-authorized (Standing #2). -> Lane A: caches live under web/assets/towns/; pin the per-town goldens selfcheck printed (katoomba 0x61760542 newtown 0x95978b45 fremantle 0xee9fd09a bendigo 0x5e3e76a6 castlemaine 0xf1a628a1) + feed through plan_osm. E->A handshake. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
41 lines
2.6 KiB
Markdown
41 lines
2.6 KiB
Markdown
# Town-cache data sources & licence (`web/assets/towns/`)
|
|
|
|
**Lane E owns this file** (ROUND17 ledger #6). Every real-town cache here is derived from
|
|
**OpenStreetMap** data and ships under OSM's licence. This notice + the `license`/`attribution`
|
|
fields on every `<key>.json` are the attribution that travels with the data.
|
|
|
|
## Licence — OpenStreetMap, ODbL 1.0
|
|
|
|
> © **OpenStreetMap contributors**. Data available under the **Open Database License (ODbL) 1.0**.
|
|
> <https://www.openstreetmap.org/copyright> · <https://opendatacommons.org/licenses/odbl/1-0/>
|
|
|
|
The caches are a **produced work** derived from OSM via the Overpass API (`overpass-api.de`), filtered
|
|
to on-theme `shop=*` points, deduped, suburb-filled, and type-mapped by `pipeline/build_towns.py`.
|
|
Attribution ships in-repo (this file) and in every cache (`"license":"ODbL 1.0"`,
|
|
`"attribution":"© OpenStreetMap contributors"`). If a rendered/public build surfaces this data, keep
|
|
the "© OpenStreetMap contributors (ODbL)" credit visible.
|
|
|
|
## Provenance table
|
|
|
|
| cache | town | source | licence | fetched | shops | raw response |
|
|
|---|---|---|---|---|---|---|
|
|
| `katoomba_real.json` | Katoomba, NSW | OSM Overpass (bounded) | ODbL 1.0 | 2026-07-16 | 20 | `_raw/katoomba_real.overpass.json` |
|
|
| `newtown_real.json` | Newtown, Sydney NSW | OSM Overpass (bounded) | ODbL 1.0 | 2026-07-16 | 18 | `_raw/newtown_real.overpass.json` |
|
|
| `fremantle_real.json` | Fremantle, WA | OSM Overpass (bounded) | ODbL 1.0 | 2026-07-16 | 21 | `_raw/fremantle_real.overpass.json` |
|
|
| `bendigo_real.json` | Bendigo, VIC | OSM Overpass (bounded) | ODbL 1.0 | 2026-07-16 | 9 | `_raw/bendigo_real.overpass.json` |
|
|
| `castlemaine_real.json` | Castlemaine, VIC | OSM Overpass (bounded) | ODbL 1.0 | 2026-07-16 | 6 | `_raw/castlemaine_real.overpass.json` |
|
|
|
|
## Raw responses (`_raw/`)
|
|
|
|
The raw Overpass JSON for each town is cached in `_raw/<key>.overpass.json` (wrapped with `fetchedAt`,
|
|
`endpoint`, `query`, `bbox`). **Re-runs reuse the raw cache and never re-hit Overpass** — the fetch is
|
|
outward-facing network (John-authorized scout, once per town). `--refetch` forces a deliberate re-fetch.
|
|
`selfcheck.js` reads only top-level `*.json`, so `_raw/` is never loaded as a cache.
|
|
|
|
## Names — parody vs factual
|
|
|
|
Big **trademarked charity/franchise chains** are parodied in `build_towns.py` (Salvos→Slave-ohs,
|
|
Vinnies→Sinnies, Anglicare→Tanglecare, Cash Converters→Cashtheists, …) for the game's comic tone.
|
|
**Independent shops keep their real OSM name** — factual, publicly-mapped POI data under ODbL. No
|
|
private-individual data is carried (name/type/coordinate/suburb only).
|