A behaviour for abstracting system environment interactions.
@callback cmd( command :: String.t(), args :: [String.t()], options :: Keyword.t() ) :: {String.t(), non_neg_integer()} | {:error, any()}
@callback get_env(variable :: String.t()) :: String.t() | nil