Pure functional state manager for A2UI surfaces.
Manages a %{surface_id => %Surface{}} map by applying protocol messages.
No GenServer — surfaces live in LiveView assigns.
Summary
Types
@type surfaces() :: %{required(String.t()) => A2UI.Surface.t()}