Fewer crashes. Big pawns.
- Feature: Added fairy_chess_pawn_upgrades with pawn-sergeant generation support in Off, Pool, and Max modes.
- Technical: Move hashes are now 64 bit.
- This immediately allows us to populate a higher limit on distinct pieces, and may allow a wider variety of Directions among piece types.
- Enables (non-generative) AI search, opening-book, killer/countermove, and transposition.
- Note: Certain early crashes are to do with exploring unregistered Directions (e.g. a knight is 2,1 and 1,2; no piece moves 5,3).
- Feature?: Improved crash and diagnostic reporting.
- Failure text includes more board, history, and move context.
- Centralized crash formatting.
- Added GUI recoverable diagnostics to avoid ending certain sessions.
- Bug fix: Hardened move generation and core make/unmake.
- Previously could corrupt board state, or use garbage values due to an uninitialized MoveList cursor state.
- Added move-generation context stack tracing and stronger MoveList reset/restart/iteration contracts.
- Improved partial-make rollback.
- Technical: Cleaned up client piece paths, item handling, location tracking, pawn setup/distribution, and mixed en-passant handling.
- Extracted item randomization out of the handler, which is now more of a coordinator.
- Technical: Added test coverage for fuzzed positions, crash repros, MoveList contracts, make/unmake safety, hash stability, and diagnostic formatting.
Full Changelog: v0.3.1...v0.3.2