pub fn validate_rules(rules: &[Rule]) -> Result<(), String>
Validate all rules and reject duplicate IDs and known reduction overlaps.
Returns an error when a rule is invalid or conflicts with another rule.