docs: def zip(self, destination: typing.Union[str, Path] = None, encode: bool = True) -> str:
          """
          Write mission, dictionary etc. to a MIZ file
  
          Args:
              destination: target MIZ file (if none, defaults to source MIZ + "_EMIZ"
  
          Returns: destination file
  
          """
          if encode:
              self._encode()
  
          if destination is None:
              destination_path = self.miz_path.parent.joinpath(f'{self.miz_path.stem}_EMIZ.miz')
          else:
              destination_path = elib.path.ensure_file(destination, must_exist=False)
  
          LOGGER.debug('zipping mission to: %s', destination_path)
  
          destination_path.write_bytes(dummy_miz)
  
          with ZipFile(str(destination_path), mode='w', compression=8) as zip_file:
  
              for root, _, items in os.walk(self.temp_dir.absolute()):
                  for item in items:
                      item_abs_path = Path(root, item).absolute()
                      item_rel_path = Path(item_abs_path).relative_to(self.temp_dir)
                      zip_file.write(item_abs_path, arcname=item_rel_path)
  
          return str(destination_path)