code: def copy(self: BaseBoardT) -> BaseBoardT:
          
          board = type(self)(None)
  
          board.pawns = self.pawns
          board.knights = self.knights
          board.bishops = self.bishops
          board.rooks = self.rooks
          board.queens = self.queens
          board.kings = self.kings
  
          board.occupied_co[WHITE] = self.occupied_co[WHITE]
          board.occupied_co[BLACK] = self.occupied_co[BLACK]
          board.occupied = self.occupied
          board.promoted = self.promoted
  
          return board
docs: Creates a copy of the board.