code: func (sd *structDef) handleAdvancedType(apiDef *raml.APIDefinition) {
  	if sd.T.Type == nil {
  		sd.T.Type = "object"
  	}
  
  	parents, isMultipleInherit := sd.T.MultipleInheritance()
  	parent, isSingleInherit := sd.T.SingleInheritance()
  
  	switch {
  	case isMultipleInherit:
  		sd.addMultipleInheritance(apiDef, parents)
  	case sd.T.IsUnion():
  		sd.buildUnion()
  	case sd.T.IsArray():
  		sd.buildArray()
  	case strings.ToLower(sd.T.TypeString()) == "object": // plain type
  		return
  	case sd.T.IsEnum():
  		sd.buildEnum()
  	case sd.T.IsAlias():
  		sd.buildTypeAlias(apiDef)
  	case isSingleInherit:
  		sd.addSingleInheritance(apiDef, parent)
  	}
  }
docs: // handle advance type type into structField
  // example:
  //   Mammal:
  //     type: Animal
  //     properties:
  //       name:
  //         type: string
  // the additional fieldDef would be Animal composition