Half-open rectangle: left/top included, right/bottom excluded. Zero-sized rectangles are empty.
Smallest bounding rectangle; empty inputs do not enlarge it.