id

open override val id: String

The building outline is conceptually per building — a single outline whose footprint happens to be stored (and swapped) per floor. Keying it by the building id, rather than by the per-floor location id, means a floor change REUSES the same view/polygon and just updates its geometry, instead of destroying the old floor's view and creating a new one.

The destroy-and-recreate that per-floor ids forced was what allowed a stale (typically ground-floor) outline polygon to be orphaned on the map and rendered as a duplicate.