# Deterministic Salted Hash Routing for A/B Canaries
When running canary deployments or A/B tests on machine learning models, users must be deterministically mapped to the same model variant across repeat sessions without requiring stateful database lookups.
### Task
Write a function `route_user_to_variant(user_id: str, salt: str, traffic_split: dict[str, int]) -> str` that:
1. Computes the MD5 hex digest of `f"{user_id}_{salt}"`.
2. Converts the first 8 hex characters into an integer and takes modulo 100 to yield a bucket in `0..99`.
3. Iterates over `traffic_split` (e.g. `{"champion": 90, "challenger": 10}`) to return the matching variant key.