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)