code: func mergeMapHandler(original, patch interface{}, schema LookupPatchMeta,
  	fieldPatchStrategy string, mergeOptions MergeOptions) (map[string]interface{}, error) {
  	typedOriginal, typedPatch, err := mapTypeAssertion(original, patch)
  	if err != nil {
  		return nil, err
  	}
  
  	if fieldPatchStrategy != replaceDirective {
  		return mergeMap(typedOriginal, typedPatch, schema, mergeOptions)
  	} else {
  		return typedPatch, nil
  	}
  }
docs: // mergeMapHandler handles how to merge `patchV` whose key is `key` with `original` respecting
  // fieldPatchStrategy and mergeOptions.