In the context of DDC-567 it would also be nice to validate that all referenced column names are primary key columns.
ps. If anyone is curious why referencedColumnName then not always automatically points to the primary key column of the other class, its just not doable in an efficient way I think. referencedColumnName defaults to the hardcoded "id" name, because each class metadata must be able to be loaded independently without loading others (inheritance being an exception). If we start "guessing" default values by looking at other classes, we quickly load the metadata for huge parts (or all) of the mapping of the domain model on each request. At least during development without a persistent cache this would be a major pain and slowdown.