//! Collected-then-applied interaction bridge.
//!
//! The recursive walker ([`crate::walker::render_node`]) can't mutate the
//! [`MessageProcessor`] while the surface's `data_model` / `components` are
//! borrowed for the duration of a frame's walk. So each egui widget that the
//! user interacts with pushes a [`PendingInteraction`] into a `Vec` carried
//! through the walk, and [`EguiApp::apply_pending`] consumes the vec *after*
//! the walk — once the borrows are dropped.
//!
//! This mirrors the drop-borrows-then-mutate pattern in the ratatui gallery
//! (`dispatch_event_to_focused` drops its borrows before `process_event_result`)
//! and the callback-then-redraw pattern in the Slint host (`handle_activate`
//! scopes its borrow block, then mutates).
use Value;
/// One deferred interaction, collected during a frame's walk and applied after.