The map shaded COUNTRIES and stopped there, so the one question it could not answer was the only one that matters in the field: for THIS group, what exists right now? 12,379 people-group pins now sit on it, each one clickable into the resources for its language. THE JOIN. people-groups-slim.json carries Lat/Long per people-group-in-country; people-group-resources.json carries the real scripture_url/film_url per LANGUAGE. The key is ISO 639-3 (slim.LanguageCode == resources.iso639_3), never the group name — a group is reached in its language, not its nationality, and names collide across unrelated languages. MEASURED at build time: 5,981 of 12,379 pins (48.3%) join a resource record and 5,109 (41.3%) join one carrying a real URL, across 862 language codes. The other 59% is not a gap in the data to be hidden — it IS the subject. A pin with nothing found sorts ABOVE a covered one, so the gap wins the z-fight at world zoom rather than disappearing under a green dot. NO URL IS INVENTED. Every link is copied from the resources table, which records its own checked_pools/unchecked_pools, and the sheet keeps saying "none found means absent from the pools checked, never proof that nothing exists". has_audio keeps its third state: absent means the pool was never queried, not a no. PIN COLOURS READ OFF BANDS rather than declaring a fourth palette, so a pin and the country under it can never disagree about what "nothing found" looks like. The table is generated into data/tables/ — the REPO ROOT copy, which is what generate-tree publishes. The plugin-local data/tables/ is a stale divergent duplicate that nothing serves; building into it ships a file no page fetches. Verified on the served tree at 1280x800: 12,379 pins loaded AND rendered, layer and source present, and a click on Han Chinese returns ebible.org/cmn2006/ plus jesusfilm.org languageId=53352, both rendered as real anchors in the sheet and both answering 200. window.__grState() exposes those counts so the next check does not have to guess at screen coordinates to hit a 3px dot.
70 lines
No EOL
1 KiB
JSON
70 lines
No EOL
1 KiB
JSON
{
|
|
"generated": "2026-08-01",
|
|
"method": "Derived from the source tables in this folder.",
|
|
"tables": [
|
|
{
|
|
"name": "people-group-resources",
|
|
"rows": 2106
|
|
},
|
|
{
|
|
"name": "gospel-access-vs-growth",
|
|
"rows": 2106
|
|
},
|
|
{
|
|
"name": "key-cities",
|
|
"rows": 1646
|
|
},
|
|
{
|
|
"name": "network-operators",
|
|
"rows": 6526
|
|
},
|
|
{
|
|
"name": "country-connectivity",
|
|
"rows": 175
|
|
},
|
|
{
|
|
"name": "social-platforms",
|
|
"rows": 1306
|
|
},
|
|
{
|
|
"name": "messaging-channels",
|
|
"rows": 1157
|
|
},
|
|
{
|
|
"name": "languages-by-country",
|
|
"rows": 613
|
|
},
|
|
{
|
|
"name": "languages-per-city",
|
|
"rows": 1866
|
|
},
|
|
{
|
|
"name": "city-bridge-opportunities",
|
|
"rows": 28
|
|
},
|
|
{
|
|
"name": "deaf-gap",
|
|
"rows": 120
|
|
},
|
|
{
|
|
"name": "open-doors",
|
|
"rows": 2106
|
|
},
|
|
{
|
|
"name": "key-cities-admin-n",
|
|
"rows": 277
|
|
},
|
|
{
|
|
"name": "platform-reachability",
|
|
"rows": 2625
|
|
},
|
|
{
|
|
"name": "gaps-and-opportunities",
|
|
"rows": 2106
|
|
},
|
|
{
|
|
"name": "people-group-pins",
|
|
"rows": 12379
|
|
}
|
|
]
|
|
} |