docs: def _copy_listed(self: T, names) -> T:
          """Create a new Dataset with the listed variables from this dataset and
          the all relevant coordinates. Skips all validation.
          """
          variables = OrderedDict()  # type: OrderedDict[Any, Variable]
          coord_names = set()
          indexes = OrderedDict()  # type: OrderedDict[Any, pd.Index]
  
          for name in names:
              try:
                  variables[name] = self._variables[name]
              except KeyError:
                  ref_name, var_name, var = _get_virtual_variable(
                      self._variables, name, self._level_coords, self.dims)
                  variables[var_name] = var
                  if ref_name in self._coord_names or ref_name in self.dims:
                      coord_names.add(var_name)
                  if (var_name,) == var.dims:
                      indexes[var_name] = var.to_index()
  
          needed_dims = set()  # type: set
          for v in variables.values():
              needed_dims.update(v.dims)
  
          dims = dict((k, self.dims[k]) for k in needed_dims)
  
          for k in self._coord_names:
              if set(self.variables[k].dims) <= needed_dims:
                  variables[k] = self._variables[k]
                  coord_names.add(k)
                  if k in self.indexes:
                      indexes[k] = self.indexes[k]
  
          return self._replace(variables, coord_names, dims, indexes=indexes)