{
  "name": "Vecqua: Laneline Engine",
  "short_name": "Laneline",
  "description": "Offline-first pacing engine for age-group competitive swimmers.",
  "id": "/",
  "start_url": "./index.html",
  "scope": "./",
  "display": "standalone",
  "orientation": "portrait",
  "background_color": "#f1f5f9",
  "theme_color": "#0f172a",
  "categories": ["sports", "health", "utilities"],
  "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-maskable-192.png", "sizes": "192x192", "type": "image/png", "purpose": "maskable" },
    { "src": "icons/icon-maskable-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" },
    { "src": "icons/icon.svg", "sizes": "any", "type": "image/svg+xml", "purpose": "any" }
  ],
  "shortcuts": [
    { "name": "Log a race", "short_name": "Log", "description": "Jump straight to the Race Logger",
      "url": "./index.html?go=log", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png" }] },
    { "name": "Meet Prep", "short_name": "Prep", "description": "Calibrate your race targets on deck",
      "url": "./index.html?go=prep", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png" }] },
    { "name": "Profile", "short_name": "Profile", "description": "Mastery, tiers, and your data",
      "url": "./index.html?go=profile", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png" }] }
  ],
  "screenshots": [
    { "src": "icons/screenshot-prep.png", "sizes": "780x1688", "type": "image/png", "form_factor": "narrow", "label": "Race-day pacing targets and cue" },
    { "src": "icons/screenshot-practice.png", "sizes": "780x1688", "type": "image/png", "form_factor": "narrow", "label": "Daily practice and Integrity Streak" }
  ]
}
