The effect behaviour.
alias_of() :: {:alias_of, t()}
consume() :: {:consume, term()}
handler() :: Cizen.SagaID.t()
resolve() :: {:resolve, term()}
t() :: struct()
handle_event(handler(), Cizen.Event.t(), t(), state :: term()) :: resolve() | consume() | term()
init(handler(), t()) :: resolve() | {t(), term()}
init(handler(), t()) :: resolve() | alias_of() | term()