RLA-ES v2.9 preferred source and Instant Anagram reproduction material

This bundle preserves the exact tagged upstream source archive, generic es compiled oracle, historical PREQ semantic key/classification oracle, upstream multi-license offer and README, the selected MPL 1.1 text, source envelope, corrected continuation-aware generator source/configuration, transformation disclosure, output checksums and a generation report. The PREQ oracle is retained as superseded comparison evidence; pinned Hunspell continuation semantics and independent real-Hunspell parity are authoritative. It is the public corresponding/preferred source and Instant Anagram reproduction material for the generic international Spanish dictionary dataset. The website deployment and release action are controlled separately from bundle construction.

Canonical upstream: https://github.com/sbosio/rla-es, tag v2.9, tag object c67eae826908d05a8dfabf3f7a012ce280678208, peeled commit ea82c1214ead57740798acf66a1e18e5ac874c41. Distribution election for the dictionary material: MPL 1.1. The exact upstream archive and its copyright notices are preserved. No Initial Developer identity is inferred beyond the upstream-provided notices. No application-code relicensing claim is made.

Primary public offline reproduction path (no Instant Anagram repository checkout or network acquisition is required):
  1. Extract this source-v3 ZIP into a new working directory, referred to below as <EXTRACTED_BUNDLE>.
  2. Install the locked npm dependencies from the bundled package.json and package-lock.json, or expose byte/version-equivalent already installed dependencies.
  3. Create an external immutable cache root <CACHE>. Copy <EXTRACTED_BUNDLE>/original/rla-es-v2.9-source.zip to:
     <CACHE>/sources/rla-es-v2.9-source/sha256/bea2347d9ba9e43761156b9dc36875f5cd58dad4cde4959cea6fc538846e4d4e/rla-es-v2.9-source.zip
     Copy <EXTRACTED_BUNDLE>/oracle/rla-es-v2.9-es.oxt to:
     <CACHE>/sources/rla-es-v2.9-es-oxt/sha256/b08a1a0e3e044697f63a67184f591f7e2c37bbb53bbfbb4780bcbd84929d6e8c/rla-es-v2.9-es.oxt
  4. From <EXTRACTED_BUNDLE>, set INSTANT_ANAGRAM_SOURCE_CACHE=<CACHE>, INSTANT_ANAGRAM_ES_OUTPUT_ROOT=<NEW_EXTERNAL_OUTPUT>, and INSTANT_ANAGRAM_ES_PREQ_KEYS=<EXTRACTED_BUNDLE>/oracle/es-proposed-keys-v1.tsv.
  5. Run npm exec tsx tools/generate-es-candidate.ts. Compare the generated core, display and semantic projection byte counts and SHA-256 values with MODIFICATIONS.json.
  6. If a source-bundle rebuild is required, run node tools/build-es-source.mjs original/rla-es-v2.9-source.zip oracle/rla-es-v2.9-es.oxt oracle/es-proposed-keys-v1.tsv <GENERATION_REPORT> <NEW_SOURCE_BUNDLE_OUTPUT>.

Optional network convenience path: npm run sources:acquire -- rla-es-v2.9-source rla-es-v2.9-es-oxt. This is not required for reproduction because the exact pinned archive and OXT are included above.

Dictionary generation is offline once the bundled inputs are copied into the documented cache layout and the locked dependencies are available. The complete provenance ledger is deterministic but intentionally external because it is large; MODIFICATIONS.json binds its bytes and SHA-256, and the bundled preferred source plus generator reproduce it.
