Portable description of one logical inference.
It contains the prompt plan and the deterministic post-processing context, but never an adapter process, callback, credential, HTTP handle, or provider request identifier. Runtime bindings are resolved separately and checked against the frozen selection before dispatch.
Summary
Types
@type t() :: %Spectre.Inference.Descriptor{ constraints: Spectre.Inference.Constraints.t(), flow: term(), id: String.t(), metadata: map(), modalities: [atom()], options: map(), plan: Spectre.Prompt.Plan.t(), purpose: atom(), recoverable?: boolean(), recovery_reason: term(), route: Spectre.Route.t() | nil }