code: func (a *AttributeDefinition) Inherit(parent *AttributeDefinition, seen ...map[*AttributeDefinition]struct{}) {
  	if !a.shouldInherit(parent) {
  		return
  	}
  
  	a.inheritValidations(parent)
  	a.inheritRecursive(parent, seen...)
  }
docs: // Inherit merges the properties of existing target type attributes with the argument's.
  // The algorithm is recursive so that child attributes are also merged.