Search
@type opts() :: Keyword.t()
@type payload() :: term()
@callback decode(payload(), opts()) :: {:ok, term()} | {:error, any()}
@callback encode(payload(), opts()) :: {:ok, term()} | {:error, any()}