pub fn detect(input: &str) -> PatternResultExpand description
Run the curated ruleset over normalize(input) and map every hit’s span back
to the original text.
score is the maximum per-rule weight among hits, clamped to 0.0..=1.0
(no hits → 0.0).