# `ToolCall.Emit.Schema`

JSON Schema rendering shared by the provider emitters.

Deliberately emits a conservative subset: no `$ref`, no `$defs`, no
`oneOf`. Recursive types are not supported yet (see `docs/design.md`).

# `params`

```elixir
@spec params(ToolCall.IR.Tool.t(), keyword()) :: map()
```

Renders the `parameters`/`input_schema` object for a tool.

# `type`

```elixir
@spec type(ToolCall.IR.Type.t(), keyword()) :: map()
```

Renders a single type node.

---

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