//! Register UI event handlers by ID.
use crate::;
/// Register UI event handlers by ID.
///
/// Handler IDs are opaque strings — the caller maps them to closures
/// in their own dispatcher. This keeps the trait object-safe (no generics,
/// no function pointers in the trait).