{
  "name": "PomoDone",
  "short_name": "PomoDone",
  "description": "Get things done with Pomodoro focus sessions",
  "_note": "start_url and scope are relative so the same manifest works at the domain root and under /todo-list/, matching sw.js. At /todo-list/ they resolve to exactly what the previous absolute values were, so an already-installed app keeps its identity.",
  "start_url": "./",
  "scope": "./",
  "display": "standalone",
  "display_override": ["standalone", "minimal-ui", "browser"],
  "_note_orientation": "No 'orientation' key on purpose. Setting it to portrait-primary locks an INSTALLED Android app out of landscape entirely — the phone rotates and the app does not. Leaving it unset lets the device decide, which is what a user expects.",
  "background_color": "#fef8f4",
  "theme_color": "#ae2f34",
  "categories": ["productivity", "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"
    },
    {
      "_note": "A separate maskable entry, not a combined 'any maskable' purpose: a launcher crops a maskable icon to a circle, so the artwork has to be pulled in and cannot double as the un-cropped one.",
      "src": "icons/icon-maskable-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    },
    {
      "src": "icon.svg",
      "sizes": "any",
      "type": "image/svg+xml",
      "purpose": "any"
    }
  ],
  "shortcuts": [
    { "name": "Start a focus session", "url": "./?tab=pomodoro", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192" }] },
    { "name": "Tasks", "url": "./?tab=tasks", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192" }] },
    { "name": "Today's journal", "url": "./?tab=journal", "icons": [{ "src": "icons/icon-192.png", "sizes": "192x192" }] }
  ]
}
