Frozen model selection for one inference attempt.
@type t() :: %Spectre.Inference.Selection{ attempt: pos_integer(), fallback_chain: [term()], level: term(), metadata: map(), model: term(), profile_hash: String.t(), reason: term(), request_id: String.t(), selector: module() }
@spec new(t() | map() | keyword()) :: t()