Annotation metadata represents information about the definition a single annotation - its name, allowed targets, construction strategy and properties.
Annotation targets represents possible targets at which an annotation could be declared.
Internal meta-annotations exposed by the Annotations library to declare custom user-land annotations.
Property metadata represents information about the definition of a single property of an annotation, it's name, accepted types, whether it's required and whether it's default.
In-memory metadata collection.
Storage of all annotation metadata. This is a possible extension point i.e. for caching layer.