pub(crate) fn observe(session: &mut Session, events: &[Event]) -> InteractionExpand description
What the batch says before anything is painted: the clock, the viewport, the camera’s moves and the pointer, taken in the order the front end said them.
A batch is one frame, so a Tick ahead of a Pointer in it dates that
pointer — and a batch with neither runs at the clock and the size the
session was last told. The pointer’s raw events are resolved once the
clock, the viewport and the moves are known, since a click is dated and
a position is mapped against the camera as it now stands.