How can I map this as one gas station?

I’m trying to map a gas station with three distinct parts: a roof, a store, and a car wash. The roof/store part is giving me trouble, because the roof covers the majority of the store.

I’d like to map this as a multipolygon so I don’t have to choose between having an unnamed gas station/convenience store part or having two names appear on the map for one business. I’d also like to include layer information for the roof so mapping software knows cars can drive under the roof but not through the main building.

If I map the roof as one continuous rectangle, I end up with overlapping rectangles for the store and roof, which aren’t valid. If I just draw each end of the roof that extends beyond the building, they either have an overlapping way along one side of the building or don’t count as closed polygons, depending on whether or not I close them. Both are invalid.

For now I’ll just map the roof/store as one building and not include layer information, but is there a way to add layer information for buildings like this?

Hi, map and tag as appropriate the footprints of the buildings as on the ground, then map the roof/canopy and tag as building:part=roof, layer=1

Creating a multipolygon relation would be incorrect for separate polygons, you could create a site relation to group the features or just leave all features as individual items.

I would put a rectangle over the gas pumps and tag it as building=roof, layer=1. For the convenience store and car wash building, I would probably just use one building rectangle. But then I’d extend the oneway service way through the building and tag the part going through the building as tunnel=tunnel_passage see https://wiki.openstreetmap.org/wiki/Tag%3Atunnel%3Dbuilding_passage. And then I’d also put the amenity=car_wash on the building tunnel passage.

If there is a single address for all of this, then I would put a polygon around the property with landuse=commercial or landuse=retail the address and probably the business name (exception to this: In my area the convenience store often has a different name or branding than the gas station as a whole).

I understand that it is necessary to map two different things. On the one hand the buildings, and on the other the services that are provided.
So, draw the buildings as they told you before, and add one node for each service (fuel, store, car wash).

You get both things, while keeping it simple.