pub fn validate_table(routing: &RoutingConfig) -> Result<(), String>Expand description
Fail-closed validation of the routing table, called by
crate::config::validate so a malformed table never reaches a mission.
Returns Err naming the offending rule (the config-file key path), never
a silently-corrected table:
- a blank
taskClasscould never match honestly (routing matches on task-class text), and - a duplicate class after normalization is dead config under first-match-wins — almost always a mistake the operator meant to reorder or merge, so it is refused rather than quietly shadowed.
The same two checks apply to patternRules (ticket
routing-rules-config): a blank pattern is meaningless (spell *), and
a duplicate pattern is dead config under first-match-wins.