@type t() :: :debug | :info | :error
@spec default() :: t()
@spec from_string(String.t()) :: t()
@spec new(any()) :: Croma.Result.t(t())
@spec new!(any()) :: t()
@spec valid?(any()) :: boolean()
@spec write_to_log?(t(), t()) :: boolean()