A behaviour definition for the core operations of ExTrends
t() :: %{ http_method: :get, url: binary(), path: binary(), params: list(), parser: ({:ok | :error, term()} -> {:ok | :error, term()}) }
run(t()) :: {:ok, term()} | {:error, term()}
run!(t()) :: term() | no_return()