make_move
Makes a move on the board using standard algebraic notation (SAN).
Args:
move_san: The player's move in algebraic notation (e.g., 'e4', 'Nf3', 'Bxe5').
Returns:
A dictionary containing the move in SAN format, the move in UCI format, the new board FEN,
whether the game is over, and the result if applicable.