code: func (d *Domain) PopulateTypes(types []*ProtoType) {
  	// do first pass to get all underlying type information
  	for _, protoType := range types {
  		fmt.Printf("Populating type: %s\n", protoType.Id)
  		newType := NewType(protoType)
  		// igore empty property types as we turn those into Refs
  		if len(protoType.Properties) > 0 {
  			d.handleType(newType, protoType.Properties)
  			d.Types = append(d.Types, newType)
  		}
  
  	}
  }
docs: // Extract each type and call handleType, add the result to our Types slice.