{"_readme":"Модели конфигуратора по коллекциям (ключ - адрес страницы /katalogproduktsii/<ключ>). Для каждой модели: name - название, src - картинка двери (дверь по центру на светлом фоне; подписи по углам не мешают), price - цена комплекта в рублях или null. Геометрию (коробка, стекло, ручка) конфигуратор находит на картинке сам. materials: ral - цвета RAL, veneer - шпон. glass - стекло вручную, если конфигуратор не нашёл его сам: список прямоугольников [x, y, ширина, высота] в долях кадра двери (0..1); края подгоняются к рамке. Можно {\"r\": [...], \"bars\": [колонки, ряды]} - раскладка, \"snap\": false - без подгонки. Пустой список - стекла нет. casing: false - дверь без наличников. {\"r\": [...], \"hold\": true} - участок «не трогать»: там дверь остаётся как на фото, даже внутри стекла (\"oval\": true - овал/круг в рамке r, край ровный). Рисуется в редакторе стёкол. {\"r\": [...], \"wall\": true, \"rot\": градусы} - рамка «не заливать» (с поворотом): внутри неё стекла нет, дверь как на фото; если рамки лежат на стекле с cross, свой крест не рисуется (планки уже обведены на фото). На уровне коллекции: glass - \"keep\" (стекло/витраж всегда как на фото) или \"none\" (стекла нет); detectMetal: false - не искать ручку/петли (для шпона). \"lines\": [колонки, ряды] - тонкая латунная решётка поверх стекла; \"keep\": true - этот проём как на фото (витраж). facet: true - у стекла скошенная кромка (фацет), она тоже стекло. seed: [x, y, ширина, высота] - откуда начинать заливку стекла (для стекла с вырезом); flood: false - стекло с отражением, без заливки. cross: true - косой крест из планок цвета полотна. glazed - есть ли у модели стекло (true/false): по нему модели во вкладке «Модель» делятся на «Без остекления» и «С остеклением». Проставлено по разбору фото; если поля нет - конфигуратор решает сам. smoothPaint: true — сглаживать шум исходного фото при окраске RAL/NCS; древесный рисунок шпона сохраняется. highlightStrength — сила светлых бликов (0..1). hardware — точная маска ручек и петель в долях обрезанного кадра двери: rect [x,y,ширина,высота] или ellipse [центрX,центрY,радиусX,радиусY]; radius — скругление прямоугольника в долях ширины кадра. При полной ручной разметке detectMetal: false исключает ложное сохранение теней и бликов полотна.","collections":{"martin":{"renderHardware":true,"models":[{"name":"Мартин 1","src":"images/modeli/martin/price/martin1.jpg","price":39880,"glazed":false,"hardware":[{"rect":[0.13725490196078433,0.5062630480167014,0.06372549019607843,0.025052192066805846],"radius":0.004901960784313725},{"rect":[0.1568627450980392,0.5156576200417536,0.13970588235294118,0.010438413361169102],"radius":0.0024509803921568627},{"rect":[0.8811274509803921,0.13883089770354906,0.0196078431372549,0.054279749478079335],"radius":0.0024509803921568627},{"rect":[0.8823529411764706,0.824634655532359,0.01838235294117647,0.054279749478079335],"radius":0.0024509803921568627}],"hardwareExact":true},{"name":"Мартин 3","src":"images/modeli/martin/price/martin3.jpg","price":39880,"glazed":false,"hardware":[{"rect":[0.13725490196078433,0.5062630480167014,0.06372549019607843,0.025052192066805846],"radius":0.004901960784313725},{"rect":[0.1568627450980392,0.5156576200417536,0.13970588235294118,0.010438413361169102],"radius":0.0024509803921568627},{"rect":[0.8811274509803921,0.13883089770354906,0.0196078431372549,0.054279749478079335],"radius":0.0024509803921568627},{"rect":[0.8823529411764706,0.824634655532359,0.01838235294117647,0.054279749478079335],"radius":0.0024509803921568627}],"hardwareExact":true},{"name":"Мартин 5","src":"images/modeli/martin/price/martin5.jpg","price":39880,"glazed":false,"hardware":[{"rect":[0.13725490196078433,0.5062630480167014,0.06372549019607843,0.025052192066805846],"radius":0.004901960784313725},{"rect":[0.1568627450980392,0.5156576200417536,0.13970588235294118,0.010438413361169102],"radius":0.0024509803921568627},{"rect":[0.8811274509803921,0.13883089770354906,0.0196078431372549,0.054279749478079335],"radius":0.0024509803921568627},{"rect":[0.8823529411764706,0.824634655532359,0.01838235294117647,0.054279749478079335],"radius":0.0024509803921568627}],"hardwareExact":true},{"name":"Мартин 7","src":"images/modeli/martin/price/martin7.jpg","price":39880,"glazed":false,"hardware":[{"rect":[0.13513513513513514,0.5062630480167014,0.06388206388206388,0.025052192066805846],"radius":0.004914004914004914},{"rect":[0.1547911547911548,0.5156576200417536,0.14004914004914004,0.010438413361169102],"radius":0.002457002457002457},{"rect":[0.8808353808353808,0.13883089770354906,0.019656019656019656,0.054279749478079335],"radius":0.002457002457002457},{"rect":[0.8820638820638821,0.824634655532359,0.018427518427518427,0.054279749478079335],"radius":0.002457002457002457}],"hardwareExact":true},{"name":"Мартин 9","src":"images/modeli/martin/price/martin9.jpg","price":39880,"glazed":false,"hardware":[{"rect":[0.12834224598930483,0.5427974947807933,0.06417112299465241,0.026096033402922755],"radius":0.0066844919786096255},{"rect":[0.15240641711229946,0.5521920668058455,0.1443850267379679,0.011482254697286013],"radius":0.004010695187165776},{"rect":[0.8796791443850267,0.12734864300626306,0.01871657754010695,0.054279749478079335],"radius":0.0032085561497326204},{"rect":[0.8796791443850267,0.8319415448851775,0.01871657754010695,0.054279749478079335],"radius":0.0032085561497326204}],"hardwareExact":true}],"room":{"src":"room-martin-optimized-20261015.webp","w":2560,"h":1440,"top":0,"bottom":1138.5334750265674,"open":[1653.5885167464114,130.07438894792773,2021.0526315789473,1029.8831030818278],"focus":[0.7,0.5],"light":false},"defaultModel":"Мартин 1","defaultRal":"3009","defaultNcs":"S 6030-Y80R","smoothPaint":true,"highlightStrength":0.18,"detectMetal":false}}}