What would you want from a high-level SVG wrapper package?

Good point! I actually put in a ton of time recently to be able to handle mouse and touch events in a clean, useful and performant way; not quite a full shrink-wrapped pan/zoom system, but hopefully should let you implement that behavior pretty easily.

I’m not sure how much further I could go without turning a drawing into something that managed its own state and had its own set of messages/subscriptions, which I’d prefer to avoid. But it would be good to look at some of those packages and make sure all the necessary tools are in place to implement their behaviors (maybe even implement a couple of them as examples to follow).