One message in a script agent’s OUTPUT — the conversation shape
minus the user role, since a script speaks only as the assistant
(or records tool results); it never puts words in the user’s mouth.
The script’s output deserializes as an array of these.
The code a script agent executes on the CLIENT, discriminated by a
required type field (no default). Flattened into the agent base,
so the wire shape is {"upstream":"script","type":"python","python":"…",…}.