docs: def add_default(self, key: str, value: Optional[str], default_type: type = str) -> None:
          """
          Adds a default value and a default type for a key.
  
          :param key: Key
          :param value: *Serialized* default value, i.e. a string or ``None``.
          :param default_type: The type to unserialize values for this key to, defaults to ``str``.
          """
          self.defaults[key] = HierarkeyDefault(value, default_type)