from typing import Any UNSET = object() def recursive_merge(*dictionaries: dict | None) -> dict: """Merge multiple dictionaries recursively. Later dictionaries take precedence over earlier ones. Nested dictionaries are merged recursively. UNSET values are skipped. """ if not dictionaries: return {} result: dict[str, Any] = {} for d in dictionaries: if d is None: continue for key, value in d.items(): if value is UNSET: continue if key in result and isinstance(result[key], dict) and isinstance(value, dict): result[key] = recursive_merge(result[key], value) else: result[key] = value return result