I've started playing with having my plugin interact with the gcodeviewer. One of the problems (I think) I am experiencing is that if you have multiple plugins that are trying to update their transforms based on the gcode_canvas, only one appears able to hook into the GCODE.setOptions for onViewportChange. As far as I can tell, this is the only simple way of getting the gcode_canvas transform. Is this correct? Would it be worthwhile make a simple way to get the transform matrix?
After a bit more exploration, getting the transform is easy enough with getTransform() from the 2d context, but the fact that the last plugin loaded will control the onViewportChange seems like something that should be looked into.