I would do variant three: 2 separate buildings, one a roof. If you want you can create an attached_to role in a “provider” relation or something like this
The main building should probably remain building=retail and not yes, as option 3 suggests.
If the sidewalk is mapped you can add covered=yes to the part under the roof
You can draw the footway=sidewalk + covered=yes first
It’s not that bad initially. But it overlaps with 1 if someone draws the footway=sidewalk , so 1 is easier.
This doesn’t seem valid
Please remember you need to create a type=building to relate the outlinebuilding= with the partbuilding:part=roof that’s outside
Please remember you need to create a building:part=commercial to cover the rest
3 is the simplest. But why do you say “seems obvious that the extended part is indeed separate from the main part”? If anything, this is attached as a cantilever. On the contrary, the other covered=arcade case is partially supported by its own, although such a layout may be a building:part=balcony .
I’ve seen Not that I would it, though, since such roofs are usually part of a building.
First time I’ve heard this kind of building part mapping and feels overkill to me. AFAIK the building type of the part is usually inherited by the outline and the need to do this is fairly rare, one where no primary use is really prominent, for example (similar to why roof:shape=many is IMO only necessary when no kind of roof shape is really prominent).
That’s not my intent. The building= needs to be completely covered by building:part= . Option 6 didn’t mention this.
But still, having building:part=commercial inside building=commercial is useful to confirm this has the main function. building:part=yes may be used for anything. You can’t be sure.