WIP before CardSplit refactor
WIP before more refactoring
State.afterMove roughly tested
added the missing Undo trait