Type Inheritance
Type Inheritance lets one type extend another, so the child type automatically includes all attributes defined on the parent. This enables reuse, consistency, and cleaner structure across your data model.
Behavior
- A child type automatically includes every attribute defined on its parent, and can still define its own additional attributes.
- Inheritance chains across multiple levels — a type can have children, grandchildren, and so on.
- Inheritance is single-parent only — a type can extend exactly one other type.
- Attribute names must stay unique within the inheritance chain.
- A child type cannot override an inherited attribute.
- Changing an attribute on a parent type reflects across all its child types.
- Once established, the inheritance relationship can't be removed, since child types depend on the parent's attributes.
Confirmed live in the backend as extendsTypeId on the type entity, backed by a dedicated
TypeInheritanceService. The same entity also has a parentTypeId field, which is not related
to this feature — it's a separate, purely visual mechanism for grouping types in the sidebar tree
(validated by ParentValidator for tree-structure rules like "no cycles" and "same space," with no
attribute logic involved). This matches Type's own note that the type hierarchy is
"purely visual... your object data and underlying logic remain unaffected" — that's parentTypeId;
extendsTypeId is the real attribute-inheritance mechanism this page describes.
See also: Type, and includeChildren on the
Reference attribute type for referencing a parent
type and its children together.