//! Merge trait for configuration layering.
//!
//! Provides the mechanism for project-specific config to override global config,
//! where unset fields fall back to the global value.
/// Trait for merging configuration structs.
///
/// Project-specific config fields override global fields when set.
/// Fields that are `None` in the override fall back to the base value.
/// Merge optional global and project configs, returning the effective config.
///
/// - Both set: merge (project takes precedence for set fields)
/// - Only project set: clone project
/// - Only global set: clone global
/// - Neither set: None