1. Algebraic notation: notation_move_to_string, documentation 2. Chess: output special error message for each type of illegal move so it's clear what went wrong 3. board_get_pawn_moves - add en passant 4. board_get_king_moves - add castling