Who sets each field of a message A table of the eight Message fields across three messages of the review in 06-input-required.http, which appear one column at a time in the order they were sent. The planner first message 14a03569 has no contextId and no taskId. The code-reviewer question 46494a30 carries contextId 49c5a238 and taskId e5c95b09. The planner answer 096d3737 echoes both ids. Roles are ROLE_USER, ROLE_AGENT and ROLE_USER. metadata, extensions and referenceTaskIds are not set in any of them. A right column says who sets each field, and a last note says the server writes both ids into its stored copy of the first message. FIELD WHO SETS IT messageId minted by the sender for every message contextId minted by the server, echoed by the client taskId minted by the server, echoed to continue a task role the direction: client to server is USER parts the sender, at least one part metadata not set in any kit capture the sender: a JSON object extensions not set in any kit capture the sender: extension URIs referenceTaskIds not set in any kit capture the sender: related tasks REQUIRED in proto Message planner first message 14a03569 omitted omitted ROLE_USER text, raw code-reviewer its question 46494a30 49c5a238 e5c95b09 ROLE_AGENT text planner the answer 096d3737 49c5a238 e5c95b09 ROLE_USER text "main" The server writes contextId 49c5a238 and taskId e5c95b09 into its stored copy of the first message, which the planner sent without them.