def merge_json_recursive(base, update): """Recursively merge two JSON-like objects. - Dictionaries are merged recursively - Lists are concatenated - Other types are overwritten by the update value Args: base: Base JSON-like object update: Update JSON-like object to merge into base Returns: Merged JSON-like object """ if not isinstance(base, dict) or not isinstance(update, dict): if isinstance(base, list) and isinstance(update, list): return base + update return update merged = base.copy() for key, value in update.items(): if key in merged: merged[key] = merge_json_recursive(merged[key], value) else: merged[key] = value return merged