code: func (typedData *TypedData) Dependencies(primaryType string, found []string) []string {
  	includes := func(arr []string, str string) bool {
  		for _, obj := range arr {
  			if obj == str {
  				return true
  			}
  		}
  		return false
  	}
  
  	if includes(found, primaryType) {
  		return found
  	}
  	if typedData.Types[primaryType] == nil {
  		return found
  	}
  	found = append(found, primaryType)
  	for _, field := range typedData.Types[primaryType] {
  		for _, dep := range typedData.Dependencies(field.Type, found) {
  			if !includes(found, dep) {
  				found = append(found, dep)
  			}
  		}
  	}
  	return found
  }
docs: // Dependencies returns an array of custom types ordered by their hierarchical reference tree