# 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 `.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**. > · 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/.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).