docs: def save(self, filepath=None, overwrite=False, verbose=True):
          """Save as root of a new file.
  
          Parameters
          ----------
          filepath : Path-like object (optional)
              Filepath to write. If None, file is created using natural_name.
          overwrite : boolean (optional)
              Toggle overwrite behavior. Default is False.
          verbose : boolean (optional)
              Toggle talkback. Default is True
  
          Returns
          -------
          str
              Written filepath.
          """
          if filepath is None:
              filepath = pathlib.Path(".") / self.natural_name
          else:
              filepath = pathlib.Path(filepath)
          filepath = filepath.with_suffix(".wt5")
          filepath = filepath.absolute().expanduser()
          if filepath.exists():
              if overwrite:
                  filepath.unlink()
              else:
                  raise wt_exceptions.FileExistsError(filepath)
  
          # copy to new file
          h5py.File(filepath)
          new = Group(filepath=filepath, edit_local=True)
          # attrs
          for k, v in self.attrs.items():
              new.attrs[k] = v
          # children
          for k, v in self.items():
              super().copy(v, new, name=v.natural_name)
          # finish
          new.flush()
          new.close()
          del new
          if verbose:
              print("file saved at", filepath)
          return str(filepath)