Leipzig deu_news_2025_1M exact-surface frequency source bundle v1

Standalone reproduction from an extracted bundle:
1. Obtain every exact external input listed in REPRODUCTION.json and verify its filename, byte count and SHA-256.
2. In the extracted bundle run: npm ci --ignore-scripts
3. Run: node tools/reproduce-de-leipzig-frequency-source.mjs PATH_TO/deu_news_2025_1M.tar.gz PATH_TO/de-core.cf846942bc0e6997.bin PATH_TO/de-display.69aed1b56190a2d9.json PATH_TO/de-morphology.c26b72017a610eb9.bin NEW_EMPTY_OUTPUT_DIRECTORY

The command fails closed on every external identity mismatch. The upstream archive and cross-foundation packages are intentionally not bundled. The transform uses only the exact _words.txt member, strict raw Word identity, rawWord === canonicalSurface matching and competition rank. Leipzig CC BY scope is not extended to the external igerman98 GPL core/display or GMD CC BY-SA morphology. Upstream states CC BY without a version; this bundle does not infer one.
