Behaviour for routing delegated intent work to external orchestrators.
@type task_ref() :: module() | String.t()
@callback run(task_ref(), map(), AppleIntents.Context.t(), keyword()) :: {:ok, map()} | {:error, term()}