/** * @copyright Sister Software * @license AGPL-3.0 * @author Teffen Ellis, et al. * * `fr-lieudit` slice recipe — FR lieu-dit (hamlet/place) `dependent_locality` coverage * (`.superpowers/sdd/deploc-world-survey.md`, FR section, 2026-07-22). Streams every BAN * `adresses-.csv` dump under `--ban-dir` through `@mailwoman/ban/sdk`'s * `extractBANAddrPoints`, which now surfaces a cleaned `lieuDit` per record (junk/dup filtering * lives in `ban/sdk/extract.ts`'s `cleanLieuDit`, not duplicated here). Only rows carrying a clean * lieu-dit survive into the pool; the existing `ban`/`synth-fr` sources and their emitted rows are * untouched — this recipe reads the SAME raw CSVs but emits under its own source name. * * Mapping: lieu-dit → `dependent_locality`, commune → `locality`. Rendered to match the formatter's * FR `place`-slot convention (`fix(formatter): render dependent_locality for neither-slot templates`, * b1edc1b7, verified via a `formatAddress` smoke call): house+street on line 1, the lieu-dit ALONE on * line 2, postcode+commune on line 3 — French postal convention (La Poste's line 5). * * ~1.69M clean rows survive the filter nationally (26M total BAN rows, 1.81M raw `nom_ld` fills, ~6.6% * junk/dup). The pool is read in full (small string tuples only — no coordinates needed) and * Fisher-Yates shuffled with the seeded PRNG before slicing to `--count`, rather than sampled WITH * replacement — at a `--count` a sizeable fraction of the pool, with-replacement draws would produce a * large duplicate rate (birthday-paradox math: ~190k expected collisions at count=800k over a 1.69M * pool). */ import type { CorpusRecipe } from "#recipes/scaffold"; /** * Slice recipe registered with the corpus builder — see the file header for the parse behaviour it exists to exercise, * and `description` below for the surface form it generates. */ export declare const frLieuditRecipe: CorpusRecipe; //# sourceMappingURL=lieudit.d.ts.map