Stable typed error contract for Relyra security and protocol paths.
@type t() :: %Relyra.Error{details: map(), message: String.t(), type: atom()}
@spec new(atom(), String.t(), map()) :: t()