Two things, and the second was found by the first disagreeing with itself. The CSV is what a team prints onto a poster or turns into a QR code, and it was the only surface that did not say when the bridge language carries the Zume course. 179 rows now do. Same URL the sheet already shows and the verification already proved; nothing new is fetched. "Candidate groups" is removed rather than renamed. It counted people groups speaking the candidate language, which only the old pins-derived proxy could produce; since candidates came from CLDR it has shipped as 0 on all 108 candidate rows, and an empty column in an exported CSV reads as missing data rather than as one that stopped applying. CLDR does give whether the language is official there, which is a real fact about how likely it already is to be taught, so that takes its place. THE BUG. 182 rows had a bridge carrying Zume and only 179 could export one. The three were Deaf groups speaking Auslan, and codes.asf has no sg flag — it is set from the sign-language catalogues and asf is in none of them. So the pin index built a SPOKEN bridge for them and the map offered it, because the map's is_sign test reads that same flag. The access table refused it, because it also matches the group name. A spoken bridge is not a weak bridge for a Deaf community, it is not a bridge; this is the residue of the finding that already removed 89. Suppressed on either signal now, so the two builders agree and the map cannot offer what the table refuses. Still 369 with nothing and still none of them without a way in. |
||
|---|---|---|
| .. | ||
| brand | ||
| external-bundles | ||
| fonts | ||
| images | ||
| legacy/upg-neighbor | ||
| people-groups | ||
| posters | ||
| pplr | ||
| tables | ||
| vendor | ||
| README.md | ||
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.