# `Mutare.CallRouting.ArgumentRoutes`
[🔗](https://github.com/foxbenjaminfox/mutare/blob/v0.5.1/lib/mutare/call_routing/argument_routes.ex#L1)

The resolved argument treatments returned by
`c:Mutare.CallRouting.route_arguments/1`.

One treatment per entry of `Mutare.CallRouting.Call.arguments`, in order. `new/2` validates
that shape immediately (and normalizes each treatment — a keyed refinement written
`[leading, key: treatment, …]` is stored in its internal form); Mutare validates callback
results again at the boundary.

# `t`

```elixir
@opaque t()
```

# `new`

```elixir
@spec new(Mutare.CallRouting.Call.t(), [Mutare.CallRouting.treatment()]) :: t()
```

Build the routes for `call`: one treatment per argument, in argument order — the order a
static route declaration uses.

# `treatments`

```elixir
@spec treatments(t()) :: [Mutare.CallRouting.treatment()]
```

The treatments, aligned with the call's arguments.

---

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