docs: def is_move_legal(self, move):
          'Checks that a move is on an empty space, not on ko, and not suicide'
          if move is None:
              return True
          if self.board[move] != EMPTY:
              return False
          if move == self.ko:
              return False
          if self.is_move_suicidal(move):
              return False
  
          return True