Replace conditional with inheritance
Enforce embedded collection cardinality

Depends on snusnu/morpher mom branch