- Rename module to gitea.iliadenisov.ru/developer/scrabble-solver so it can be
consumed as a versioned dependency (no go.work replace / CI clone).
- De-internalize wordlist and dictdawg as public packages.
- Remove cmd/builddict, dictprep/, the dictionaries submodule and the dawg
Makefile: the word-list parsing and DAWG build now live in the separate
scrabble-dictionary repository, which publishes the DAWG set as a release artifact.
- internal/dict loads the committed dawg/en_sowpods.dawg fixture for cmd/stress.
- Update README/CLAUDE docs accordingly.
Replay 17 real tournament games (cross-tables.com, including the 700+ club) and
check, move for move, that:
- ScorePlay reproduces the protocol score and running total exactly;
- the move generator produces every dictionary-valid played move with that score.
The GCG parser handles coordinates (across/down), blanks (lowercase), played-through
tiles ("."), passes/exchanges, challenge bonuses, end-game rack adjustments and phony
withdrawals ("--", un-applied). Uses the committed dawg/en_sowpods.dawg.