* to field, * to getter , * to parameter, *first entity m.a.t. - in this case it is not obvious what gets annotated and may produce "unpredictable" results
* all entities m.a.t. - in this case we can annotate something that shouldn't be annotated: some frameworks/libraries may produce runtime error if there are multiple entities gets annotated by the same, but at the same time it is good option
* compile time error - it may be too annoying for users to see it but it could be the safest option