code: func (v *versionConverter) Convert(object typed.TypedValue, version fieldpath.APIVersion) (typed.TypedValue, error) {
  	// Convert the smd typed value to a kubernetes object.
  	objectToConvert, err := v.typeConverter.TypedToObject(object)
  	if err != nil {
  		return object, err
  	}
  
  	// Parse the target groupVersion.
  	groupVersion, err := schema.ParseGroupVersion(string(version))
  	if err != nil {
  		return object, err
  	}
  
  	// If attempting to convert to the same version as we already have, just return it.
  	fromVersion := objectToConvert.GetObjectKind().GroupVersionKind().GroupVersion()
  	if fromVersion == groupVersion {
  		return object, nil
  	}
  
  	// Convert to internal
  	internalObject, err := v.objectConvertor.ConvertToVersion(objectToConvert, v.hubGetter(fromVersion))
  	if err != nil {
  		return object, err
  	}
  
  	// Convert the object into the target version
  	convertedObject, err := v.objectConvertor.ConvertToVersion(internalObject, groupVersion)
  	if err != nil {
  		return object, err
  	}
  
  	// Convert the object back to a smd typed value and return it.
  	return v.typeConverter.ObjectToTyped(convertedObject)
  }
docs: // Convert implements sigs.k8s.io/structured-merge-diff/merge.Converter