Context
Spin-off from #1992138: Helper issue for "field types as TypedData Plugins" / #1969728: Implement Field API "field types" as TypedData Plugins.
That issue adds actual validation on entity fields.
This means that implicit or explicit constraints contained in FieldItem::getPropertyDefinitions() (e.g 'type' => 'uri' in LinkItem, 'type' => 'integer' for 'tid' in TaxonomyTermReferenceItem...) that were just "dormant" so far in HEAD, are now fired.
Issue
When those constraints fail, the generated violation objects do not point to any specific delta: the propertyPath is just the name of the property, e.g. 'url', not '0[url]'. It is thus impossible to assign them back to the right form element.
TypedDataManager::getConstraints() has a "@todo: Figure out how to handle nested constraint structures as collections.", which seems to be about exactly that ? But fixing this is above my head right now...