code: func (s *Scheme) AddTypeDefaultingFunc(srcType Object, fn func(interface{})) {
  	s.defaulterFuncs[reflect.TypeOf(srcType)] = fn
  }
docs: // AddTypeDefaultingFunc registers a function that is passed a pointer to an
  // object and can default fields on the object. These functions will be invoked
  // when Default() is called. The function will never be called unless the
  // defaulted object matches srcType. If this function is invoked twice with the
  // same srcType, the fn passed to the later call will be used instead.