code: func (r *ChangeCauseRecorder) MakeRecordMergePatch(obj runtime.Object) ([]byte, error) {
  	// copy so we don't mess with the original
  	objCopy := obj.DeepCopyObject()
  	if err := r.Record(objCopy); err != nil {
  		return nil, err
  	}
  
  	oldData, err := json.Marshal(obj)
  	if err != nil {
  		return nil, err
  	}
  	newData, err := json.Marshal(objCopy)
  	if err != nil {
  		return nil, err
  	}
  
  	return jsonpatch.CreateMergePatch(oldData, newData)
  }
docs: // MakeRecordMergePatch produces a merge patch for updating the recording annotation.