docs: def freeze(self) -> dict:
          """
          Returns a dictionary of all settings set for this object, including
          any values of its parents or hardcoded defaults.
          """
          settings = {}
          for key, v in self._h.defaults.items():
              settings[key] = self._unserialize(v.value, v.type)
          if self._parent:
              settings.update(getattr(self._parent, self._h.attribute_name).freeze())
          for key in self._cache():
              settings[key] = self.get(key)
          return settings