# `Raxol.AgentClientProtocol.Schema.ToolCallUpdateFields`
[🔗](https://github.com/DROOdotFOO/raxol-agent/blob/raxol_agent_client_protocol-v0.1.0/packages/raxol_agent_client_protocol/lib/raxol/agent_client_protocol/schema/tool_call.ex#L375)

Optional fields that can be updated in a tool call. Every field is
optional and decode-lenient per the ACP schema
(`x-deserialize-default-on-error`, plus `x-deserialize-skip-invalid-items`
on the two list fields) -- decode of this struct never fails for a map
input. Flattened directly into `ToolCallUpdate`'s wire object (no nested
`"_meta"` of its own; unrecognized fields fold into the parent's `_meta`).

Ported from the MIT `f1729/agent_client_protocol` (c) 2025 f1729; see NOTICE.md.

# `t`

```elixir
@type t() :: %Raxol.AgentClientProtocol.Schema.ToolCallUpdateFields{
  content: [Raxol.AgentClientProtocol.Schema.ToolCallContent.t()] | nil,
  kind: Raxol.AgentClientProtocol.Schema.ToolKind.t() | nil,
  locations: [Raxol.AgentClientProtocol.Schema.ToolCallLocation.t()] | nil,
  raw_input: term() | nil,
  raw_output: term() | nil,
  status: Raxol.AgentClientProtocol.Schema.ToolCallStatus.t() | nil,
  title: String.t() | nil
}
```

# `from_json`

```elixir
@spec from_json(term()) ::
  {:ok, t()} | {:error, {:invalid_tool_call_update_fields, term()}}
```

Total and infallible for map input: every field independently defaults to absent on error.

# `new`

```elixir
@spec new() :: t()
```

# `to_json`

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

---

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