If the target class includes properties from multiple source sub-classes then this mapping is legal:
@Mapping(target = ".", source = "key")
@Mapping(target = ".", source = "foo")
@Mapping(target = ".", source = "bar")
public abstract MyClass toMyClass (MyClassInternal internal);
It is only illegal if there is overlap in the properties (i.e. if MyClass has property X and both foo and bar contains X)