In other words: the choice of representing objects via LinkedHashMap is arbitrary in two ways: keeping things ordered and forgetting about duplicates. Although I also agree that one choice should have been done and LinkedHashMap suits most needs, I'm convinced this is a too strong choice for...
Major changes - AnnotationAttributes has been introduced as a concrete LinkedHashMap<String, Object> to be used anywhere annotation attributes are accessed, providing error reporting on attribute lookup and convenient type-safe access to common annotation types such as String, String[], boolean, int,...