This module defines the behavior a caller must implement.
caller
post( client :: any(), query :: String.t(), variables :: keyword(), opts :: keyword() ) :: any()
subscribe( client :: any(), subscription_name :: atom(), callback :: (... -> any()), query :: String.t(), variables :: keyword() ) :: any()
supervisor(client :: any(), opts :: Keyword.t()) :: {atom(), any()} | no_return()