code: func (s *Scheme) AddUnversionedTypes(version unversioned.GroupVersion, types ...Object) {
  	s.AddKnownTypes(version, types...)
  	for _, obj := range types {
  		t := reflect.TypeOf(obj).Elem()
  		gvk := version.WithKind(t.Name())
  		s.unversionedTypes[t] = gvk
  		if _, ok := s.unversionedKinds[gvk.Kind]; ok {
  			panic(fmt.Sprintf("%v has already been registered as unversioned kind %q - kind name must be unique", reflect.TypeOf(t), gvk.Kind))
  		}
  		s.unversionedKinds[gvk.Kind] = t
  	}
  }
docs: // AddUnversionedTypes registers the provided types as "unversioned", which means that they follow special rules.
  // Whenever an object of this type is serialized, it is serialized with the provided group version and is not
  // converted. Thus unversioned objects are expected to remain backwards compatible forever, as if they were in an
  // API group and version that would never be updated.
  //
  // TODO: there is discussion about removing unversioned and replacing it with objects that are manifest into
  //   every version with particular schemas. Resolve this method at that point.