docs: def _get_tiles(board=None, terrain=None, numbers=None):
      """
      Generate a list of tiles using the given terrain and numbers options.
  
      terrain options supported:
      - Opt.empty -> all tiles are desert
      - Opt.random -> tiles are randomized
      - Opt.preset ->
      - Opt.debug -> alias for Opt.random
  
      numbers options supported:
      - Opt.empty -> no tiles have numbers
      - Opt.random -> numbers are randomized
      - Opt.preset ->
      - Opt.debug -> alias for Opt.random
  
      :param terrain_opts: Opt
      :param numbers_opts: Opt
      :return: list(Tile)
      """
      if board is not None:
          # we have a board given, ignore the terrain and numbers opts and log warnings
          # if they were supplied
          tiles = _read_tiles_from_string(board)
      else:
          # we are being asked to generate a board
          tiles = _generate_tiles(terrain, numbers)
  
      return tiles