Represents a tool invocation request.
@type t() :: %CliSubprocessCore.Payload.ToolUse{ extra: map(), input: map(), metadata: map(), tool_call_id: String.t() | nil, tool_name: String.t() | nil }
@spec new(keyword() | map() | struct()) :: struct()
@spec parse(keyword() | map() | struct()) :: {:ok, struct()} | {:error, {:invalid_payload, module(), CliSubprocessCore.Schema.error_detail()}}
@spec parse!(keyword() | map() | struct()) :: struct()
@spec schema() :: Zoi.schema()
@spec to_map(struct()) :: map()