Native tool calls win when present: a model that emitted both has made its decision natively and
the text is at most a narration of it. This is the rule the corpus specifies, and the provider matrix
measured why it matters — Gemini 3.7 Flash under JSON mode answers a tool question natively while
ignoring the requested envelope entirely, which an envelope-only reader scores as 100% malformed
even though the decision was correct.
Under the implicit protocol, plain text with no call is the terminal form: it reads as
task completion unless it parses as an envelope, in which case the envelope is honoured (§2.1).
Normalizes one turn into an ObservedDecision.
Native tool calls win when present: a model that emitted both has made its decision natively and the text is at most a narration of it. This is the rule the corpus specifies, and the provider matrix measured why it matters — Gemini 3.7 Flash under JSON mode answers a tool question natively while ignoring the requested envelope entirely, which an envelope-only reader scores as 100% malformed even though the decision was correct.
Under the implicit protocol, plain text with no call is the terminal form: it reads as task completion unless it parses as an envelope, in which case the envelope is honoured (§2.1).