The call arguments, already PARSED. Providers that transmit arguments as a JSON string (OpenAI) parse them in the driver, so consumers never see a string here.
The provider's call id, echoed back on the matching tool_result block so the provider can
pair result to call. Drivers synthesize a stable id for providers that do not supply one
(Gemini names calls rather than identifying them).
The tool name the model called — matches a ChatTool.name that was declared.
OptionalproviderOpaque provider data that must travel with the call when it is replayed into history.
Gemini 3 attaches a thoughtSignature to each function-call part and rejects a replayed call
that lacks it (HTTP 400); the driver stores it here on the way in and
sends it back on the way out. Other providers leave this undefined. Never read by the loop.
One tool call the model asked for, normalized across providers.