{
  "name": "Reroll",
  "short_name": "Reroll",
  "description": "Platform board game Indonesia: marketplace board game bekas & preloved, database game, komunitas, event, dan alat main.",
  "start_url": "/",
  "display": "standalone",
  "_background_color_note": "The colour Android paints its generated splash. It cannot follow the reader's theme — one static value, no dark variant — where the in-app launch screen (components/pwa/AppSplash.tsx) does. White rather than the app's dark #0a0a0a because iOS gives an installed PWA a blank white field whatever this says, so white is the value that is seamless on both platforms for a light reader and costs a dark reader one white frame on Android only; black would invert that and still not match iOS. The icon it draws here is transparent, so it must be a colour the mark reads on: the white gaps between its arrow layers are transparency, and on near-black the navy arrow disappears.",
  "background_color": "#ffffff",
  "theme_color": "#2563eb",
  "_share_target_note": "Share a WTS post from WhatsApp/Discord straight into the bulk importer. GET, not POST, so it needs no service-worker fetch handler — the shared text arrives as ?text=. Installed Chrome/Android only; iOS Safari does not implement share_target, where the paste box is the way in.",
  "share_target": {
    "action": "/sell/import",
    "method": "GET",
    "_enctype_note": "Only meaningful for POST, but Chrome validates the field regardless of method and logs 'Enctype should be set to...' on every load without it. Stated explicitly to keep the console clean.",
    "enctype": "application/x-www-form-urlencoded",
    "params": {
      "title": "title",
      "text": "text",
      "url": "url"
    }
  },
  "_shortcuts_note": "Android's launcher long-press menu, and the Windows/Chrome desktop jump list. iOS Safari does not implement shortcuts at all, so this is additive and costs nothing there. The launcher takes a platform-defined number, in practice FOUR — declaring more and hoping is how a reader learns the fifth entry does not exist, so this is a choice of four rather than a list. Copy is INDONESIAN, matching `description` above and for the same reason: a manifest has no language negotiation, the language this app resolves is a client-side value the server cannot know at render time, and the majority of readers are Indonesian. Each name is the label the screen itself carries (nav.utilities, plays.new.title, nav.sell, nav.chat) so a shortcut cannot drift from the thing it opens.",
  "shortcuts": [
    {
      "name": "Alat main",
      "short_name": "Alat main",
      "description": "Alat kecil untuk dipakai saat game sedang berjalan.",
      "url": "/utilities",
      "icons": [
        {
          "src": "/tools-icon-192.png",
          "sizes": "192x192",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "Catat sesi main",
      "short_name": "Catat main",
      "description": "Simpan game yang baru kamu mainkan.",
      "url": "/plays/new",
      "icons": [
        { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }
      ]
    },
    {
      "name": "Jual game",
      "short_name": "Jual",
      "description": "Pasang iklan game yang mau kamu lepas.",
      "url": "/sell",
      "icons": [
        { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }
      ]
    },
    {
      "name": "Obrolan",
      "short_name": "Obrolan",
      "description": "Chat dengan penjual dan pembeli.",
      "url": "/messages",
      "icons": [
        { "src": "/icon-192.png", "sizes": "192x192", "type": "image/png" }
      ]
    }
  ],
  "icons": [
    {
      "src": "/logo.svg",
      "sizes": "any",
      "type": "image/svg+xml",
      "purpose": "any"
    },
    {
      "src": "/icon-192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icon-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "any"
    },
    {
      "src": "/icon-maskable-512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable"
    },
    {
      "src": "/apple-icon.png",
      "sizes": "180x180",
      "type": "image/png",
      "purpose": "any"
    }
  ]
}
