docs: def suggest_move(self, position):
          """Used for playing a single game.
  
          For parallel play, use initialize_move, select_leaf,
          incorporate_results, and pick_move
          """
          start = time.time()
  
          if self.timed_match:
              while time.time() - start < self.seconds_per_move:
                  self.tree_search()
          else:
              current_readouts = self.root.N
              while self.root.N < current_readouts + self.num_readouts:
                  self.tree_search()
              if self.verbosity > 0:
                  dbg("%d: Searched %d times in %.2f seconds\n\n" % (
                      position.n, self.num_readouts, time.time() - start))
  
          # print some stats on moves considered.
          if self.verbosity > 2:
              dbg(self.root.describe())
              dbg('\n\n')
          if self.verbosity > 3:
              dbg(self.root.position)
  
          return self.pick_move()