code: func NewScheme() *Scheme {
  	s := &Scheme{
  		gvkToType:        map[unversioned.GroupVersionKind]reflect.Type{},
  		typeToGVK:        map[reflect.Type][]unversioned.GroupVersionKind{},
  		unversionedTypes: map[reflect.Type]unversioned.GroupVersionKind{},
  		unversionedKinds: map[string]reflect.Type{},
  		cloner:           conversion.NewCloner(),
  		fieldLabelConversionFuncs: map[string]map[string]FieldLabelConversionFunc{},
  	}
  	s.converter = conversion.NewConverter(s.nameFunc)
  
  	s.AddConversionFuncs(DefaultEmbeddedConversions()...)
  
  	// Enable map[string][]string conversions by default
  	if err := s.AddConversionFuncs(DefaultStringConversions...); err != nil {
  		panic(err)
  	}
  	if err := s.RegisterInputDefaults(&map[string][]string{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil {
  		panic(err)
  	}
  	if err := s.RegisterInputDefaults(&url.Values{}, JSONKeyMapper, conversion.AllowDifferentFieldTypeNames|conversion.IgnoreMissingFields); err != nil {
  		panic(err)
  	}
  	return s
  }
docs: // NewScheme creates a new Scheme. This scheme is pluggable by default.