Route ONE chunk's surfaces to canonicals, fanning out to every entity it
touches. Resolver hits route deterministically; misses get a trigram shortlist
disambiguated by the model (unless noModel). Returns one SurfaceRoute
per surface (entity null when nothing matched — a CREATE candidate upstream).
Route ONE chunk's surfaces to canonicals, fanning out to every entity it touches. Resolver hits route deterministically; misses get a trigram shortlist disambiguated by the model (unless
noModel). Returns one SurfaceRoute per surface (entity null when nothing matched — a CREATE candidate upstream).