decode(binary()) :: {:ok, Event.t()} | {:error, any()}
encode(Event.t()) :: {:ok, binary()} | {:error, any()}
event_code() :: {:ok, Events.event_code()} | {:error, any()}