doxa-maps/data/tables/card-17.json
Doxa Maps 8c99bbe611 One normalizer for the card and the map, not two that agree by hand
Third report of a blank card, and the root cause was never a missing field — it was two code
paths producing "the same" object. build-field-cards.mjs copied groupAt()'s 39 fields by hand
and missed door43, which exists only in that normalizer, so the sheet's
`!selectedGroup.door43.length` threw on undefined. I fixed a value, then a timing, then would
have added door43 and waited for the fourth.

The shard now ships the RAW INPUTS the map itself holds — the pin row, the whole code record,
the country name and the two bridge records — and the leaf's groupFrom() normalizes both
paths. groupAt(i) is a three-line wrapper over it. A field added to the sheet reaches the card
with no second edit, and forgetting one is no longer possible. The code record is passed WHOLE
rather than picked over, because picking fields is exactly the mistake above. Shards got
smaller doing it: mean 8.0 KB against 9.1.

Two sheet-level sources the card fetches nothing for are seeded from the shard: the prayer page
(prayIndex) and the SUN block. Both matter most to this persona — a catalyst with a Deaf group,
or one handing someone a prayer page — and both were silently absent while the card "worked".

Verified statically, since I cannot render: every one of the 28 fields the sheet reads off
selectedGroup is produced by groupFrom, so the two paths cannot disagree about any of them.
rega has the render.
2026-09-27 19:11:42 +00:00

1 line
4.6 KiB
JSON

{"akha-jowhoi":{"row":["Akha Jowhoi",21.185418,101.381256,"LAO","ahk",550,2,"akha-jowhoi"],"c":{"l":"Akha","f":"https://jesusfilm.org/watch/jesus/akha","a":1,"ck":"arclight, door43, ebible, fcbh, scriptureearth","un":"api_bible, dbl, progress_bible, youversion, grn (not yet swept)","au":{"u":"https://live.bible.is/bible/AHKTBS","n":"2001 Thailand Bible Society","ln":"Akha","m":"audio, text, video","vsc":"27 parts, MA ̭TEHˬ to PAH MEHˬ-EU"},"sx":{"u":"https://live.bible.is/bible/AHKTBS","n":"2001 Thailand Bible Society","src":"Faith Comes By Hearing"}},"country":"Lao People's Democratic Republic","bridge":null,"bridge_candidate":null,"pray_url":"https://pray.doxa.life/akha-jowhoi?source=doxalife","_cardRes":{"bridge":null,"candidate":null,"alt":null},"sun":null},"deaf-mariana":{"row":["Deaf Mariana",15.183,145.75,"MNP","ase",500,1,"deaf-mariana"],"c":{"l":"American Sign Language","f":"https://arc.gt/gt0oh","ck":"arclight (14 sign languages, all captured), fcbh (none)","un":"deaf_bible_society, door_international — both key-gated","sg":1,"z":"https://zume.training/asl"},"country":"Northern Mariana Islands","bridge":null,"bridge_candidate":null,"pray_url":"https://pray.doxa.life/deaf-mariana?source=doxalife","_cardRes":{"bridge":null,"candidate":null,"alt":null},"sun":null},"kambodia-bhagat":{"row":["Kambodia Bhagat",24.290639,71.742661,"IND","rwr",1300,1,"kambodia-bhagat"],"c":{"d":[{"s":"Open Bible Stories","u":"https://git.door43.org/OBS-TLF/rwr_obs"}],"l":"Marwari (India)","f":"https://jesusfilm.org/watch/jesus/marwari","a":1,"o":1,"ck":"arclight, door43, ebible, fcbh, scriptureearth","un":"api_bible, dbl, progress_bible, youversion, grn (not yet swept)","au":{"u":"https://live.bible.is/bible/RWRDPI","n":"Marwari - New Life Computer Institute","ln":"Marwari","m":"audio"}},"country":"India","bridge":null,"bridge_candidate":null,"pray_url":"https://pray.doxa.life/kambodia-bhagat?source=doxalife","_cardRes":{"bridge":null,"candidate":null,"alt":null},"sun":null},"laccadive":{"row":["Laccadive",10.0675,73.6422,"IND","div",74500,2,"laccadive"],"c":{"l":"Maldivian","s":"https://ebible.org/div/","sv":"Maldivian: ކިތާބުލް މުޤައްދަސް NT","sf":0,"ss":"Portions of both Testaments","f":"https://jesusfilm.org/watch/jesus/dhivehi","a":1,"ck":"arclight, door43, ebible, fcbh, scriptureearth","un":"api_bible, dbl, progress_bible, youversion, grn (not yet swept)","au":{"u":"https://live.bible.is/bible/DIVWYI","n":"Dhivehi - Wycliffe Bible Translators, Inc.","ln":"Dhivehi","m":"audio, text, video","vsc":"34 parts, ފެށުން to ހާމަކޮށްދެއްވުންތަކެއް"},"cr":{"o":"Wycliffe Bible Translators, Inc","y":"2019","u":"https://www.wycliffe.org/","g":"wycliffe"}},"country":"India","bridge":null,"bridge_candidate":null,"pray_url":"https://pray.doxa.life/laccadive?source=doxalife","_cardRes":{"bridge":null,"candidate":null,"alt":null},"sun":null},"liujia":{"row":["Liujia",25.512987,105.004226,"CHN","cmn",5100,2,"liujia"],"c":{"l":"Chinese, Mandarin","s":"https://ebible.org/cmn2006/","sv":"Chinese (simplified) Easy Reading Version","sf":1,"ss":"Full Bible","f":"https://jesusfilm.org/watch/jesus/mandarin-taiwan","a":1,"ck":"arclight, door43, ebible, fcbh, scriptureearth","un":"api_bible, dbl, progress_bible, youversion, grn (not yet swept)","z":"https://zume.training/zhcn","au":{"u":"https://live.bible.is/bible/CMNTEM","n":"Chinese Contemporary Bible (圣经当代译本修订版)","ln":"Chinese, Mandarin","m":"audio, text"},"bv":{"u":"https://live.bible.is/bible/CMNCOV","n":"Chinese, Mandarin - Covenant","sc":"12 parts, Intro & Garden of Eden to After the Forty Years / End Credits"},"se":{"u":"https://scriptureearth.org/data/cmn/","k":["PDF"]},"cr":{"o":"World Bible Translation Center","y":"2004","u":"https://www.bibleleague.org/","g":"bible-league"}},"country":"People's Republic of China","bridge":null,"bridge_candidate":null,"pray_url":"https://pray.doxa.life/liujia?source=doxalife","_cardRes":{"bridge":null,"candidate":null,"alt":null},"sun":null},"tukum":{"row":["Tukum",12.083556,30.882806,"SDN","tag",22000,0,"tukum"],"c":{"l":"Tagoi","ck":"arclight, door43, ebible, fcbh, grn, scriptureearth","un":"api_bible, dbl, progress_bible, youversion"},"country":"Sudan","bridge":{"l":"Arabic, Sudanese","c":"apd","st":"strong","n":65,"s":true,"f":true},"bridge_candidate":null,"pray_url":"https://pray.doxa.life/tukum?source=doxalife","_cardRes":{"bridge":{"iso":"apd","language":"Arabic, Sudanese","credit":null,"scripture_url":"https://live.bible.is/bible/APDASV","scripture_title":"Sharif (Sudanese) Version","film_url":"https://jesusfilm.org/watch/jesus/arabic-sudanese-spoken","film_title":"","zume_url":""},"candidate":null,"alt":null},"sun":null}}