Art
Optional. Without it the ground draws in flat colours and the code is identical — but props need their art loaded, because a box that is not measured is a guess.
Map
×
The counter only mints unique prop ids. It has to be an offset no other generator holds.
Lamps are placed by a pass that reads the finished ground, never by hand. They are not drawn in the preview.
Tool
Drag to paint a rectangle — it emits as one rect(...) line, which is what a person would have written. Right-click always erases.
View
A borough-sized map is 160×100 tiles, so zooming OUT is the one that matters. Below 1× the labels on placeholders are dropped rather than squeezed.
Plan
A plan reopens for editing. The code below is the deliverable.