The bridge candidate — the "possibly a way in" offered to a group with nothing — was chosen from Doxa's own pins: the biggest language among the UNREACHED groups in that country that has Scripture and the film. That is not the language a community shares with its neighbours. For Syenara Senufo in Mali it proposed Minianka, one people group. Mali's vehicular language is Bambara. The number beside it was worse than the pick. "8.8% of this country's mapped population" is a share of Doxa's unreached pins, and a reader takes a percentage for a share of the country. A percentage measured against a denominator nobody can see is not a caveat, it is a wrong number. CLDR publishes what each territory speaks and by what share, joined to ISO 639-3 through SIL's own Part1 column, and pinned rather than tracked from a moving branch. 1,161 of 1,175 candidates now come from it; the remaining 14 keep the old proxy and say on the row that their count is of this map's groups and not of the country. Mali now reads French at 46% and official. Where two languages are within five points the map names BOTH and says it will not choose. Mali is exactly that: French 46% and official, Bambara 46% and not — one is the administrative language and the other is what people share in a market, and which bridges better depends on whether you are handing over a booklet or starting a conversation. A tie-break would have quietly answered a question nobody asked it. Both carry their own links, for the same reason the first one does. Two field lists were a field short, the same shape twice. The candidate filter and the link resolver both read c.s for "has a readable Scripture" and forgot that Faith Comes By Hearing carries text on the audio record — which excluded Bambara from Mali's candidates entirely, and then, once it was named, offered it the film while a full 66-book text sat one field away. There is now one predicate. The RTL gate read a hardcoded tree path. It reads the build config instead, and was re-run against its baseline before the result was trusted. |
||
|---|---|---|
| .. | ||
| 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.