{ "title": "A2UI (Agent to UI) Client-to-Server Event Schema", "description": "Describes a JSON payload for a client-to-server event message.", "type": "object", "minProperties": 1, "maxProperties": 1, "properties": { "userAction": { "type": "object", "description": "Reports a user-initiated action from a component.", "properties": { "name": { "type": "string", "description": "The name of the action, taken from the component's action.name property." }, "surfaceId": { "type": "string", "description": "The id of the surface where the event originated." }, "sourceComponentId": { "type": "string", "description": "The id of the component that triggered the event." }, "timestamp": { "type": "string", "format": "date-time", "description": "An ISO 8601 timestamp of when the event occurred." }, "context": { "type": "object", "description": "A JSON object containing the key-value pairs from the component's action.context, after resolving all data bindings.", "additionalProperties": true } }, "required": [ "name", "surfaceId", "sourceComponentId", "timestamp", "context" ] }, "error": { "description": "Reports a client-side error.", "oneOf": [ { "type": "object", "title": "Validation Failed Error", "properties": { "code": { "const": "VALIDATION_FAILED" }, "surfaceId": { "type": "string", "description": "The id of the surface where the error occurred." }, "path": { "type": "string", "description": "The JSON pointer to the field that failed validation (e.g. '/components/0/text')." }, "message": { "type": "string", "description": "A short one-sentence description of why validation failed." } }, "required": ["code", "path", "message", "surfaceId"] }, { "type": "object", "title": "Generic Error", "properties": { "code": { "not": { "const": "VALIDATION_FAILED" } }, "message": { "type": "string", "description": "A short one-sentence description of why the error occurred." }, "surfaceId": { "type": "string", "description": "The id of the surface where the error occurred." } }, "required": ["code", "surfaceId", "message"], "additionalProperties": true } ] } }, "oneOf": [ { "required": ["userAction"] }, { "required": ["clientUiCapabilities"] }, { "required": ["error"] } ] }