docs: def _load_object(self, obj):
          """Recursively load a PyPhi object.
  
          PyPhi models are recursively loaded, using the model metadata to
          recreate the original object relations. Lists are cast to tuples
          because most objects in PyPhi which are serialized to lists (eg.
          mechanisms and purviews) are ultimately tuples. Other lists (tpms,
          repertoires) should be cast to the correct type in init methods.
          """
          if isinstance(obj, dict):
              obj = {k: self._load_object(v) for k, v in obj.items()}
              # Load a serialized PyPhi model
              if _is_model(obj):
                  return self._load_model(obj)
  
          elif isinstance(obj, list):
              return tuple(self._load_object(item) for item in obj)
  
          return obj