doxa-maps/data
Doxa Maps d7b6a631b6 Move zone-regions.json + groupings.json to data/tables/, the shared asset pool
GOSPEL'S LEGEND RENDERS IN THE BROWSER and needs these zones at runtime; a
build-time import path would not reach the bundle. data/tables/ is the pool the
tree copies into public/dx-maps/assets/tables/, which is how near-neighbors.json
already reaches a browser, so this makes the zone data a single source the same
way (dx-shepherd, 2026-09-28).

admin-to-list.json deliberately does NOT move: it waits on the Driver's row 87,
the "zones fold" regeneration.

★ TWO ROOTS IN internal/check-list-selection.mjs, NOT ONE. Its readJson helper
reads all three files through a single DATA constant, and only two moved.
Collapsing them to one root silently breaks whichever file is not where you
pointed — so the helper now routes admin-to-list.json to the plugin dir and the
other two to data/tables/, with the reason in the comment.

★ THE ASSET-POOL COPY IS MANUAL, AND IT HAS ALREADY DRIFTED. There is no
automated copier: `git grep` finds no rule in vite.config.js or internal/ that
writes public/dx-maps/assets/tables/, and exp's rings note says the same ("only
the tree copies tables"). Measured before copying: data/tables has 309 json
files, the asset pool 304 — and the five missing were groupings.json,
zone-regions.json AND THREE THAT PREDATE THIS COMMIT (index.json,
open-doors.json, platform-reachability.json). So these two would have joined an
existing gap rather than created one. Both are copied here and verified with
cmp; the other three are reported separately, not silently fixed in a move
commit.

Paths verified to resolve, not assumed: P(GROUPINGS) and the REGIONS join both
resolve to existing files. Gates green after the move: check:list-selection,
check:selector-fields, check:describe-group, region-hue-proof.
2026-09-28 15:52:47 +00:00
..
boundaries world-adm0's 162 licences are established, and 65 are share-alike 2026-09-28 01:55:03 +00:00
brand public/ is one folder: the output tree plus a README, with the Plugin Studio as its front page 2026-09-25 17:41:56 +00:00
external-bundles Data out of public/: sources live in data/, the web-root is generated 2026-09-16 01:24:41 +00:00
fonts Every vendored font ships its own licence 2026-09-28 01:30:47 +00:00
glottolog Gospel x Internet: the language tree and the gospel resources tab 2026-09-27 02:24:52 +00:00
images public/ is one folder: the output tree plus a README, with the Plugin Studio as its front page 2026-09-25 17:41:56 +00:00
internet India by state: all 36 states, Mizoram and Nagaland included 2026-09-26 08:13:34 +00:00
legacy/upg-neighbor public/ is one folder: the output tree plus a README, with the Plugin Studio as its front page 2026-09-25 17:41:56 +00:00
people-groups Mark 5 in five more languages, each a cited public-domain translation 2026-09-27 09:07:17 +00:00
posters The poster print preview rasterises too, and a deployment can ship sources without rasters 2026-09-24 08:07:22 +00:00
pplr PPLR data maps (WIP): move the ten PPLR research views into plugin-designs 2026-09-25 06:33:49 +00:00
tables Move zone-regions.json + groupings.json to data/tables/, the shared asset pool 2026-09-28 15:52:47 +00:00
translation-readiness Gospel x Internet: translation readiness, from open data 2026-09-27 17:51:54 +00:00
vendor Vue and Tabulator ship their MIT notices, and a third-party register 2026-09-28 01:30:47 +00:00
README.md public/ is one folder: the output tree plus a README, with the Plugin Studio as its front page 2026-09-25 17:41:56 +00:00

data/ — the bundler's source-of-truth data

The law: data lives here; public/ is generated. public/ holds only the output folder (public/<tree>/, named by name in vite.doxa-maps-build-config.json) and a generated README. The build (internal/generate-tree.mjs) copies what the plugins FETCH at runtime from here into <tree>/assets/, alongside the per-profile data in plugin-designs/*/data/. You should be able to rm -rf public/ and get it all back with bun run build.

Folder Served at What it is
people-groups/ <tree>/assets/people-groups/ (the fetched cuts only) People-group datasets (CSV/JSON) the maps read at runtime
vendor/ <tree>/assets/vendor/ Third-party runtime assets (e.g. table libraries)
posters/ <tree>/assets/posters/ (opt-in: bundlePosters / posterSources) Rendered poster set (heavy pipeline output; the export button fetches these)
tables/ <tree>/assets/tables/ The MERGED served table set (its index.json is the merge; per-profile plugin-designs/*/data/tables are build-time sources)
pplr/ <tree>/assets/pplr/ (the fetched files only) The PPLR data maps' derived datasets
fonts/ <tree>/assets/fonts/ Vendored typefaces (SIL OFL), e.g. Bebas Neue for the regions clone
images/ <tree>/assets/images/ Images the plugins fetch (e.g. the regions list's world-map watermark; see its PROVENANCE)
brand/ not served Logos and brand imagery (sources; the optional library/layouts/app-wrapper-material shell references them)
legacy/ not served Archived standalone builds kept for reference (e.g. the original upg-neighbor page)
external-bundles/ not served Prebuilt map IIFEs vendored from sibling projects (not built here); only the optional layouts/ shell mounted them

fonts/, images/, brand/ and legacy/ moved here from public/assets/ on 2026-09-25 (card BUILD-OUTPUT-IS-ONE-FOLDER): they were sources that existed only in the generated folder.

Don't edit anything under public/ by hand — change it here (or in plugin-designs/*/data/, layouts/*/assets/) and rebuild.