{
  "name": "Peregrina",
  "short_name": "Peregrina",
  "description": "Estacionamiento y camping para la peregrinación, resueltos antes de salir de casa. Y dónde comer, cuando llegues.",
  "start_url": "/",
  "display": "browser",
  "background_color": "#15233E",
  "theme_color": "#15233E",
  "lang": "es-AR",
  "icons": [
    { "src": "/peregrina/icono-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
    { "src": "/peregrina/icono-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
    { "src": "/peregrina/icono-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
  ],
  "_nota": [
    "JSON no admite comentarios y esto hay que dejarlo escrito, así que va como un miembro que la",
    "especificación de Web App Manifest ignora por desconocido. No lo borres sin leerlo.",

    "POR QUÉ display ES 'browser' Y NO 'standalone'. Acá decía standalone, y con eso Chrome en",
    "Android ofrece 'Instalar app' — se sabe que aparece: el CSS de impresión de /peregrina/padron",
    "esconde a mano lo que flota sobre la página, y nombra ese botón. El problema es que abajo no",
    "hay ninguna app. No existe un service worker en el repo, todas las pantallas son",
    "force-dynamic (o sea que emiten no-store) y el QR del voucher se dibuja en el servidor. La",
    "app instalada es el mismo sitio sin barra de direcciones: sin señal no abre nada, y encima se",
    "queda sin el botón de recargar y sin la URL para copiar.",

    "Eso importa acá y no en cualquier producto, porque este producto le dice a la persona",
    "'guardalo antes de salir'. La que sigue ese consejo y en vez de la captura de pantalla",
    "instala la app llega al portón de un camping, a las seis de la mañana, con una app que no",
    "abre — y ya no tiene la pestaña donde estaba el QR. Prometer una app que no funciona sin red",
    "es peor que no ofrecer ninguna.",

    "SE EVALUÓ LA OTRA SALIDA —un service worker de alcance mínimo que cachee sólo el voucher y el",
    "pase ya visitados— y se descartó. Un service worker es la única pieza del navegador que puede",
    "servir una respuesta VIEJA sin preguntarle al servidor, y este sitio mueve plata: una pantalla",
    "de finanzas, un cupo o un estado de reserva servidos de una caché vencida no se leen como un",
    "error, se leen como un dato. Un service worker mal hecho sobre esto es peor que la app que no",
    "abre, y bien hecho hay que mantenerlo (versión, purga, actualización) durante el fin de semana",
    "en el que nadie va a poder desplegar nada.",

    "Los tres caminos que sí funcionan sin red siguen estando, y están escritos en el voucher: la",
    "captura de pantalla, la lámina descargable (/api/peregrina/pase/<orden>, un HTML autocontenido)",
    "y el papel. Ninguno depende de que el navegador guarde algo.",

    "LO QUE ESTE ARCHIVO NO ALCANZA A APAGAR: en iOS, 'Añadir a pantalla de inicio' abre igual en",
    "modo standalone porque app/layout.tsx declara apple-mobile-web-app-capable. Es una decisión",
    "del layout raíz y no de este manifest. La diferencia práctica es que iOS no lo OFRECE solo:",
    "hay que ir a buscarlo. Si algún día se quiere cerrar esa puerta también, el cambio va allá.",

    "La descripción también cambió: decía 'Estacionamiento, alojamiento y comida'. La comida NO se",
    "vende ni se reserva por Peregrina, se listan comercios que cobran por su cuenta. Ahora es la",
    "misma línea que MARCA.descripcion en lib/brand/peregrina.ts, que es la que ya se corrigió por",
    "el mismo motivo."
  ]
}
