def METHOD_NAME(src: Union[Dict, List], override: Union[Dict, List]):
    if isinstance(override, dict):
        overriding_fields = set(src.get("@overriding_fields") or set())
        for key, val in override.items():
            if (
                key not in src
                or not isinstance(val, (list, dict))
                or key in overriding_fields
            ):
                src[key] = val
            else:
                METHOD_NAME(src[key], override[key])
    else:
        src.extend(override)