quality.tacticalCover too sparse: 0% have nearby cover (target 20-65%).
quality.tacticalCover critically sparse — map rejected.
quality.tacticalInsufficient medium lanes: 0 (need 4+).
quality.tacticalInsufficient broken lanes: 0 (need 3+).
quality.tacticalOpen field detected: too many long lanes, not enough cover breaks.
quality.tacticalInsufficient elevated positions: 0 cluster(s) (need 2+).
quality.tacticalNo dominant rooftop: largest cluster is 0 tiles (need 4+).
quality.tacticalTeam A: no defensive route (through cover) to Team B spawn.
quality.tacticalTeam B: no defensive route (through cover) to Team A spawn.