There's a couple of points where the DSP allows recursive objects:
- a
Catalog can contain Catalogs in its catalog property.
- a
LogicalConstraint can contain a Constraint of which LogicalConstraint is a Subclass.
We should give implementors hints how to deal with this and what recursion depths implementations can plausibly be expected to handle.