code: def parse_san(self, board: chess.Board, san: str) -> chess.Move:
          
          # Replace zeros with correct castling notation.
          if san == "0-0":
              san = "O-O"
          elif san == "0-0-0":
              san = "O-O-O"
  
          return board.parse_san(san)
docs: When the visitor is used by a parser, this is called to parse a move
          in standard algebraic notation.
  
          You can override the default implementation to work around specific
          quirks of your input format.