We have several places where we raise exceptions with messages that provide varying degrees of context to the user. In the schema class, an error in a constraint should present the user with the full context of the constraint: Schema -> Data Group -> Data Element -> Constraint text.
We can manually do this for each component, but it has me wondering if we want to create a base component with a method that builds an entire context string looking at a component's recursive ancestry.