The closest you’d be able to get right now is to set a town distance of -1, whatever in the json, then a location of “land”. This will tell it to stomp out whatever happens to be where it is located. The problem you describe will result though.
The fix will probably involve rehauling the city generation code to place specials at the same time as shops, but the world generation code is some of the worst, so nobody wants to deal with it.