def METHOD_NAME(existing_property: Any, extension_property: Any) -> Any:
    if existing_property:
        # If the property is not scalar, merge them
        if isinstance(existing_property, list) and isinstance(extension_property, list):
            merged = extension_property + existing_property
            # If the lists are just strings, remove duplicates.
            if all(isinstance(item, str) for item in merged):
                return _remove_list_duplicates(merged)
            return merged
        if isinstance(existing_property, dict) and isinstance(extension_property, dict):
            for key, value in extension_property.items():
                existing_property[key] = METHOD_NAME(
                    existing_property.get(key), value
                )
            return existing_property
        return existing_property
    return extension_property