# Как загрузить полный каталог Мечта.центра Адрес каталога: https://mechta.center/api/app/housing/catalog.json JSON Schema: https://mechta.center/api/app/housing/catalog.schema.json 1. Загружайте указанный HTTPS URL. Авторизация не нужна. 2. Используйте документ, если schema_version равен mechta-center.housing-catalog.v1, counts.total совпадает с длиной items, значения id уникальны, а generated_at читается как дата. 3. Обновляйте локальный кэш при запуске приложения, но не чаще одного раза в 6 часов. Публикация выполняется ежедневно и сразу после изменения каталога или редакционного выбора. 4. Если документ пуст, повреждён или generated_at старше 48 часов, сохраните последнюю корректную копию и отметьте данные как временно устаревшие. Не заменяйте рабочий кэш пустым ответом. 5. Связывайте карточки по id/external_id. Заголовок и позиция элемента для этого не подходят. 6. Цена для показа — pricing.price. pricing.old_price и pricing.discount выводите только когда они не null. Наличие перепроверяется перед фиксацией интереса. 7. Показывайте золотую отметку «★ Выбор Мечта.центра» только если badges содержит объект с code=mechta_center_choice. Не определяйте выбор по тексту, номеру дома или позиции в массиве. 8. Полное обоснование выбора находится в editorial. Ссылка на историю — editorial.story_url. 9. Порядок изображений уже нормализован. Для общего показа используйте media.cover, для галереи — media.photos, планы — media.plans. Все URL абсолютные. 10. Если media.quality.status не complete, учитывайте media.quality.warnings. Не дорисовывайте и не подменяйте отсутствующие фотографии. 11. Для квартир квартала «Пение птиц» собственный участок существует только при measurements.has_private_plot=true; площадь берите из measurements.land_area. 12. Это полный каталог. Не загружайте его через configured-sections offers: тот интерфейс предназначен для коротких подборок и ограничивает количество элементов. 13. Перед заявкой передавайте external_id и source_url. Получение ответа сервера не означает подтверждённую бронь: наличие подтверждает специалист. 14. Общий вид карточки задаётся в presentation: card.field_order управляет порядком характеристик в списке, detail.field_order — в подробной карточке, field_labels — их подписями, primary_action.title — текстом основной кнопки. Для неизвестного template_version используйте встроенный шаблон приложения.