decode(payload :: any()) :: {:ok, message :: map()} | {:error, error :: binary()}
encode(protobuf_struct :: map()) :: {:ok, message :: binary()} | {:error, error :: binary()}