feat(thressgame-coverage): Wave 12 (8 move-gen attr readers)

All 8 movement-replacement / restriction attrs now consumed by move generators in packages/chess/src/rules/. Previously they were silent infrastructure (seeded by primitives, ignored by rules).

- T74 MovesAs / MovesAlsoAs (per-piece): turn.ts dispatcher substitutes/unions piece-type movesets via getLegalMovesAsType helper; deduped output
- T75 SlideMustBeMaxDistance (per-piece + game-level): sliding.ts ice-physics mode emits ONLY the furthest legal step per ray
- T75 KingExtraReach (per-piece): king.ts step-walker with configurable radius (1+N); blocked by allies/captures within radius
- T76 BlockAllExceptKing + BlockedPieceTypes (game-level): turn.ts early-return filters BEFORE per-piece dispatch
- T77 MoveClassRestriction (game-level): post-filter in turn.ts; class=capture/advance/move-to filtering
- T77 PawnPushesPiecesEnabled (game-level): pawn.ts diagonal capture replaced by push semantics; LegalMove extended with isPawnPush + pushedPieceId + pushedTo

Tests: 2774 -> 2824 (+50). bun run check exit 0.

ice_physics, all_on_red, mr_freeze, must-class, block-by-piece-type, pawn-pushes-pieces descriptors now actually affect legal-move generation in production play.
This commit is contained in:
Joey Yakimowich-Payne 2026-04-26 15:05:07 -06:00
commit db55f24ec8
No known key found for this signature in database
12 changed files with 1453 additions and 23 deletions

View file

@ -83,7 +83,11 @@
"ses_23488f9dcffeFtCzBn3gxtN7KV",
"ses_23487dd88ffeEDMNwvBDLByD9N",
"ses_23488a4a2ffeG7nzsoF7nsvKHC",
"ses_234882ba1ffeMwDf2VAt2fGKaM"
"ses_234882ba1ffeMwDf2VAt2fGKaM",
"ses_23470e618ffeKuOqxTyN3WMJmm",
"ses_23470aeb5ffen8G71F1kKLXWE4",
"ses_234704ca2ffexGa7YYzkVJ7XQy",
"ses_234714154ffePk1XQUSvX1tcat"
],
"plan_name": "thressgame-coverage",
"agent": "atlas"