After a bunch of hacking, I have a prototype implementation of product types for Structured Data. Since I just now got the tests to pass, it's probably pretty bad, but I don't care right now.
It's nice to have a clear vision for the stuff I want to work on again. Makes it possible to just point myself at a task and go.
I think maybe later I'll try to explain what's up with the product types, but right now I should really get ready for bed. Good night.