Route one request using cached-prefix reuse and token-slot capacity. Each worker is {"id": string, "used": occupied slots, "capacity": total slots, "prefix": one cached token list}. Reuse is the common-prefix length of prompt and that list, stopping at the first mismatch.
Additional required slots = len(prompt)−reuse+max_new_tokens. A worker is eligible when used+required ≤ capacity. Rank eligible workers by greatest reuse, then smallest projected utilization (used+required)/capacity, then lexicographically smallest ID. Return the chosen ID, or null if none fits. Do not mutate worker usage. Cached slots are already included in used; this is a specified placement heuristic.