pub fn normalize_text(text: Option<&str>, strict: bool) -> String
Collapse whitespace; in fuzzy mode also fold em-dash, ellipsis and curly quotes so punctuation-only edits do not force regeneration.