[moves, position] Implement unmaking moves on a board

Declare an UnmakeMove trait in the moves crate, just like the MakeMove trait from
an earlier commit. Implement this trait for all types that also implement
BoardProvider.

Bring in a whole pile of unit tests from Claude. (Holy shit, using Claude really
saves time on these tests…) Several of these tests failed, and all of those
failures revealed bugs in either MakeMove or UnmakeMove. Huzzah! Include fixes for
those bugs here.
This commit is contained in:
Eryn Wells 2025-05-31 20:17:18 -07:00
parent 40e8e055f9
commit f60cb8cf69
4 changed files with 522 additions and 10 deletions

View file

@ -1,3 +0,0 @@
// Eryn Wells <eryn@erynwells.me>
pub enum UnmakeMoveError {}