diff --git a/plugin-designs/my-upg-100-list/upg-100-list.vue b/plugin-designs/my-upg-100-list/upg-100-list.vue index e342459da..7d760cbc8 100644 --- a/plugin-designs/my-upg-100-list/upg-100-list.vue +++ b/plugin-designs/my-upg-100-list/upg-100-list.vue @@ -1366,7 +1366,15 @@ async function packetRecords(zone) { // API ('2% or Greater but Less than 5%'), so interpolating it would leave every non-English packet // half-English in its widest column (sr measured this across 12,379 rows). primary_language is the // same field poster-wall already fetches (:171), so this adds no new API surface. - const fields = 'slug,name,country_code,population,religion,image_url,primary_language,imb_gsec'; + // ★ wagf_region + wagf_block ARE SELECTOR INPUTS, not display fields. SIX of the 27 printable + // zones select on them — west-africa / east-africa / central-africa (wagf_block), europe + // (wagf_region), southern-africa-islands (union of two wagf_block) and oceania-indonesia (union of + // wagf_region + country_code). Without them here, evaluate() matched NOTHING on packet rows and + // those packets printed EMPTY, while the same selectors resolved correctly on the map — whose + // fetch (:1988) has always carried both. Measured: a wagf_block selector returns 0 members on + // packet rows and 1 on map rows. oceania-indonesia was the worst of the six because its union + // still matched IDN, so it printed a PLAUSIBLE packet that was silently missing all of Oceania. + const fields = 'slug,name,country_code,wagf_region,wagf_block,population,religion,image_url,primary_language,imb_gsec'; const resp = await fetch(`${API_BASE}/api/people-groups/list?fields=${fields}&lang=${packetLang()}`, { cache: 'no-store' }); if (!resp.ok) throw new Error(`people-groups fetch failed (${resp.status})`); @@ -1597,7 +1605,15 @@ async function selectionAsList() { // API ('2% or Greater but Less than 5%'), so interpolating it would leave every non-English packet // half-English in its widest column (sr measured this across 12,379 rows). primary_language is the // same field poster-wall already fetches (:171), so this adds no new API surface. - const fields = 'slug,name,country_code,population,religion,image_url,primary_language,imb_gsec'; + // ★ wagf_region + wagf_block ARE SELECTOR INPUTS, not display fields. SIX of the 27 printable + // zones select on them — west-africa / east-africa / central-africa (wagf_block), europe + // (wagf_region), southern-africa-islands (union of two wagf_block) and oceania-indonesia (union of + // wagf_region + country_code). Without them here, evaluate() matched NOTHING on packet rows and + // those packets printed EMPTY, while the same selectors resolved correctly on the map — whose + // fetch (:1988) has always carried both. Measured: a wagf_block selector returns 0 members on + // packet rows and 1 on map rows. oceania-indonesia was the worst of the six because its union + // still matched IDN, so it printed a PLAUSIBLE packet that was silently missing all of Oceania. + const fields = 'slug,name,country_code,wagf_region,wagf_block,population,religion,image_url,primary_language,imb_gsec'; const resp = await fetch(`${API_BASE}/api/people-groups/list?fields=${fields}&lang=${packetLang()}`, { cache: 'no-store' }); if (!resp.ok) throw new Error(`people-groups fetch failed (${resp.status})`);