{
    "_comment": [
        "Манифест витрины. Статичный файл в public/, поэтому name/short_name и цвета здесь захардкожены",
        "по APP_NAME и дефолтной палитре темы (app/Models/Theme::DEFAULT_COLORS, primary #0074C1, bg #FCFDFE):",
        "манифест отдаётся Laravel как обычная статика и не проходит через Blade/Inertia.",
        "Иконки: PNG 192/512 (purpose any) сгенерированы ImageMagick из icons/app-icon.svg, maskable 512 —",
        "тот же глиф, ужатый до 80 % (padding 10 % с каждой стороны), чтобы платформенная маска не срезала ручку.",
        "SVG оставлен последним как вектор-фолбэк для браузеров, понимающих image/svg+xml (purpose any).",
        "apple-touch-icon 180×180 (непрозрачный фон) подключается из resources/views/app.blade.php:",
        "iOS поле icons манифеста не читает и ставит на домашний экран только свой тег.",
        "Safari/iOS игнорирует поле _comment — это допустимое расширение манифеста."
    ],
    "id": "/",
    "name": "Storefront",
    "short_name": "Storefront",
    "description": "Витрина магазина: каталог, корзина и оформление заказа.",
    "lang": "ru",
    "dir": "ltr",
    "start_url": "/",
    "scope": "/",
    "display": "standalone",
    "orientation": "portrait",
    "theme_color": "#0074C1",
    "background_color": "#FCFDFE",
    "categories": ["shopping"],
    "icons": [
        {
            "src": "/icons/icon-192.png",
            "sizes": "192x192",
            "type": "image/png",
            "purpose": "any"
        },
        {
            "src": "/icons/icon-512.png",
            "sizes": "512x512",
            "type": "image/png",
            "purpose": "any"
        },
        {
            "src": "/icons/icon-512-maskable.png",
            "sizes": "512x512",
            "type": "image/png",
            "purpose": "maskable"
        },
        {
            "src": "/icons/app-icon.svg",
            "sizes": "any",
            "type": "image/svg+xml",
            "purpose": "any"
        }
    ]
}
