Great answer, Minh, as always! I’d do some things differently though. Here’s where and why I divert:

You only use level=* for indoor-mapping, not layer=*. A layer > 1, by definition, requires the bridge=-tag and isn’t needed here, because routers and QC-tools do understand levels.

Sources

That is a contradiction. A tunnel=building_passage is by definition not indoors, because it’s a tunnel through the building with walls at all sides, which doesn’t make it indoors. I’d only use indoor=yes for these ways.

When a feature spans multiple levels, or even connects them (like a road or steps, even though roads aren’t explicitly mentioned, they work the same), the wiki suggests to use multiple levels like level=0;1 for a road connecting level 0 and 1 of a building. If it’s connecting more than just two levels, you can also use level=0-5

Besides these minor points, this is good advice. Getting started with indoor-tagging is a bit bumpy, but once you get the grip, it’s actually straightforward.

2 Likes