anchor.diff:  interface ContainerElementNode extends Node {
   
       /**
  -     * @return the class of the container for the element affected by the violated constraint
  +     * @return the type of the container the node is placed in, if contained in a container type such as
  +     * {@code Optional}, {@code List} or an array, {@code null} otherwise
        */
       Class<?> getContainerClass();
   
       /**
        * @return the index of the type parameter affected by the violated constraint in the container class
        */
  -    Integer getContainerElementIndex();
  -}
  -----
  -
  -`getContainerClass()` and `getContainerElementIndex()` also need to be added to `BeanNode` and `PropertyNode` and will return the affected type parameter when violating a class-level or property constraint in the course of cascaded validation of a generic type, such as `List` or `Map`.
  +    Integer getTypeArgumentIndex();
  +}
  +----
  +
  +`getContainerClass()` and `getTypeArgumentIndex()` also need to be added to `BeanNode` and `PropertyNode` and will return the affected type parameter when violating a class-level or property constraint in the course of cascaded validation of a generic type, such as `List` or `Map`.
   
   ==== Default extractors
   
  
positive.code: *** index: the element's index
  *** key: `null`
  *** containerClass: `List`
  *** containerElementIndex: `0`
  * `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 compatibility with BV 1.1
  ** When `@Valid` is given on the key type parameter, the map keys will be validated
  
negative.code: *** index: `null`
  *** key: key
  *** containerClass: `Map`
  *** typeArgumentIndex: `1`
  * `java.util.Optional`
  ** No node will be appended to the path when validating type argument constraints on `Optional`
  * `javafx.beans.observable.ObservableValue`
  