code: func parseGroupVersionKind(s proto.Schema) []schema.GroupVersionKind {
  	extensions := s.GetExtensions()
  
  	gvkListResult := []schema.GroupVersionKind{}
  
  	// Get the extensions
  	gvkExtension, ok := extensions[groupVersionKindExtensionKey]
  	if !ok {
  		return []schema.GroupVersionKind{}
  	}
  
  	// gvk extension must be a list of at least 1 element.
  	gvkList, ok := gvkExtension.([]interface{})
  	if !ok {
  		return []schema.GroupVersionKind{}
  	}
  
  	for _, gvk := range gvkList {
  		// gvk extension list must be a map with group, version, and
  		// kind fields
  		gvkMap, ok := gvk.(map[interface{}]interface{})
  		if !ok {
  			continue
  		}
  		group, ok := gvkMap["group"].(string)
  		if !ok {
  			continue
  		}
  		version, ok := gvkMap["version"].(string)
  		if !ok {
  			continue
  		}
  		kind, ok := gvkMap["kind"].(string)
  		if !ok {
  			continue
  		}
  
  		gvkListResult = append(gvkListResult, schema.GroupVersionKind{
  			Group:   group,
  			Version: version,
  			Kind:    kind,
  		})
  	}
  
  	return gvkListResult
  }
docs: // Get and parse GroupVersionKind from the extension. Returns empty if it doesn't have one.