Постраничная вычитка PDF многоконтурного участка 66:41:0702017:131:
1. MultiPolygon роняет concept-стек через geometry._parse_polygon
(expected Polygon) ДО буфер-стадии, которая мультиконтур уже умеет →
§7 без концепции, §5 деградирует, market-price падает. Новый
_largest_polygon_geojson нормализует к крупнейшему контуру (паттерн
geometry.py:263-265) до ConceptInput; Polygon проходит identity,
битая геометрия — вход как есть. Интерактивный POST /concepts на
мультиконтурах по-прежнему 422 — вынесено в #2295.
2. Сиротские заголовки: page-break-after avoid для h2/h3.
3. Тепло/вода §3: агрегат «Суммарно (ЕКБ)», фильтр областного шума
(Регионгаз по Ирбиту/Тавде и т.п.), кап топ-15/25 + «и ещё K»,
усечение имён 120 симв; дефицитные ЕКБ-резервы гарантированно
видимы (bucket до капа, тест-лок).
4. Конкуренты §4: скип безымянных с 0 лотов, группировка корпусов
(имя+девелопер → min дистанция, сумма лотов, «(K корпусов)»).
5. ЗОУИТ-противоречие: overlaps непусты при has_zouit=false →
«да (по данным НСПД)»; обратное направление не тронуто.
6. Призрачные НСПД-строки, дубль-колонка confidence, absorption → %,
средний чек без «+» (unsigned-форматтер).
Refs #2259, #2295