It seems to me that att.personal should not be a
member of att.naming, because this allows nameLink to be used with @key
or @ref as an identifier for a person, something which seems highly
improbable to me, to say the least.
Because nameLink is a member of att.naming (via att.personal), it can
have a @ref or @key to identify the entity being named by the nameLink -
yet nameLink is not in fact a name.
"<nameLink> contains a connecting phrase or link used within a name but
not regarded as part of it, such as van der or of."
For example, this is valid, but, I submit, nonsensical:
<nameLink key="frederick.van-der.tronk">van der</nameLink>
This glitch can be resolved by removing att.personal from att.naming,
and instead explicitly including in att.naming every member of
model.persNamePart EXCEPT nameLink.
I also wonder whether persName itself needs @sort?