Prefer the descriptor-based viewport idiom:
<SceneCanvas> registers viewport.pan and viewport.zoom action
descriptors automatically. Pass useHandTool() via ambient for
drag-to-pan. useZoom covers the same input surface but doesn't
integrate with the tool dispatcher, selection, or other gestures.
No demo, no kit-internal hook, and no app currently consumes useZoom;
slated for removal in a future major.
Wheel/key/double-click zoom with focal-point preservation; returns event handlers and
zoomTo/zoomBy/reset.