Traffic assignment engine in Rust: BPR link costs and shortest-path routing over a road network graph