ActionMessage
data class ActionMessage(val name: String, val surfaceId: String, val sourceComponentId: ComponentId, val timestamp: String, val context: JsonObject, val userMessage: String? = null, val metadata: Metadata? = null, val additional: Map<String, JsonElement> = emptyMap()) : RendererToAgentMessage
Reports a user-initiated action back to the agent.
context holds the component's action.event.context with every binding already resolved, so its values are plain JSON rather than DynamicValues.
additional exists because renderer_to_agent.json does not close this object — unlike every sibling message, action omits additionalProperties: false. Keys outside the ones modelled here are therefore carried through rather than rejected.