code: func (s *Scheme) PrioritizedVersionsAllGroups() []schema.GroupVersion {
  	ret := []schema.GroupVersion{}
  	for group, versions := range s.versionPriority {
  		for _, version := range versions {
  			ret = append(ret, schema.GroupVersion{Group: group, Version: version})
  		}
  	}
  	for _, observedVersion := range s.observedVersions {
  		found := false
  		for _, existing := range ret {
  			if existing == observedVersion {
  				found = true
  				break
  			}
  		}
  		if !found {
  			ret = append(ret, observedVersion)
  		}
  	}
  	return ret
  }
docs: // PrioritizedVersionsAllGroups returns all known versions in their priority order.  Groups are random, but
  // versions for a single group are prioritized