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

Persistable exact route authority for a text model.

# `origin`

```elixir
@type origin() :: {:catalog, String.t(), String.t()}
```

# `request_provider`

```elixir
@type request_provider() ::
  :anthropic
  | :openai
  | :openai_codex
  | :google
  | :openrouter
  | :groq
  | :mistral
  | :deepseek
```

# `t`

```elixir
@type t() :: %MingaAgent.ModelSelection.Route{
  display_name: String.t(),
  execution: MingaAgent.ModelSelection.TextExecution.t(),
  id: String.t(),
  metadata: map(),
  model_id: String.t(),
  model_provider: String.t(),
  origin: origin(),
  request_provider: request_provider()
}
```

# `decode`

```elixir
@spec decode(map()) :: {:ok, t()} | {:error, :invalid_route}
```

Decodes and validates a persisted route.

# `encode`

```elixir
@spec encode(t()) :: map()
```

Encodes a route for secret-free persistence.

# `materialize`

```elixir
@spec materialize(t()) :: {:ok, LLMDB.Model.t()} | {:error, term()}
```

Materializes the route once into the exact inline model ReqLLM executes.

# `new`

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

Builds a route using only installed, allowlisted request providers.

# `providers`

```elixir
@spec providers() :: [request_provider()]
```

Returns the supported request provider atoms.

---

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