We've been using supplementary metatypes to automagically generate <stereotypedrelationships> (rather than needing to explicitly specify them at the concrete metatype level). It's pretty good! (some "niggles" notwithstanding - see:
"With loss of generality" - <stereotypedrelationships>)
An example is:
<Stereotype name="SrvdItm" metatype="Served (item)" notes="Can have an inbound Serving relationship" isAbstract="true" generalizes="Root" baseStereotypes="Root">
</Stereotype>
<Stereotype name="CnSrvItm" metatype="Can Serve (item)" notes="Can have an outbound Serving relationship" isAbstract="true" generalizes="Root" baseStereotypes="Root">
<stereotypedrelationships>
<stereotypedrelationship stereotype="MyProfile::Srvng" constraint="MyProfile::SrvdItm"/>
</stereotypedrelationships>
</Stereotype>
Here, two supplemental metatypes are defined that define whether an item (typically a vertex) can generate an outbound or receive an inbound
serving relationship.
We have a "root" metatype used to define the "highest level" of common relationships for the QuickLinker:
<stereotypedrelationships>
<stereotypedrelationship stereotype="MyProfile::Aggrgtn" constraint="source.metatype.both"/>
<stereotypedrelationship stereotype="MyProfile::Cmpstn" constraint="source.metatype.both"/>
<stereotypedrelationship stereotype="MyProfile::Inhrtnc" constraint="source.metatype.both"/>
<stereotypedrelationship stereotype="MyProfile::Rstrctn" constraint="source.metatype.both"/>
<stereotypedrelationship stereotype="MyProfile::Spclztn" constraint="source.metatype.both"/>
</stereotypedrelationships>
As you might be able to infer, Aggregation, Composition, Inheritance, Restriction and Specialization. In this case to "self" (ala ArchiMate).
By assigning the appropriate metatype to the appropriate vertex, EA will
automatically create the QuickLinker entries for the serving relationship! REALLY neat (and tremendously useful)!!!

For example:
<Stereotype name="Hrdwr" metatype="Hardware" generalizes="ClssVrtx" baseStereotypes="ClssVrtx CnSrvItm">
and...
<Stereotype name="Systm" metatype="System" generalizes="ClssVrtx" baseStereotypes="ClssVrtx CmpstItm AggrgtItm CnFlwItm FlwblItm AccssblItm SrvdItm">
(As can be seen, "System" is a complex vertex!)
Will generate the QuickLinker entry that Hardware "serves" a System.
However, when we apply the supplemental metatypes to an Arc, the QuickLinker entries are NOT created!

<Stereotype name="Flow" metatype="Flow" generalizes="Root" basestereotypes="Root CnSrvItm">
and...
<Stereotype name="ETLJob" metatype="ETL Job" generalizes="ClssVrtx" baseStereotypes="ClssVrtx SrvdItm">
"A flow can serve an ETL job"
To get the entries, we have to add an explicit <stereotypedrelationships> to "Flow":
<stereotypedrelationships>
<stereotypedrelationship stereotype="MyProfile::Srvng" constraint="MyProfile::ETLJob"/>
</stereotypedrelationships>
This looks like a defect to me, but since I'm still "handcrafting" I may have missed something.
Can anybody shed any light as to whether it's a defect or my bad handcrafting? (Actually, I checked via a test metamodel and it
generates1 this definition)
TIA,
Paolo
1 It actually generates a
slightly (
but not substantively) different specification!

The baseStereotypes are
always in ascending alphabetical order and the generalizes attribute is
always the first alpha stereotype!

(who dreamt that one up?)