Search
@callback __decode__({Version.t(), term()}) :: term()
@callback __encode__(term()) :: {Version.t(), term()}
@callback apply(state :: any(), event :: map()) :: {:ok, any()} | {:error, atom()}
@callback base(id :: any()) :: any()
@callback execute(state :: any(), command :: map()) :: :ok | {:ok, map()} | {:ok, [map()]} | {:error, atom()}