Just a question: why do we *force* people to choose here?
Aren't there (many?) situations where we couldn't care less if the annotation was put on the getter or setter and we could just put them on both without any problem?
It just makes annotating fields very ugly IMO, for example implementing a Ceylon tool plugin now looks like:
description__SETTER("A simple string option, use `--string-option=foobar`")
optionArgument__SETTER shared variable String? stringOption = null;
description__SETTER("A simple flag, use `--simple-flag`")
option__SETTER shared variable Boolean simpleFlag = false;