The problem I had with QR codes is it doesn't say "QR Code" anywhere on it! I looked at the QR codes on my bathroom detergent bottles, and didn't know it was that until I read about QR codes in a newspaper.
A UPC-A barcode doesn't label itself as such either. They look bizarre until you see what happens with a barcode scanner and then they're easily identifiable and quite normal. It's no different with QR codes.
heh. I have a moleskin I draw QR codes in by hand when I need to zone out.
so far, none are readable with my phone. maybe graph paper next time.
I get the data structure, but is there some metadata? How does it know the contents are, say, an URL, or a vcard?
I think it is just: store bytes and let the reader decide how to deal with them. Starts with "http", it's a URL. Starts with "BEGIN:VCARD", it's a vcard. Primitive but it works well enough I guess.
Just by the structure of the contents. Clients are supposed to parse the string contents, realize it's a URL, and open the browser for example.