# `MingaAgent.ModelSelection.Policy.Reasoning`
[🔗](https://github.com/jsmestad/minga/blob/main/lib/minga_agent/model_selection/policy/reasoning.ex#L1)

Validated reasoning choices for an exact execution route.

# `t`

```elixir
@type t() :: %MingaAgent.ModelSelection.Policy.Reasoning{
  effort: String.t(),
  options: [String.t()]
}
```

# `choose`

```elixir
@spec choose(t(), String.t()) :: {:ok, t()} | {:error, :unsupported_reasoning}
```

Chooses another supported effort without changing its advertised options.

# `new`

```elixir
@spec new(map()) :: {:ok, t()} | {:error, :invalid_reasoning}
```

Accepts only a reasoning choice advertised by this route.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
