From f50b641b283d870314e38441e71e2651dc12d019 Mon Sep 17 00:00:00 2001 From: Doxa Maps Date: Tue, 29 Sep 2026 12:53:41 +0000 Subject: [PATCH] The Wall's and the template's proofs become guards: four two-sided headless checks, in the plugins' own scripts/ Until now these ran from _qa-cycle, so they proved a landing once and guarded nothing after it. Each now lives with its plugin, locates the repo from its own path, and fails on its known-bad: - wall-of-people-groups/scripts/check-wall-wysiwyg.mjs: the screen poster and the print are one layout on every preset (sheets, 2,107 card rects to 0.002 in, name size and wrap, reference size, chrome blocks). Planted: a card moved 0.01 in, a name a point larger, the footer missing on screen. About 0.6 s. - wall-of-people-groups/scripts/check-wall-print-watch.mjs: the HD print counts its photos while they load, counts the ones that could not load, finishes at load or the 10-minute ceiling, and ends when its frame is gone. Planted copies of printWatch.js now go to the OS temp folder, never into the tree. About 0.3 s. - wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs + fixtures/pray-list-sample.json: the real store (through Vite) never requests a photo on its own, a group with no photo URL gets none, and one with a URL keeps it. Planted: the old background test, added through the store's $onAction. The store from before L12 (d9e9aa448) fails both arms: 12 photo requests in 3.5 s and 3 groups on the 404 placeholder. The fixture is a trimmed sample of the live list: 200 rows (120 with has_photo, 77 without, 3 synthetic with no image_url), only the fields the check reads, 66 KB. About 10 s. - template-bundle/scripts/check-template-i18n.mjs: profile B renders from template.json in en, ar and zh, one sentence in each language's own order with both islands, and no raw key. Planted: the English catalogue served as Arabic. About 4 s. All four are headless: no browser seat. --- .../scripts/check-template-i18n.mjs | 62 +++++++++++ .../scripts/check-wall-no-bg-photos.mjs | 80 ++++++++++++++ .../scripts/check-wall-print-watch.mjs | 102 ++++++++++++++++++ .../scripts/check-wall-wysiwyg.mjs | 74 +++++++++++++ .../scripts/fixtures/pray-list-sample.json | 1 + 5 files changed, 319 insertions(+) create mode 100644 plugin-designs/template-bundle/scripts/check-template-i18n.mjs create mode 100644 plugin-designs/wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs create mode 100644 plugin-designs/wall-of-people-groups/scripts/check-wall-print-watch.mjs create mode 100644 plugin-designs/wall-of-people-groups/scripts/check-wall-wysiwyg.mjs create mode 100644 plugin-designs/wall-of-people-groups/scripts/fixtures/pray-list-sample.json diff --git a/plugin-designs/template-bundle/scripts/check-template-i18n.mjs b/plugin-designs/template-bundle/scripts/check-template-i18n.mjs new file mode 100644 index 000000000..56087e462 --- /dev/null +++ b/plugin-designs/template-bundle/scripts/check-template-i18n.mjs @@ -0,0 +1,62 @@ +#!/usr/bin/env node +/** + * check-template-i18n — the starter template renders its text from the catalogue. Headless (SSR). + * + * template-bundle is what every new plugin copies, so it has to SHOW the i18n pattern, not just pass + * it. Profile B is rendered through Vue's server renderer with the REAL template.json catalogue in en, + * ar and zh, and must: + * - take its heading, its note line and its sentence from the catalogue of the page's language; + * - render "Served from {file} in the {bundle} bundle." as ONE key, in that language's own word order + * (zh puts the bundle first), with the file and bundle names as two islands; + * - show no raw key and no {placeholder}. + * Two-sided: the same render in ar with the ENGLISH catalogue served as Arabic (a catalogue someone + * forgot to translate, or a component that ignores the locale) must fail. + * EXIT 0 pass · 1 fail + */ +import { readFileSync } from 'node:fs' +import { resolve, dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { createServer } from 'vite' +import { createSSRApp, ref } from 'vue' +import { renderToString } from 'vue/server-renderer' +import { createI18n } from 'vue-i18n' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../../..') +const cat = (lc) => ({ template: JSON.parse(readFileSync(join(ROOT, `library/i18n/locales/${lc}/template.json`), 'utf8')) }) + +const server = await createServer({ root: ROOT, configFile: join(ROOT, 'vite.config.js'), server: { middlewareMode: true, hmr: false, ws: false }, appType: 'custom', logLevel: 'error', optimizeDeps: { noDiscovery: true, include: [] } }) + +/** Render profile B in `lc`, serving `served` as that locale's catalogue; return what is wrong. */ +async function check(B, lc, served, noteGiven) { + const i18n = createI18n({ legacy: false, locale: lc, fallbackLocale: 'en', messages: { en: cat('en'), [lc]: served } }) + const app = createSSRApp(B); app.use(i18n); app.provide('profileConfig', ref(noteGiven ? { note: noteGiven } : {})) + const html = await renderToString(app) + const want = cat(lc).template.profileB + const text = html.replace(/<[^>]+>/g, '') + const errs = [] + if (!html.includes(want.title)) errs.push('the heading is not the catalogue\'s') + if ((html.match(/]*>/g) || []).length !== 2) errs.push('the sentence does not keep its two islands') + if (!html.includes('>template-map-b.vue<') || !html.includes('>template-bundle<')) errs.push('the islands do not carry the file and bundle names') + const sentence = want.servedFrom.replace('{file}', 'template-map-b.vue').replace('{bundle}', 'template-bundle') + if (!text.includes(sentence)) errs.push(`the sentence does not read in the catalogue's order ("${sentence}")`) + if (!(noteGiven ? text.includes(want.note.replace('{note}', noteGiven)) : text.includes(want.noNote))) errs.push('the note line is not the catalogue\'s') + if (/\{\w+\}|template\.profileB/.test(text)) errs.push('a raw placeholder or key shows') + return { errs, text: text.replace(/\s+/g, ' ').trim() } +} + +const fails = [] +try { + const B = (await server.ssrLoadModule('/plugin-designs/template-bundle/template-map-b.vue')).default + for (const [lc, note] of [['en', ''], ['ar', 'مرحبا'], ['zh', 'hello']]) { + const { errs, text } = await check(B, lc, cat(lc), note) + console.log(` ${errs.length ? 'FAIL' : 'ok '} ${lc}: ${text.slice(0, 120)}`) + fails.push(...errs.map((e) => `${lc}: ${e}`)) + } + const planted = await check(B, 'ar', cat('en'), '') + if (!planted.errs.length) fails.push('SELF-TEST: the English catalogue served as Arabic was not caught') +} catch (e) { fails.push('could not render: ' + e.message) } +await server.close() + +if (fails.length) { console.log('TEMPLATE-I18N: FAIL'); for (const f of fails) console.log(' - ' + f); process.exit(1) } +console.log('TEMPLATE-I18N: PASS — profile B renders from template.json in en, ar and zh, its sentence in each language\'s own order with both islands; the English catalogue served as Arabic is caught.') +process.exit(0) diff --git a/plugin-designs/wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs b/plugin-designs/wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs new file mode 100644 index 000000000..d90e16f13 --- /dev/null +++ b/plugin-designs/wall-of-people-groups/scripts/check-wall-no-bg-photos.mjs @@ -0,0 +1,80 @@ +#!/usr/bin/env node +/** + * check-wall-no-bg-photos — the Wall's store never downloads photos on its own. Headless. + * + * Until 2026-09-29 the store "tested" every photo after loading the list: 932 photos, 132 MB, on every + * visit, whether or not anyone zoomed in (rega measured 108–132 image requests in the first 60 s; 0 + * after the fix). The canvas loads only the photos in view, so the store must load none. This runs the + * REAL store (through Vite, so @map resolves) against a trimmed copy of the live list + * (fixtures/pray-list-sample.json), with fetch stubbed to serve it and Image stubbed to COUNT every + * photo request, and asserts: + * - no photo is requested by the store, before or after its list has loaded; + * - a group with no photo URL gets none (not the stock "no image" photo, which answers 404); + * - a group with a photo URL keeps it. + * Two-sided: the same run with a planted background photo test (the old behaviour, added through the + * store's own $onAction hook) must fail. + * EXIT 0 pass · 1 fail + */ +import { readFileSync } from 'node:fs' +import { resolve, dirname, join } from 'node:path' +import { fileURLToPath } from 'node:url' +import { createServer } from 'vite' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../../..') +const LIST = JSON.parse(readFileSync(join(dirname(fileURLToPath(import.meta.url)), 'fixtures/pray-list-sample.json'), 'utf8')) +const WAIT_MS = 3500 // the old test's first batches: 3 photos at once, 3 more each second + +// ── the stubs ────────────────────────────────────────────────────────────────────────────────────── +const photoRequests = [] +globalThis.Image = class { constructor() { this._src = '' } + set src(u) { this._src = u; if (u) { photoRequests.push(u); setTimeout(() => this.onload && this.onload(), 5) } } + get src() { return this._src } } +const mem = new Map() +globalThis.localStorage = { getItem: (k) => (mem.has(k) ? mem.get(k) : null), setItem: (k, v) => mem.set(k, String(v)), removeItem: (k) => mem.delete(k) } +globalThis.fetch = async (url) => { + if (/\/api\/people-groups\/list/.test(String(url))) return { ok: true, status: 200, headers: { get: () => 'application/json' }, json: async () => LIST } + return { ok: false, status: 404, headers: { get: () => 'text/html' }, json: async () => ({}), text: async () => '' } +} + +const server = await createServer({ root: ROOT, configFile: join(ROOT, 'vite.config.js'), server: { middlewareMode: true, hmr: false, ws: false }, appType: 'custom', logLevel: 'error', optimizeDeps: { noDiscovery: true, include: [] } }) +const { createPinia } = await server.ssrLoadModule('pinia') +const { usePeopleGroupsStore } = await server.ssrLoadModule('/plugin-designs/wall-of-people-groups/src/stores/peopleGroupsStore.js') + +/** One run of the real store. `plant` may add the old background test through $onAction. */ +async function run(plant = false) { + photoRequests.length = 0 + const store = usePeopleGroupsStore(createPinia()) + store.profileConfig = {} + if (plant) { + store.$onAction(({ name, after }) => { + if (name === 'fetchFromPrayAPI') after(() => { for (const g of store.peopleGroups.slice(0, 3)) if (g.imageUrl) new Image().src = g.imageUrl }) + }) + } + await store.fetchPeopleGroups() + await new Promise((r) => setTimeout(r, WAIT_MS)) + const groups = store.peopleGroups + const errs = [] + if (!groups.length) errs.push('the store loaded no groups (the stub or the fixture is wrong, so nothing else here means anything)') + if (photoRequests.length) errs.push(`the store requested ${photoRequests.length} photo(s) on its own; the canvas loads only what is in view`) + const noUrl = groups.filter((g) => !g.image_url) + if (!noUrl.length) errs.push('the fixture has no group without a photo URL, so that arm cannot run') + const bad = noUrl.filter((g) => g.imageUrl) + if (bad.length) errs.push(`${bad.length} group(s) with no photo URL carry one (e.g. ${bad[0].imageUrl}), so the print shows a broken image instead of its grey box`) + const lost = groups.filter((g) => g.image_url && g.imageUrl !== g.image_url) + if (lost.length) errs.push(`${lost.length} group(s) with a photo lost their photo URL`) + return { errs, groups: groups.length, noUrl: noUrl.length } +} + +const fails = [] +let real = null +try { + real = await run(false) + fails.push(...real.errs) + const planted = await run(true) + if (!planted.errs.some((e) => /requested \d+ photo/.test(e))) fails.push('SELF-TEST: a planted background photo test was not caught') +} catch (e) { fails.push('could not run the store: ' + e.message) } +await server.close() + +if (fails.length) { console.log('WALL-NO-BG-PHOTOS: FAIL'); for (const f of fails) console.log(' - ' + f); process.exit(1) } +console.log(`WALL-NO-BG-PHOTOS: PASS — the real store loads ${real.groups} groups and requests 0 photos in ${WAIT_MS} ms; the ${real.noUrl} groups without a photo URL get none; a planted background photo test is caught.`) +process.exit(0) diff --git a/plugin-designs/wall-of-people-groups/scripts/check-wall-print-watch.mjs b/plugin-designs/wall-of-people-groups/scripts/check-wall-print-watch.mjs new file mode 100644 index 000000000..7ded563e5 --- /dev/null +++ b/plugin-designs/wall-of-people-groups/scripts/check-wall-print-watch.mjs @@ -0,0 +1,102 @@ +#!/usr/bin/env node +/** + * check-wall-print-watch — the Wall's HD poster print never prints silently incomplete. Headless. + * + * The print frame prints on its own 'load', which waits for every photo (library printInPlace.js); + * src/printWatch.js reports while it waits. This asserts, with fake timers and a fake frame whose images + * load over fake time, that the watch: + * - counts the photos as they load (the button's "Preparing the poster: n of 2,107 photos"); + * - counts the ones that could not load (complete, no pixels), which the toast then names; + * - finishes exactly once, at 'load', or at the 10-minute ceiling for a load that never ends; + * - ends at once when the frame is gone, so the busy button never outlives it. + * Two-sided: each rule is removed from a copy of printWatch.js (written to the OS temp folder, never into + * the tree), and every copy must fail at least one arm. + * EXIT 0 pass · 1 fail + */ +import { readFileSync, writeFileSync, rmSync, mkdtempSync } from 'node:fs' +import { resolve, dirname, join } from 'node:path' +import { tmpdir } from 'node:os' +import { fileURLToPath, pathToFileURL } from 'node:url' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../../..') +const SRC = join(ROOT, 'plugin-designs/wall-of-people-groups/src/printWatch.js') +const TMP = mkdtempSync(join(tmpdir(), 'wall-print-watch-')) + +// fake timers +let now = 0, seq = 0 +const timers = new Map() +globalThis.setTimeout = (fn, ms = 0) => { const id = ++seq; timers.set(id, { at: now + ms, fn }); return id } +globalThis.clearTimeout = (id) => timers.delete(id) +globalThis.setInterval = (fn, ms) => { const id = ++seq; const t = { at: now + ms, fn, every: ms }; timers.set(id, t); return id } +globalThis.clearInterval = (id) => timers.delete(id) +function advanceTo(t) { + for (;;) { + let next = null + for (const [id, x] of timers) if (x.at <= t && (!next || x.at < next[1].at)) next = [id, x] + if (!next) break + const [id, x] = next; now = x.at + if (x.every) x.at += x.every; else timers.delete(id) + x.fn() + } + now = t +} +function fakeWin(n) { + const images = Array.from({ length: n }, () => ({ complete: false, naturalWidth: 0 })) + const on = {} + return { images, document: { images }, addEventListener: (type, fn) => { on[type] = fn }, fire: (type) => on[type] && on[type]() } +} +const settle = (win, k, fail = 0) => { for (let i = 0; i < k; i++) { win.images[i].complete = true; win.images[i].naturalWidth = i < fail ? 0 : 320 } } + +async function arms(mod) { + const out = [] + const ok = (c, what) => { if (!c) out.push(what) } + // A. all load: progress climbs, onDone once at 'load' with 0 failed + { now = 0; timers.clear(); const w = fakeWin(10), seen = [], done = [] + mod.watchPrintFrame(w, { onProgress: (c) => seen.push(c.n), onDone: (c) => done.push(c) }) + settle(w, 4); advanceTo(600); settle(w, 10); advanceTo(1200); w.fire('load'); advanceTo(700000) + ok(seen[0] === 0 && seen.includes(4) && seen.includes(10), `progress counts the photos as they load (saw ${seen.join(',')})`) + ok(done.length === 1 && done[0] && done[0].n === 10 && done[0].total === 10 && done[0].failed === 0, 'onDone once at load: 10 of 10, 0 failed') } + // B. some fail: complete with no pixels are counted as failed + { now = 0; timers.clear(); const w = fakeWin(10), done = [] + mod.watchPrintFrame(w, { onDone: (c) => done.push(c) }) + settle(w, 10, 3); advanceTo(1000); w.fire('load') + ok(done.length === 1 && done[0] && done[0].failed === 3, `3 photos that could not load are counted (got ${done[0] && done[0].failed})`) } + // C. a load that never ends: onDone once, at the ceiling + { now = 0; timers.clear(); const w = fakeWin(10), done = [] + mod.watchPrintFrame(w, { onDone: (c) => done.push([now, c]) }) + settle(w, 6); advanceTo(599999) + ok(done.length === 0, 'no onDone before the ceiling while the frame is still loading') + advanceTo(600000) + ok(done.length === 1 && done[0][0] === 600000 && done[0][1].n === 6, 'onDone once at the 10-minute ceiling, with the count so far') } + // D. the frame is removed before its load: the watch ends at the next tick, not at the ceiling + { now = 0; timers.clear(); const w = fakeWin(10), done = [] + mod.watchPrintFrame(w, { onDone: (c) => done.push([now, c]) }) + advanceTo(60000); w.closed = true; advanceTo(61000) + ok(done.length === 1 && done[0][0] <= 61000 && done[0][1] === null, `a frame that is gone ends the watch within a tick (ended at ${done[0] ? done[0][0] : 'never'})`) } + return out +} + +let fails = [] +const real = await import(pathToFileURL(SRC).href) +fails = await arms(real) +for (const f of fails) console.log(' FAIL ' + f) + +// planted defects: each must make at least one arm fail +const src = readFileSync(SRC, 'utf8') +const PLANTS = [ + ['failed photos are not counted', 'if (!im.naturalWidth) failed++', ''], + ['no ceiling: a load that never ends never finishes', 'cap = setTimeout(() => finish(countImages(win)), ceilingMs)', 'cap = null'], + ['no progress while loading', 'iv = setInterval(tick, every)', 'iv = null'], + ['a removed frame holds the watch until the ceiling', 'if (win.closed) return finish(null); ', ''], +] +let planted = 0 +for (const [name, from, to] of PLANTS) { + if (!src.includes(from)) { fails.push(`SELF-TEST: the planted defect "${name}" no longer matches the source`); continue } + const p = join(TMP, `printWatch.planted-${planted}.mjs`) // printWatch.js imports nothing, so it runs from anywhere + writeFileSync(p, src.replace(from, to)) + try { const bad = await arms(await import(pathToFileURL(p).href)); if (!bad.length) fails.push(`SELF-TEST: the planted defect "${name}" was not caught`); else planted++ } + finally { rmSync(p, { force: true }) } +} +rmSync(TMP, { recursive: true, force: true }) +if (fails.length) { console.log(`WALL-PRINT-WATCH: FAIL — ${fails.length}`); for (const f of fails) console.log(' - ' + f); process.exit(1) } +console.log(`WALL-PRINT-WATCH: PASS — the print counts its photos while they load, counts the ones that could not load, and finishes at load or at the ceiling; ${planted} planted defects each caught.`) diff --git a/plugin-designs/wall-of-people-groups/scripts/check-wall-wysiwyg.mjs b/plugin-designs/wall-of-people-groups/scripts/check-wall-wysiwyg.mjs new file mode 100644 index 000000000..6c294c730 --- /dev/null +++ b/plugin-designs/wall-of-people-groups/scripts/check-wall-wysiwyg.mjs @@ -0,0 +1,74 @@ +#!/usr/bin/env node +/** + * check-wall-wysiwyg — the Wall's screen IS its poster. Headless. + * + * The Bless view draws the poster on screen (screenPoster) and prints it (buildBlessPosterHtml) from one + * layout (blessPoster.js). This asserts they stay one, for every preset: the same number of sheets, the + * same 2,107 card rects (to 0.002 in), the same per-card name size and wrap (cardText), the same verse + * reference size, the same chrome blocks (banner, themes, footer, journey), and sheets at the preset's + * aspect. A change to either path that is not made to both fails here. + * + * Two-sided: each arm is also run against a planted defect (one screen card moved 0.01 in, one name + * printed a point larger, one chrome block missing on screen), and each must be caught. + * EXIT 0 pass · 1 fail + */ +import { resolve, dirname, join } from 'node:path' +import { fileURLToPath, pathToFileURL } from 'node:url' + +const ROOT = resolve(dirname(fileURLToPath(import.meta.url)), '../../..') +const m = await import(pathToFileURL(join(ROOT, 'plugin-designs/wall-of-people-groups/src/blessPoster.js')).href) +const names = Array.from({ length: 2107 }, (_, i) => (i % 97 === 0 ? 'Han Chinese, Mandarin-speaking lowlands ' + i : i % 13 === 0 ? 'Accukattavandlu' : 'Group ' + i)) +const groups = names.map((name) => ({ name })) +const CARD_RE = /
/g + +/** Every way the screen and the print disagree for one preset. `plant` may damage the screen side. */ +function compare(id, plant = null) { + const html = m.buildBlessPosterHtml(groups, id, {}) + const sp = m.screenPoster(groups, id, {}) + let cardText = m.cardText + if (plant) ({ cardText = m.cardText } = plant(sp) || {}) + const P = sp.plan.preset, px = sp.pxPerIn, step = P.sheetH + m.SCREEN_GAP_IN + const cards = [...html.matchAll(CARD_RE)] + const pages = (html.match(/
/g) || []).length + const errs = [] + if (pages !== P.sheets || sp.sheets.length !== P.sheets) errs.push(`sheets: print ${pages}, screen ${sp.sheets.length}`) + if (cards.length !== groups.length || sp.cards.length !== groups.length) errs.push(`cards: print ${cards.length}, screen ${sp.cards.length}`) + for (const R of sp.sheets) if (Math.abs(R.w / R.h - P.sheetW / P.sheetH) > 1e-9) errs.push('a screen sheet is not at the preset\'s aspect') + sp.cards.forEach((c, k) => { + const pc = sp.plan.cards[k], h = cards[k] + if (!h) return + const ct = cardText(sp.plan, names[c.i]) + const d = Math.max(Math.abs(c.x / px - +h[1]), Math.abs(c.y / px - (pc.s * step + +h[2])), Math.abs(c.w / px - +h[3]), Math.abs(c.h / px - +h[4])) + if (d > 0.002) errs.push(`card ${c.i}: rect off by ${d.toFixed(4)} in`) + if (+h[6] !== ct.name.pt || !!h[5] !== ct.name.wrap) errs.push(`card ${c.i}: name prints ${h[6]} pt${h[5] || ''}, screen says ${ct.name.pt} pt${ct.name.wrap ? ' w2' : ''}`) + }) + const ref = /\.card \.rf\{font-size:([\d.]+)pt/.exec(html) + if (!ref || +ref[1] !== cardText(sp.plan, '').refPt) errs.push('the verse reference size differs') + for (const k of ['class="ban"', 'class="themes"', 'class="ftr"', 'class="jny"']) { + if (html.includes(k) !== sp.chromeHtml.includes(k)) errs.push(`chrome block ${k} is on one side only`) + } + return { errs, P, sp } +} + +let fails = 0 +for (const id of Object.keys(m.PRESETS)) { + const { errs, P, sp } = compare(id) + console.log(` ${errs.length ? 'FAIL' : 'ok '} ${id}: ${P.sheets} sheet(s) of ${P.sheetW}×${P.sheetH} in, ${groups.length} cards at the same rects and sizes; screen world ${sp.worldW}×${sp.worldH} px${errs.length ? '\n ' + errs.slice(0, 5).join('\n ') : ''}`) + fails += errs.length ? 1 : 0 +} + +// Planted defects: each must make the comparison fail. +const id0 = Object.keys(m.PRESETS)[0] +const PLANTS = [ + ['one screen card moved 0.01 in', (sp) => { sp.cards[5].x += 0.01 * sp.pxPerIn }], + ['one name a point larger on screen', () => ({ cardText: (plan, name) => { const t = m.cardText(plan, name); return name === names[7] ? { ...t, name: { ...t.name, pt: t.name.pt + 1 } } : t } })], + ['the footer missing on screen', (sp) => { sp.chromeHtml = sp.chromeHtml.replace('class="ftr"', 'class="xx"') }], +] +let caught = 0 +for (const [what, plant] of PLANTS) { + if (compare(id0, plant).errs.length) caught++ + else { console.log(` FAIL SELF-TEST: a planted defect was not caught (${what})`); fails++ } +} + +if (fails) { console.log(`WALL-WYSIWYG: FAIL — ${fails} problem(s)`); process.exit(1) } +console.log(`WALL-WYSIWYG: PASS — screen and print are one layout on every preset (${Object.keys(m.PRESETS).join(', ')}); ${caught} planted defects each caught.`) diff --git a/plugin-designs/wall-of-people-groups/scripts/fixtures/pray-list-sample.json b/plugin-designs/wall-of-people-groups/scripts/fixtures/pray-list-sample.json new file mode 100644 index 000000000..a81028b37 --- /dev/null +++ b/plugin-designs/wall-of-people-groups/scripts/fixtures/pray-list-sample.json @@ -0,0 +1 @@ +{"_note":"A trimmed sample of https://pray.doxa.life/api/people-groups/list (2026-09-29): 120 groups with has_photo, 77 without, plus 3 SYNTHETIC rows with no image_url (the live list has none), for check-wall-no-bg-photos. Only the fields that check reads.","posts":[{"slug":"abai-sungai","name":"Abai Sungai","country_code":{"value":"MYS","label":"Malaysia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1200","people_praying":5,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10120.jpg"},{"slug":"agri","name":"Agri","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"70000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16180.jpg"},{"slug":"ajja","name":"Ajja","country_code":{"value":"SSD","label":"South Sudan"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"325","people_praying":0,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG011960.jpg"},{"slug":"akha-luma","name":"Akha Luma","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"6700","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22584.jpg"},{"slug":"alas","name":"Alas","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"268000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10246.jpg"},{"slug":"amahuaca","name":"Amahuaca","country_code":{"value":"PER","label":"Peru"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"300","people_praying":5,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG017493.jpg"},{"slug":"amundava","name":"Amundava","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"125","people_praying":3,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG016521.jpg"},{"slug":"aoka","name":"Aoka","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"424000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18398.jpg"},{"slug":"arawak","name":"Arawak","country_code":{"value":"SUR","label":"Suriname"},"wagf_region":{"value":"north_america_&_non-spanish_caribbean","label":"North America & Non-Spanish Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"3300","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10409.jpg"},{"slug":"asilulu","name":"Asilulu","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"14500","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10456.jpg"},{"slug":"babalia","name":"Babalia","country_code":{"value":"TCD","label":"Chad"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"12500","people_praying":2,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG011309.jpg"},{"slug":"bagvalal","name":"Bagvalal","country_code":{"value":"RUS","label":"Russian Federation"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"6500","people_praying":5,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12896.jpg"},{"slug":"bania-malayalam","name":"Bania (Malayalam)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"155000","people_praying":0,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG048033.jpg"},{"slug":"barke","name":"Barke","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"24500","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10691.jpg"},{"slug":"bati","name":"Bati","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"5500","people_praying":5,"has_photo":true,"image_url":"https://joshuaproject.net/assets/media/profiles/photos/p10726.jpg"},{"slug":"belbali","name":"Belbali","country_code":{"value":"DZA","label":"Algeria"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"3800","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10774.jpg"},{"slug":"bhuiyar","name":"Bhuiyar","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"41500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16453.jpg"},{"slug":"bisayan-tutong","name":"Bisayan Tutong","country_code":{"value":"BRN","label":"Brunei Darussalam"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"24000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15662.jpg"},{"slug":"bolgo-dugag","name":"Bolgo Dugag","country_code":{"value":"TCD","label":"Chad"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"5700","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10915.jpg"},{"slug":"bosniaks","name":"Bosniaks","country_code":{"value":"MNE","label":"Montenegro"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"48500","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10953.jpg"},{"slug":"bulgeda","name":"Bulgeda","country_code":{"value":"TCD","label":"Chad"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"55500","people_praying":4,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG042663.jpg"},{"slug":"cabiyari","name":"Cabiyari","country_code":{"value":"COL","label":"Colombia"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"350","people_praying":3,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG016221.jpg"},{"slug":"central-swahili","name":"Central Swahili","country_code":{"value":"COD","label":"Democratic Republic of the Congo"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"63000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15145.jpg"},{"slug":"chenoua","name":"Chenoua","country_code":{"value":"DZA","label":"Algeria"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"108000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11321.jpg"},{"slug":"chut-laos","name":"Chut","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"1500","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14629.jpg"},{"slug":"daasanach","name":"Daasanach","country_code":{"value":"SSD","label":"South Sudan"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"4900","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14549.jpg"},{"slug":"darang-deng","name":"Darang Deng","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"12500","people_praying":1,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18436.jpg"},{"slug":"deaf-azerbaijanis","name":"Deaf Azerbaijanis","country_code":{"value":"AZE","label":"Azerbaijan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSH","label":"Islam - Shia"},"population":"102000","people_praying":2,"has_photo":true,"image_url":"https://joshuaproject.net/assets/media/profiles/photos/p19007_aj.jpg"},{"slug":"deaf-bosnians","name":"Deaf Bosnians","country_code":{"value":"BIH","label":"Bosnia and Herzegovina"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"31500","people_praying":3,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-europe.jpg"},{"slug":"deaf-christmas-islanders","name":"Deaf Christmas Islanders","country_code":{"value":"CXR","label":"Christmas Island"},"wagf_region":{"value":"oceania","label":"Oceania"},"religion":{"value":"U","label":"Unknown"},"population":"15","people_praying":2,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-north-america.jpg"},{"slug":"deaf-dominicans","name":"Deaf Dominicans","country_code":{"value":"DMA","label":"Dominica"},"wagf_region":{"value":"north_america_&_non-spanish_caribbean","label":"North America & Non-Spanish Caribbean"},"religion":{"value":"U","label":"Unknown"},"population":"750","people_praying":1,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-north-america.jpg"},{"slug":"deaf-georgians","name":"Deaf Georgians","country_code":{"value":"GEO","label":"Georgia"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"37000","people_praying":2,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-europe.jpg"},{"slug":"deaf-icelanders","name":"Deaf Icelanders","country_code":{"value":"ISL","label":"Iceland"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"1600","people_praying":0,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-europe.jpg"},{"slug":"deaf-kazakhstanis","name":"Deaf Kazakhstanis","country_code":{"value":"KAZ","label":"Kazakhstan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"207000","people_praying":4,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-asia.jpg"},{"slug":"deaf-liechtensteiners","name":"Deaf Liechtensteiners","country_code":{"value":"LIE","label":"Liechtenstein"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"U","label":"Unknown"},"population":"400","people_praying":3,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-europe.jpg"},{"slug":"deaf-micronesians","name":"Deaf Micronesians","country_code":{"value":"FSM","label":"Micronesia, Federated States of"},"wagf_region":{"value":"oceania","label":"Oceania"},"religion":{"value":"U","label":"Unknown"},"population":"1100","people_praying":3,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-oceania.jpg"},{"slug":"deaf-hong-kong","name":"Deaf of Hong Kong","country_code":{"value":"HKG","label":"Hong Kong"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"7900","people_praying":6,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-asia.jpg"},{"slug":"deaf-saint-barth","name":"Deaf Saint Barth","country_code":{"value":"BLM","label":"Saint Barthélemy"},"wagf_region":{"value":"north_america_&_non-spanish_caribbean","label":"North America & Non-Spanish Caribbean"},"religion":{"value":"U","label":"Unknown"},"population":"100","people_praying":3,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-north-america.jpg"},{"slug":"deaf-solomon-islanders","name":"Deaf Solomon Islanders","country_code":{"value":"SLB","label":"Solomon Islands"},"wagf_region":{"value":"oceania","label":"Oceania"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"7900","people_praying":3,"has_photo":true,"image_url":"https://joshuaproject.net/assets/media/profiles/photos/p19007_bp.jpg"},{"slug":"deaf-tajikistanis","name":"Deaf Tajikistanis","country_code":{"value":"TJK","label":"Tajikistan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"97500","people_praying":3,"has_photo":true,"image_url":"https://s3.doxa.life/no-photo-images/deaf-asia.jpg"},{"slug":"desana-1","name":"Desana","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"1800","people_praying":0,"has_photo":true,"image_url":"https://images.peoplegroups.org/imbpeople-featured-images/PG016820.jpg"},{"slug":"dirya","name":"Dirya","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"15000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11570.jpg"},{"slug":"domari","name":"Doms","country_code":{"value":"IRN","label":"Islamic Republic of Iran"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"111000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11597.jpg"},{"slug":"duwai","name":"Duwai","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"21500","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11664.jpg"},{"slug":"ersu","name":"Ersu","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"BLA","label":"Buddhism - Tibetan"},"population":"48000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18452.jpg"},{"slug":"finnish-lapp","name":"Finnish Lapp","country_code":{"value":"FIN","label":"Finland"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"CPR","label":"Christianity - Protestantism"},"population":"750","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11206.jpg"},{"slug":"gandla","name":"Gandla","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"2000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16812.jpg"},{"slug":"gazi","name":"Gazi","country_code":{"value":"IRN","label":"Islamic Republic of Iran"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSH","label":"Islam - Shia"},"population":"6000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11838.jpg"},{"slug":"golden-palaung","name":"Golden Palaung","country_code":{"value":"MMR","label":"Myanmar"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"BTH","label":"Buddhism - Theravada"},"population":"215000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p11921.jpg"},{"slug":"grangali","name":"Grangali","country_code":{"value":"AFG","label":"Afghanistan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"12000","people_praying":2,"has_photo":true,"image_url":"https://joshuaproject.net/assets/media/profiles/photos/p11936.jpg"},{"slug":"gyasumdoba","name":"Gyasumdoba","country_code":{"value":"NPL","label":"Nepal"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"BLA","label":"Buddhism - Tibetan"},"population":"5800","people_praying":0,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG048533.jpg"},{"slug":"hasalaru","name":"Hasalaru","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"HOF","label":"Hinduism - Folk"},"population":"30000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18774.jpg"},{"slug":"hima","name":"Hima","country_code":{"value":"UGA","label":"Uganda"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"429000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12103.jpg"},{"slug":"hupdah","name":"Hupdah","country_code":{"value":"COL","label":"Colombia"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"300","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12158.jpg"},{"slug":"jarawas","name":"Jarawas","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"350","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16994.jpg"},{"slug":"jiamao-li","name":"Jiamao Li","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"109000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18551.jpg"},{"slug":"kadung","name":"Kadung","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"21000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12912.jpg"},{"slug":"kami","name":"Kami","country_code":{"value":"TZA","label":"United Republic of Tanzania"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"32500","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p19067.jpg"},{"slug":"kasena","name":"Kasena","country_code":{"value":"BFA","label":"Burkina Faso"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"252000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12556.jpg"},{"slug":"kaxix","name":"Kaxixó","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"325","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p19133.jpg"},{"slug":"kelenga-bozo","name":"Kelenga Bozo","country_code":{"value":"MLI","label":"Mali"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"52000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12033.jpg"},{"slug":"kharol","name":"Kharol","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"50500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p17155.jpg"},{"slug":"khuen","name":"Khuen","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"15000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p19157.jpg"},{"slug":"komodo","name":"Komodo","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1800","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12768.jpg"},{"slug":"kotokoli-togo","name":"Kotokoli","country_code":{"value":"TGO","label":"Togo"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"526000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12815.jpg"},{"slug":"kudur","name":"Kudur","country_code":{"value":"SDN","label":"Sudan"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"10000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22467.jpg"},{"slug":"kuria","name":"Kuria","country_code":{"value":"TZA","label":"United Republic of Tanzania"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"763000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p12876.jpg"},{"slug":"labapo","name":"Labapo","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"11000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18530.jpg"},{"slug":"lampung-abung","name":"Lampung Abung","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"202000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p10140.jpg"},{"slug":"lawi","name":"Lawi","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"1000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13015.jpg"},{"slug":"liude","name":"Liude","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"2300","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18560.jpg"},{"slug":"lupanshui-miao","name":"Lupanshui Miao","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"77000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18588.jpg"},{"slug":"mairiri","name":"Mairiri","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"550","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13226.jpg"},{"slug":"maleng","name":"Maleng","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"1100","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16144.jpg"},{"slug":"mankanya","name":"Mankanya","country_code":{"value":"GMB","label":"Republic of The Gambia"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"3700","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13515.jpg"},{"slug":"mashan-miao","name":"Mashan Miao","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"263000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18589.jpg"},{"slug":"mendriq","name":"Mendriq","country_code":{"value":"MYS","label":"Malaysia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"375","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13670.jpg"},{"slug":"mirisia-zuruk","name":"Mirisia Zuruk","country_code":{"value":"SDN","label":"Sudan"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"23000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22474.jpg"},{"slug":"mongallese-arabs","name":"Mongallese Arabs","country_code":{"value":"SSD","label":"South Sudan"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"54500","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13787.jpg"},{"slug":"mozhihei","name":"Mozhihei","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"6000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18611.jpg"},{"slug":"muzi","name":"Muzi","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"2500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18616.jpg"},{"slug":"naju","name":"Naju","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"2500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18619.jpg"},{"slug":"nayadi","name":"Nayadi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"6500","people_praying":1,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p17768.jpg"},{"slug":"nguon","name":"Nguon","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"2300","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p13375.jpg"},{"slug":"northern-yemeni-arabs","name":"Northern Yemeni Arabs","country_code":{"value":"YEM","label":"Yemen"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSH","label":"Islam - Shia"},"population":"13640000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14715.jpg"},{"slug":"nyong","name":"Nyong","country_code":{"value":"THA","label":"Thailand"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"BLA","label":"Buddhism - Tibetan"},"population":"14000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16053.jpg"},{"slug":"pacoh","name":"Pacoh","country_code":{"value":"VNM","label":"Vietnam"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"20000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14249.jpg"},{"slug":"palyu","name":"Palyu","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"15500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14281.jpg"},{"slug":"parachi","name":"Parachi","country_code":{"value":"AFG","label":"Afghanistan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"12000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14311.jpg"},{"slug":"phai","name":"Phai","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"28500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14377.jpg"},{"slug":"piratapuyo","name":"Piratapuyo","country_code":{"value":"COL","label":"Colombia"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"650","people_praying":6,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14404.jpg"},{"slug":"poumong","name":"Poumong","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"1700","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14456.jpg"},{"slug":"qiubei-zhuang","name":"Qiubei Zhuang","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"215000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p19806.jpg"},{"slug":"red-tai","name":"Red Tai","country_code":{"value":"VNM","label":"Vietnam"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"175000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15186.jpg"},{"slug":"saek","name":"Saek","country_code":{"value":"THA","label":"Thailand"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"3600","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14631.jpg"},{"slug":"sandhai-muslims","name":"Sandhai Muslims","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1500","people_praying":1,"has_photo":true,"image_url":"https://peoplegroupspublic.blob.core.windows.net/imbpeople-featured-images/PG049764.jpg"},{"slug":"seit-kaitetu","name":"Seit-Kaitetu","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"16500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14819.jpg"},{"slug":"shaksaz","name":"Shaksaz","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"3300","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18091.jpg"},{"slug":"shina-pakistan","name":"Shina","country_code":{"value":"PAK","label":"Pakistan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"595000","people_praying":1,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14913.jpg"},{"slug":"sila-laos","name":"Sila","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"3700","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14174.jpg"},{"slug":"songhai","name":"Songhai","country_code":{"value":"BFA","label":"Burkina Faso"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"256000","people_praying":3,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p19221.jpg"},{"slug":"subei","name":"Subei","country_code":{"value":"SDN","label":"Sudan"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"8400","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22477.jpg"},{"slug":"swahili","name":"Swahili","country_code":{"value":"UGA","label":"Uganda"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"5400","people_praying":5,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15145.jpg"},{"slug":"tai-he","name":"Tai He","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"15000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15189.jpg"},{"slug":"tai-peung","name":"Tai Peung","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"1900","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15195.jpg"},{"slug":"ta-oy-tamla","name":"Ta-Oy Tamla","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"1600","people_praying":1,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22632.jpg"},{"slug":"thai-toum","name":"Thai Toum","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"2600","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22634.jpg"},{"slug":"tihama","name":"Tihama","country_code":{"value":"SAU","label":"Saudi Arabia"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"212000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15484.jpg"},{"slug":"tong","name":"Tong","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"17500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15259.jpg"},{"slug":"tsun-lao","name":"Tsun-Lao","country_code":{"value":"VNM","label":"Vietnam"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"15500","people_praying":5,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15599.jpg"},{"slug":"turks","name":"Turks","country_code":{"value":"KOS","label":"KOS"},"wagf_region":{"value":"europe","label":"Europe"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"13000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18274.jpg"},{"slug":"umpqua","name":"Umpqua","country_code":{"value":"USA","label":"United States of America"},"wagf_region":{"value":"north_america_&_non-spanish_caribbean","label":"North America & Non-Spanish Caribbean"},"religion":{"value":"ENA","label":"Ethnoreligion - Native American religions"},"population":"900","people_praying":2,"has_photo":true,"image_url":"https://images.peoplegroups.org/imbpeople-featured-images/PG050467.jpg"},{"slug":"waama","name":"Waama","country_code":{"value":"TGO","label":"Togo"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"24000","people_praying":4,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16045.jpg"},{"slug":"waza","name":"Waza","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1000","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18331.jpg"},{"slug":"wopu","name":"Wopu","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"4800","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18712.jpg"},{"slug":"xingmoun-kor","name":"Xingmoun Kor","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"750","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p22609.jpg"},{"slug":"yaminahua","name":"Yaminahua","country_code":{"value":"PER","label":"Peru"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"600","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p15975.jpg"},{"slug":"yinuo-nosu","name":"Yinuo Nosu","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"ECF","label":"Ethnoreligion - Chinese Folk Religion"},"population":"810000","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p18645.jpg"},{"slug":"yunnan-shui","name":"Yunnan Shui","country_code":{"value":"CHN","label":"People's Republic of China"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"14500","people_praying":0,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p14922.jpg"},{"slug":"zuara","name":"Zuara","country_code":{"value":"LBY","label":"Libya"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"43500","people_praying":2,"has_photo":true,"image_url":"https://media.joshuaproject.net/public/assets/media/profiles/photos/p16114.jpg"},{"slug":"accukattavandlu","name":"Accukattavandlu","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"12500","people_praying":2,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"ansari-momin-kannada","name":"Ansari-Momin (Kannada)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"8600","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"are-bondili","name":"Are Bondili","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"3100","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"baga-koga","name":"Baga Koga","country_code":{"value":"GIN","label":"Guinea"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"5400","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"banchada","name":"Banchada","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"HOF","label":"Hinduism - Folk"},"population":"35500","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"banka-samogho","name":"Banka Samogho","country_code":{"value":"MLI","label":"Mali"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"11500","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"barthari","name":"Barthari","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"16500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"bestha","name":"Bestha","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"468000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"bhoi-odia","name":"Bhoi (Odia)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"142000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"borpi","name":"Borpi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"950","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"cakkyar-nambiyar","name":"Cakkyar Nambiyar","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"950","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"chamacocos","name":"Chamacocos","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"40","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"cheintz","name":"Cheintz","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"1300","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"coquille","name":"Coquille","country_code":{"value":"USA","label":"United States of America"},"wagf_region":null,"religion":{"value":"ENA","label":"Ethnoreligion - Native American religions"},"population":"600","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/north-america.jpg"},{"slug":"damla","name":"Damla","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"6000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"dek","name":"Dek","country_code":{"value":"CMR","label":"Cameroon"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"6100","people_praying":4,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"dhola","name":"Dhola","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"225","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"dubasiyin","name":"Dubasiyin","country_code":{"value":"SDN","label":"Sudan"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"143000","people_praying":5,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/middle-east.jpg"},{"slug":"erenga","name":"Erenga","country_code":{"value":"SDN","label":"Sudan"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"13000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/middle-east.jpg"},{"slug":"galiara","name":"Galiara","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"550","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"garodi","name":"Garodi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"56000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"ghazi","name":"Ghazi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1700","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"gorkun","name":"Gorkun","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"17500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"arab-bahraini-sunni","name":"Gulf Arabs","country_code":{"value":"BHR","label":"Bahrain"},"wagf_region":{"value":"middle_east","label":"Middle East"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"137000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/middle-east.jpg"},{"slug":"hajjam-kashmiri","name":"Hajjam (Kashmiri)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"3000","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"hingora","name":"Hingora","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"400","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"itogapuk","name":"Itogapuk","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"100","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"jatigar","name":"Jatigar","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"125","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"jita","name":"Jita","country_code":{"value":"TZA","label":"United Republic of Tanzania"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"589000","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"kachchi-kushwaha","name":"Kachchi, Kushwaha","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"17000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kakmara","name":"Kakmara","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kamviri-nuristani","name":"Kamviri Nuristani","country_code":{"value":"AFG","label":"Afghanistan"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"27500","people_praying":2,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"karanga","name":"Karanga","country_code":{"value":"TCD","label":"Chad"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"25500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"kasseng","name":"Kasseng","country_code":{"value":"LAO","label":"Lao People's Democratic Republic"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"1200","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kawoj","name":"Kawoj","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"9700","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kharvi","name":"Kharvi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"36000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kidaran","name":"Kidaran","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"650","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kollan","name":"Kollan","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"2100","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"koro-zuba","name":"Koro Zuba","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAF","label":"Ethnoreligion - African Traditional Religion"},"population":"13000","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"kudiya","name":"Kudiya","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"HOF","label":"Hinduism - Folk"},"population":"4900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"kunnuva-vellalar","name":"Kunnuva Vellalar","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"19000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"ladsi","name":"Ladsi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"BOF","label":"Buddhism - Folk"},"population":"3300","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"liabuku","name":"Liabuku","country_code":{"value":"IDN","label":"Indonesia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"850","people_praying":2,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"mahisyadas","name":"Mahisyadas","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"190000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"maleru","name":"Maleru","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"2000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"mango","name":"Mango","country_code":{"value":"TCD","label":"Chad"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"209000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"masku","name":"Masku","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"700","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"mir","name":"Mir","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"48500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"mogia","name":"Mogia","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"1900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"mujavir","name":"Mujavir","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"7100","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"muslim-lakhera","name":"Muslim Lakhera","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"2200","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"naikpod","name":"Naikpod","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"16000","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"namdeo-maratha","name":"Namdeo Maratha","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"5100","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"nayak-muslims","name":"Nayak Muslims","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"8500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"nurang","name":"Nurang","country_code":{"value":"NPL","label":"Nepal"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"HOF","label":"Hinduism - Folk"},"population":"475","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"otans","name":"Otans","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"5100","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"pamidi","name":"Pamidi","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"4900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"para-gaviao","name":"Para Gaviao","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"475","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"pemon-brazil","name":"Pemon","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"650","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"pochammalollu","name":"Pochammalollu","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"7400","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"rajannalu","name":"Rajannalu","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"2700","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"rath","name":"Rath","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"420000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"ruhu","name":"Ruhu","country_code":{"value":"NGA","label":"Nigeria"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"MOF","label":"Islam - Folk"},"population":"22000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"sagharias","name":"Sagharias","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"125","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"samoya","name":"Samoya","country_code":{"value":"MLI","label":"Mali"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"4300","people_praying":2,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"saranias","name":"Saranias","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"5900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"semman","name":"Semman","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"6000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"shikari","name":"Shikari","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"900","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"siviar","name":"Siviar","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"600","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"southern-ngbandi","name":"Southern Ngbandi","country_code":{"value":"COD","label":"Democratic Republic of the Congo"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"315000","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"syenara-senufo","name":"Syenara Senufo","country_code":{"value":"MLI","label":"Mali"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"EAN","label":"Ethnoreligion - Animism"},"population":"340000","people_praying":3,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/africa.jpg"},{"slug":"tamboli-telugu","name":"Tamboli (Telugu)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"40500","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"theba","name":"Theba","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"750","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"tripuri-namasudra","name":"Tripuri Namasudra","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"291000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"uncontacted-of-bararati","name":"Uncontacted of Bararati","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"25","people_praying":1,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"uraparaquara","name":"Uraparaquara","country_code":{"value":"BRA","label":"Brazil"},"wagf_region":{"value":"latin_america_&_caribbean","label":"Latin America & Caribbean"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"100","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/south-america.jpg"},{"slug":"vayati","name":"Vayati","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"16000","people_praying":0,"has_photo":false,"image_url":"https://s3.doxa.life/no-photo-images/asia.jpg"},{"slug":"abai-sungai-no-url-0","name":"Abai Sungai (no image_url, synthetic)","country_code":{"value":"MYS","label":"Malaysia"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"MSN","label":"Islam - Sunni"},"population":"1200","people_praying":5,"has_photo":false},{"slug":"agri-no-url-1","name":"Agri (no image_url, synthetic)","country_code":{"value":"IND","label":"India"},"wagf_region":{"value":"asia","label":"Asia"},"religion":{"value":"H","label":"Hinduism"},"population":"70000","people_praying":2,"has_photo":false},{"slug":"ajja-no-url-2","name":"Ajja (no image_url, synthetic)","country_code":{"value":"SSD","label":"South Sudan"},"wagf_region":{"value":"africa","label":"Africa"},"religion":{"value":"E","label":"Ethnoreligion"},"population":"325","people_praying":0,"has_photo":false}]}