docstr: Save result metadata to disk.
  
  :param path: Path to result directory on disk.
docstr_tok: ["Save","result","metadata","to","disk",".",":","param","path",":","Path","to","result","directory","on","disk","."]
code: def _save_metadata(self, result_dir: Path):
      """Save result metadata to disk.
  
      :param path: Path to result directory on disk.
      """
      id_path = result_dir / SerializationAttributes.ID_FILENAME
      with open(id_path, "w") as f:
          json.dump({SerializationAttributes.ID_KEY: self.id}, f)
  
      version_path = (
          result_dir / SerializationAttributes.VERSION_FILENAME
      )
      with open(version_path, "w") as f:
          json.dump(
              {SerializationAttributes.VERSION_KEY: self.version}, f
          )
  
imports: import json
  from abc import ABC, abstractmethod
  from pathlib import Path
  from typing import Any, Generic, List, TypeVar, Union
  import jsonschema
  from raiutils.data_processing import serialize_json_safe
  from responsibleai._internal.constants import SerializationAttributes
  from responsibleai._tools.shared.attribute_serialization import load_attributes, save_attributes
label_desc: Use image node_id 3 for calling the BaseResult obj's underlying member method code with example usage: obj._save_metadata(result_dir) without return types