Typed wrapper for run lifecycle and history persistence.
@spec append_event(term(), term()) :: :ok | {:error, term()}
@spec delete_history(term()) :: :ok
@spec delete_session(term()) :: :ok
@spec delete_session_index(term()) :: :ok
@spec finalize(term(), term()) :: :ok | {:error, term()}
@spec get(binary()) :: term()
@spec history( term(), keyword() ) :: list()
@spec list_sessions() :: [{term(), map()}]