Why value cannot be a road id, or undefined when it can: idProblem, and then only
letters, digits, spaces, dashes and underscores. Every road id the API lists matches
A<number>[letter]; spaces, dashes and underscores stay allowed so that A 1 or A-1
reaches the did-you-mean. Anything else (%, ~, A1;x) cannot name a road and used
to cost two requests (the listing and the road-list check) before "Unknown road id".
The alphabet is an assumption about the ids the API lists (every id seen so far: 110 on 2026-10-05);
if roads() ever returns one outside it, this rule must be widened.
Why
valuecannot be a road id, or undefined when it can: idProblem, and then only letters, digits, spaces, dashes and underscores. Every road id the API lists matchesA<number>[letter]; spaces, dashes and underscores stay allowed so thatA 1orA-1reaches the did-you-mean. Anything else (%,~,A1;x) cannot name a road and used to cost two requests (the listing and the road-list check) before "Unknown road id". The alphabet is an assumption about the ids the API lists (every id seen so far: 110 on 2026-10-05); ifroads()ever returns one outside it, this rule must be widened.