code: func Merge(codec runtime.Codec, dst runtime.Object, fragment, kind string) (runtime.Object, error) {
  	// encode dst into versioned json and apply fragment directly too it
  	target, err := runtime.Encode(codec, dst)
  	if err != nil {
  		return nil, err
  	}
  	patched, err := jsonpatch.MergePatch(target, []byte(fragment))
  	if err != nil {
  		return nil, err
  	}
  	out, err := runtime.Decode(codec, patched)
  	if err != nil {
  		return nil, err
  	}
  	return out, nil
  }
docs: // Merge requires JSON serialization
  // TODO: merge assumes JSON serialization, and does not properly abstract API retrieval