One of design flaws of Java annotations is the lack of null (or "missing") values.
While it is possible to specify default values for annotation properties, there is no way to distinguish between explicit settings, and defaults; and by extension, impossible to override an explicit choice.
This is most problematic with multi-property annotations, where one may want to only set a subset of properties to explicit values.
To address this problem, let's introduce a new enum, OptBoolean, to allow "optional boolean" values.