Takeback the last half-move, returning a move Map if successful, otherwise null.
Map<String, dynamic>? undo() { final move = undo_move(); return (move != null) ? make_pretty(move) : null; }