anchor.diff:  
   This would also validate any constraints on a custom list type (e.g. `MyList#getId()`). TODO: we never clarified that in 1.1. Should it be made explicit?
   
  -* Map validation with type-level constraints and cascading:
  +* Map validation with type argument constraints and cascading:
   
   [source,java]
   ----
  
positive.code: As extractor retrieval for type parameter constraints is done using the static type of constrained elements, the retrieval can be done once at initialization time and then be cached. This is not possible for retrieval of extractors for cascaded validation.
  ====
  
  ==== Applying element-level constraints to wrapper elements
  
  Sometimes there is no type parameter to put a constraint to, but still constraints should be applied to the wrapped value instead of the annotated element. JavaFX's property hierachy falls into that category, as it defines specific `Property` sub-types which are not generic:
  
  
negative.code: 
  ==== Default extractors
  
  Compatible implementations provide extractors for the following types, applying the described semantics, out of the box:
  
  * Arrays of objects and all primitive data types
  ** `@Valid` can be given for the array itself or for its component type, which will cause the validation of all the array elements
  ** If a constraint given for an array's component type is validated, a node with the following properties will be added to the path:
  *** name: "<iterable element>"
  *** kind: `TYPE_PARAMETER`
  *** isInIterable: `false`
  *** index: the element's index
  *** key: `null`
  * `java.util.Iterable`
  ** When `@Valid` is given on the iterable element itself, the element and all its entries will be validated; this is to grant backwards compatability with BV 1.1
  ** When `@Valid` is given on the type parameter of an iterable element, all the entries will be validated).
  ** When validating a type argument constraint for `Iterable`, a node with the following properties will be added to the path:
  *** name: "<iterable element>"
  *** kind: `TYPE_PARAMETER`
  *** isInIterable: `true`
  *** index: the element's index if the iterable is of type `List` or a subtype thereof; `null` otherwise
  *** key: `null`
  * `java.util.Map`
  ** When `@Valid` is given on the map element itself, the element and all its values will be validated; this is to grant backwards compatability with BV 1.1
  ** When `@Valid` is given on the key type parameter, only the keys will be validated
  ** When `@Valid` is given on the value type parameter, only the values will be validated
  ** When validating a constraint on the key type argument of `Map`, a node with the following properties will be added to the path:
  *** name: "<map key>"
  *** kind: `TYPE_PARAMETER`
  *** isInIterable: `true`
  *** index: `null`
  *** key: "(" + key + ")"; TODO: re-consider
  ** When validating a constraint on the value type argument of `Map`, a node with the following properties will be added to the path:
  *** name: "<map value>"
  *** kind: `TYPE_PARAMETER`
  *** isInIterable: `true`
  *** index: `null`
  *** key: key; TODO: re-consider
  * `java.util.Optional`
  ** No node will be appended to the path when validating type argument constraints on `Optional`
  ** Constraints given on an element of type `Optional` apply to the wrapped value by default (see <<appendixvalueextraction-wrappedelements>>).
  * `javafx.beans.observable.ObservableValue`
  ** No node will be appended to the path when validating type argument constraints on `ObservableValue`
  ** Constraints given on an element of type `ObservableValue` apply to the wrapped value by default (see <<appendixvalueextraction-wrappedelements>>).
  * `java.lang.Object`
  ** When `@Valid` is given for an element, the element will be validated
  
  ===== Examples
  
  TODO
  
  ==== Plugging in custom extractors
  
  Additional value extractors can be registered with the Bean Validation provider in the following ways:
  
  * Invoke the new method `Configuration#addValueExtractor(ValueExtractor<?>)` (to apply it at the validation factory level)
  * Invoke the new method `ValidatorContext#addValueExtractor(ValueExtractor<?>)` (to apply it for a single `Validator`)
  * Specify the fully qualified class name of one or several extractors in `META-INF/validation.xml`: 
  
  