A behaviour for implementing a custom step in a flow.
@callback describe(opts :: Keyword.t()) :: String.t()
@callback run(input :: map() | nil, opts :: Keyword.t(), context :: map()) :: {:ok, term()} | {:ok, term(), %{optional(:notifications) => [Ash.Notifier.Notification.t()]}} | {:error, term()}
@callback short_name(opts :: Keyword.t()) :: String.t()