# `Arcanum.Intent`
[🔗](https://github.com/kakilangit/arcanum/blob/v0.1.0/lib/arcanum/intent.ex#L1)

Canonical request struct for inference calls.

Normalizes the request format across all providers so that the
adapter layer handles provider-specific serialization.

# `message`

```elixir
@type message() :: %{role: String.t(), content: String.t()}
```

# `t`

```elixir
@type t() :: %Arcanum.Intent{
  context_length: pos_integer() | nil,
  max_tokens: pos_integer() | nil,
  messages: [message()],
  model: String.t(),
  temperature: float() | nil,
  tools: [tool()] | nil
}
```

# `tool`

```elixir
@type tool() :: %{
  type: String.t(),
  function: %{name: String.t(), description: String.t(), parameters: map()}
}
```

---

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