If the annotation @Documented is present on the declaration
of an annotation type A, then any @A annotation on
an element is considered part of the element's public contract.
In more detail, when an annotation type A is annotated with
Documented, the presence and value of annotations of type
A are a part of the public contract of the elements A
Conversely, if an annotation type B is not
annotated with Documented, the presence and value of
B annotations are not part of the public contract
of the elements B annotates.
Concretely, if an annotation type is annotated with
Documented, by default a tool like javadoc will display
annotations of that type in its output while annotations of
annotation types without Documented will not be displayed.