error_reason() :: term()
total() :: pos_integer()
venue() :: Tai.Venue.t()
hydrate(venue()) :: {:ok, total()} | {:error, error_reason()}