pub fn extract_bound(text: &str) -> Option<(f64, f64, f64, String)>
Extract a bound: “X is within Y of Z” → (X, Z-Y, Z+Y)