code: func mergeSliceHandler(original, patch interface{}, schema LookupPatchMeta,
  	fieldPatchStrategy, fieldPatchMergeKey string, isDeleteList bool, mergeOptions MergeOptions) ([]interface{}, error) {
  	typedOriginal, typedPatch, err := sliceTypeAssertion(original, patch)
  	if err != nil {
  		return nil, err
  	}
  
  	if fieldPatchStrategy == mergeDirective {
  		return mergeSlice(typedOriginal, typedPatch, schema, fieldPatchMergeKey, mergeOptions, isDeleteList)
  	} else {
  		return typedPatch, nil
  	}
  }
docs: // mergeSliceHandler handles how to merge `patchV` whose key is `key` with `original` respecting
  // fieldPatchStrategy, fieldPatchMergeKey, isDeleteList and mergeOptions.