Didn't get very far with trying to use an annotation processor to generate metadata at build time. May revisit later.