WORDWARD ITALIAN VOCABULARY — DECK VERSION 1
2026-10-25

Integration note: the browser adapter uppercases only ASCII and explicitly
supported Italian vowel letters, then folds those accents. Unsupported dotless
I, long S, sharp S and presentation ligatures remain invalid rather than
expanding into another guess. Pasted punctuation stays visible for rejection.
This strengthens input handling without changing the generated vocabulary.

SOURCE AND LICENSE
Italian Writing Aids extension 5.1.1 (7 November 2022), distributed by LibreItalia,
maintained by Marina Latini. Its dictionary derives from Dizionario italiano 2.4.
Copyright (C) 2001-2007 Gianluca Turconi and Davide Prina;
Copyright (C) 2010-2015 Andrea Pescetti;
Copyright (C) 2020-2022 LibreItalia - Marina Latini, with other contributors listed
in the original notices. Current dictionary source and README specify GPL v3;
the derived word-data files are distributed under GPL-3.0-only.

Pinned LibreOffice dictionaries source:
https://github.com/LibreOffice/dictionaries/tree/67032ee957631908098a72edf48dc81cac27e369/it_IT
Original it_IT.aff, it_IT.dic and README_it_IT.txt are included unchanged.
Relevant original spelling-data notices are retained in legacy/. The README
includes the complete GPLv3 text. The public word-list-it-license.txt repeats
current and original author notices, license and modification description.
No definitions or another word game's answer list are copied. These data terms
do not change unrelated game-code licensing.

REPRODUCIBLE OFFLINE BUILD
python scripts/build-italian-words.py
Only the Python standard library is required. No downloads or frequency packages
are used in a normal build. Paths are relative to the script's project root, so
the same tree builds in staging and after being copied into the live workspace.
Pinned source hashes are asserted in the generator and validation-report.json.
The output dictionary, answer module, license and report are byte-reproducible.

SOURCE PARSING
This source has 60 affix classes and 3,173 rules, no continuation classes;
46 classes allow cross-products and 14 do not. The expander preserves those
permissions. Prefixes do not shrink words in this pin. Suffix stripping occurs
before the 3..7-letter filter, so short inflections of longer stems are retained.
Unrecognized directives/flags/rule counts fail rather than silently losing words.

The dictionary declares 95,381 but has 95,380 physical following lines, including
34 comments. This exact known schema is pinned explicitly; the generator does
not claim that its header equals its entry count. It filters original lower-case
whole alphabetic roots before uppercasing. Capitalized names, punctuation,
apostrophized forms and hyphenated expressions do not become joined-up words.
Ordinary inflections and source-attested loans remain valid guesses.

The source has four roots with an undeclared È flag: possedere, risedere, sedere
and soprassedere. No imaginary rule is supplied. Their other real flags still
apply, and the exception list is exact. Independent checking confirmed the
upstream source omits common forms such as siedo and siedi. A small explicit
supplement repairs the ordinary sedere forms; reviewed-additions-it.txt records
the spelling facts and primary reference:
https://www.treccani.it/vocabolario/sedere2/
The reference explicitly gives these conjugations, with ordinary unaccented
spellings used instead of its pronunciation/stress annotations. No definitions
were copied. The 17 listed controls/supplements add 13 original word forms.
Other lexical gaps may still exist; complete coverage is not claimed.

MATCHING AND DISPLAY
NFC; preserve unsupported sharp S as ẞ before uppercase; explicit vowel folding
ÀÈÉÌÒÓÙ -> AEEIOOU. Only A-Z, 3..7 cells, remains playable. The source base entries
use àèéìòù, and the source replacement table treats ó as an alternative for ò.
Unsupported foreign accents/letters are not silently stripped. This is a game
matching rule, not a spelling recommendation. Answers retain their correct
selected display spelling and accents on solve.

62,862 original source forms plus 13 supplemental forms become 59,687 canonical
guesses. The 3,188 reduction counts additional spellings collapsed, not groups.
PAPA/PAPÀ, COSÌ/COSI and inflection pairs such as MANGIO/MANGIÒ share one board
identity. Each answer occurs once after folding. Selection-review.json records
encountered collisions and explicit displayed spellings. Because matching folds
accents, typing an unaccented or differently accented spelling can solve the same
board; the game does not claim to enforce every Italian orthographic distinction.

ANSWER SELECTION
2,919 explicit answers in answers-it.txt: 106 / 415 / 885 / 809 / 704 across
lengths 3 / 4 / 5 / 6 / 7. Starting from 2,458 source/supplement-attested candidates
with wordfreq 3.1.1 Italian Zipf >=4.3, the assistant read the lists, removed the
recorded names, web fragments, abbreviations and unsuitable prompts, and added
source-checked everyday objects, animals, food, adjectives and ordinary verbs.
The deck includes common inflections and function words, not just nouns. The
explicit answer file, not a frequency threshold, is authoritative and ordered;
changing it requires a daily-deck version decision. No player's health, ability
or history changes the fixed deck's selection rules.

The optional review-selection.py recreates the recorded editorial selection
using wordfreq==3.1.1 found in an ancestor workspace's .qa/simulation-python.
wordfreq by Robyn Speer: https://pypi.org/project/wordfreq/3.1.1/
Its frequency data are CC-BY-SA-4.0. It is a candidate aid only; no frequency
values are included in runtime vocabulary. Corpus frequency is not native-player
familiarity. The simulation prior is maintained separately from this answer deck.

VERIFICATION
Optional verify-expansion.py uses pinned spylls==0.1.7 and wordfreq==3.1.1 in
existing ancestor-workspace QA folders. Positive and negative controls precede
the checks. All 62,862 generated original source spellings passed independent
Hunspell validation. Of 91,940 independent corpus candidates outside that
expansion, zero were additional accepted source spellings. The supplemental
source-gap repairs are reported separately and checked against their cited
primary reference, not incorrectly required to pass the deficient source.

The normal builder detects eight deliberate faults after unmodified baselines:
unattested, duplicate-folded, too-short, unsupported-letter and empty answers;
unknown affix feature; changed cross-product policy; corrupted source bytes.
These prove instrument selection/sensitivity within those cases, not perfect
gameplay. Independent validation establishes expansion soundness and bounded
coverage for the checked corpus candidates; it does not establish all possible
Italian words or that every source spelling is a fair answer.

NATIVE REVIEW
Native-speaker review remains pending. Vocabulary has assistant editorial review
only. Native Italian playtesting should particularly examine three-letter
function/apocopated forms, accent-colliding meanings, regional familiarity and
the proportion of conjugations. Successful technical checks and simulations do
not replace that review.
