options include:
a) vendor the qrcode library
b) reserve space for the qrcode and then lazy load the qrcode library in a way that's allowed to fail (this is funny because I picked this lib for its ability to syncronously make qrcode svgs, but I think it's fine)