{"guides":[{"slug":"api-basics","title":"API basics — read this once","description":"READ ONCE, applies to every job: auth, the dictionary id, multilingual fields (and never stripping diacritics), the data model, generating your own ids for idempotency, batch results + errors, size limits, and how to fetch the reference in slices.","url":"https://livingdictionaries.app/api/v1/guides/api-basics"},{"slug":"importing","title":"Importing a dictionary: the orchestration guide","description":"START HERE for any import job — the ordered runbook. Phase 0 set up (download the resources, register the source, file the resources under it); phase 1 data preparation (inspect, ask the human the linguistic questions inspection raises, stage locally as JSONL/SQLite, review the data by eye in bulk, clean, preview sign-off); phase 2 API usage (batching, idempotency, the human review queue, verification, repair/re-sync, rollback, reporting).","url":"https://livingdictionaries.app/api/v1/guides/importing"},{"slug":"spreadsheets","title":"Importing from spreadsheets (CSV / Excel / Google Sheets)","description":"CSV/Excel/Google Sheets: column-mapping heuristics, multi-sense and multi-value cells, encoding traps.","url":"https://livingdictionaries.app/api/v1/guides/spreadsheets"},{"slug":"flex-lift","title":"Importing from FLEx / LIFT / Toolbox (SFM/MDF)","description":"FLEx, LIFT, and Toolbox/Shoebox SFM-MDF: which export to prefer and the backslash-marker → API field map.","url":"https://livingdictionaries.app/api/v1/guides/flex-lift"},{"slug":"pdf-scans","title":"Importing printed dictionaries from PDF","description":"Printed dictionaries as PDF. FIRST tell a scan from a born-digital export: for a scan, why NOT to use OCR (read every page with vision instead, zooming in on uncertain diacritics); for a born-digital file, use the real text layer but decode the custom-font glyph trap (incl. ASCII imposters), fix spacing at the character-geometry level, resolve wrap hyphens by corpus evidence, apply NFC, and verify the parse with a compare-don't-retranscribe vision sweep. Plus the print-typo policy, front-matter legend, page-range workflow, diacritic fidelity, per-page citations.","url":"https://livingdictionaries.app/api/v1/guides/pdf-scans"},{"slug":"cleanup","title":"Cleaning up an existing dictionary","description":"Auditing and correcting a dictionary that already has entries: bulk-reading and eyeballing it, common audits, queueing judgement calls on the editor-only review flag instead of guessing, the surgical single-row fixes, PATCH merge semantics (it never deletes), and undoing a bad import via batch-delete.","url":"https://livingdictionaries.app/api/v1/guides/cleanup"},{"slug":"consume","title":"Reading a dictionary — apps, analysis, mirrors","description":"Reading a dictionary for an app, analysis, or mirror: download the gzipped SQLite snapshot instead of paginating, open it read-only, query the key tables, fetch media bytes — plus when the API is the better choice.","url":"https://livingdictionaries.app/api/v1/guides/consume"},{"slug":"media","title":"Audio, photos, and video","description":"Audio, photos, and video: the one-call upload+link routes, the attribution rule (audio/video REQUIRE a real speaker or a source — never invent a placeholder person), idempotency and replace, size caps, and karaoke word-timings via forced alignment.","url":"https://livingdictionaries.app/api/v1/guides/media"},{"slug":"corpus","title":"Texts, interlinear glossing, and grammar","description":"Connected texts, interlinear glossed text (IGT), and the structured grammar: texts vs. example sentences, the token list as the shared 1:1 alignment index, the locked gloss convention, the grammar-section tree, and the word→entry matching queue.","url":"https://livingdictionaries.app/api/v1/guides/corpus"}]}