//! Normalization entry point consolidation (Phase 134 P0)
//!
//! ## Purpose
//!
//! Consolidate the dual entry points for Normalized shadow processing:
//! - `routing.rs::try_normalized_shadow()` (loop-only)
//! - `suffix_router_box::try_lower_loop_suffix()` (loop + post)
//!
//! Both now use the same NormalizationPlanBox for pattern detection.
//!
//! ## Architecture
//!
//! - **NormalizationPlanBox**: SSOT for "what to normalize" decision
//! - **NormalizationExecuteBox**: SSOT for "how to execute" normalization
//! - **NormalizationPlan**: Data structure for plan details
//!
//! See README.md for full design and contract documentation.

mod plan;
mod plan_box;
mod execute_box;

pub use plan::PlanKind;
pub use plan_box::NormalizationPlanBox;
pub use execute_box::NormalizationExecuteBox;
