Classic isn’t meant to help you not “worry about any snapd updates that breaks [your] app”. The raw-usb interface may be sufficient for your needs. Does this work with snapd from candidate (in devmode and strict)? If it works in devmode (there were fixes in 2.29 for that) but not strict, then I wonder if Mir snap not detecting new input devices is affecting you (there seems to be a change in udev that is causing that).