# Indonesian dictionary source

The 4,604-row editable `candidate.tsv` is the preferred source for the Indonesian IAG2 dictionary set. Each row is `word<TAB>rank<TAB>flags`; rank follows descending Leipzig surface count and lexical order on ties. All rows have flags 21. `generation-lock.json` fixes the metadata and the identities of all 29 published binary assets. `reproduce-from-candidate-v1.mts` regenerates them offline using only this public source directory and a separately prepared public Node.js/tsx toolchain. The editable `iag2-*.ts` build-source files are scoped copies of the canonical IAG2 generator, encoder, scanner and validation contracts, licensed GPL-3.0-only in this distributed Indonesian source package. The private application's remaining source and license boundary are unaffected.

The original selection path is `generate-id-v4.mts` with `source-gate.mjs`, `inputs.lock.json`, `policy.json` and `curation-v4.json`. It admits independently listed LibreOffice dictionary entries, excludes NEEDAFFIX and unknown flags, applies a Leipzig count floor of five, and removes 844 exact source-line-bound entries. It does not synthesize affixed words. The raw LibreOffice files here retain their original bytes, copyright notices and LGPL-3.0-only identity. The candidate, curation and resulting IAG2 set are a separate GPL-3.0-only data component. Application JavaScript and other languages are separate works with their existing licenses.

`source-identities-v4.json` records the exact publisher URLs, commit and dump identities, retrieval, size and SHA-256 of every source. `verify-acquisition.mjs` checks reacquired bulk sources. The large Kaikki JSONL, MALINDO TSV and Leipzig archive are audit inputs to the earlier selection process, and are not needed to build the published binary from `candidate.tsv`.

See [NOTICE.md](NOTICE.md), [MODIFICATIONS.md](MODIFICATIONS.md), [LICENSE-COMPATIBILITY.md](LICENSE-COMPATIBILITY.md), and [REPRODUCE.md](REPRODUCE.md).
