Version-neutral operations: what A2UICore.Message.decode/2 returns
and A2UICore.Processor.apply_operations/3 applies.
Adapters (A2UICore.Message.Adapter) normalize wire envelopes into
these structs; every later stage (surface lifecycle, data model,
RPC) works only against them. Field names mirror the wire (surfaceId
→ surface_id), and the version-specific edge cases are smoothed out
at construction:
v0.9.xupdateDataModelmay omitvalue(delete) —valueisnileither way; v1.0's explicitnulland v0.9's omission are the same canonical op.v1.0createSurfacemay inlinecomponentsanddataModel; the v1.0 adapter expands those into separateupdate_components/update_data_modelops after thecreate_surfaceop, exactly like the reference implementation.v0.9.xcarriesthemethrough to the surface; v1.0 drops it.
Summary
Functions
The canonical action key of an operation (matching the wire's message-type keys).
Types
@type t() :: A2UICore.Message.Operation.CreateSurface.t() | A2UICore.Message.Operation.UpdateComponents.t() | A2UICore.Message.Operation.UpdateDataModel.t() | A2UICore.Message.Operation.DeleteSurface.t() | A2UICore.Message.Operation.CallRendererFunction.t() | A2UICore.Message.Operation.AgentFunctionResponse.t()