Whether pointerId is currently dragging something.
Makes node draggable and returns an unsubscriber that undoes it (ending
any drag of that node in progress).
Calling it twice for the same node is a no-op that returns the same unsubscriber — a node subscribed twice would drag at double speed.
It subscribes to node's own pointer events, so it inherits their
propagation (§72): a press on a child of node bubbles up and starts a
drag of node, which is how a group is dragged by any of its parts. A
child that must not drag its parent stops propagation in its own listener.
Ends pointerId's drag, releasing its pointer capture and calling
onDragEnd. Ending a pointer that is not dragging is a no-op.
Ends every drag and unsubscribes from every draggable node. Idempotent; the manager is reusable afterwards (nothing about it is one-shot).
A deliberate exception to §83's "disposal is terminal" (kept on the 2026-09-11 stability audit): there is no disposed flag and nothing is refused afterwards, because the manager owns no GPU or solver resource — only node subscriptions and pointer captures, both of which DragManager.makeDraggable re-establishes.
disposehere means "release everything now", not "never again"; a manager that must not be reused is simply dropped.