extractPolygon схлопывал MultiPolygon до coordinates[0], поэтому 3D/2D
massing-сцена брала начало проекции, bbox OSM-тайла и контур от ПЕРВОЙ части,
а бэкенд анкорит соседей к ЦЕЛОЙ геометрии — для многочастных участков контекст
уезжал до ~1.6км от part[0] (163 участка на проде, max 1611м).
Сцена теперь считает origin (ringsCentroid), ground bounds (ringsBounds) и
рисует контур по ВСЕМ частям (polygonOuterRings) целого Polygon|MultiPolygon;
камера охватывает все части + корпуса. Запрос /concepts по-прежнему шлёт один
Polygon, но берёт НАИБОЛЬШУЮ по площади часть, не coordinates[0] (побочный
латентный баг — part[0] мог быть осколком). 2D Leaflet-карта фитится по всему
экстенту. Одночастные участки не затронуты (helpers делегируют к прежней логике,
байт-в-байт). ptica-песочница area-based → не затронута.
Refs #2180