{
  "name": "EnviroHub - Storm Water Compliance Management",
  "short_name": "EnviroHub",
  "description": "Environmental compliance management platform for organizations and inspectors",
  "start_url": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#1f2937",
  "orientation": "portrait-primary",
  "scope": "/",
  "lang": "en-US",
  "categories": ["business", "productivity", "utilities"],
  "icons": [
    {
      "src": "/icons/icon-72x72.png",
      "sizes": "72x72",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-96x96.png",
      "sizes": "96x96",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-128x128.png",
      "sizes": "128x128",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-144x144.png",
      "sizes": "144x144",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-152x152.png",
      "sizes": "152x152",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-192x192.png",
      "sizes": "192x192",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-384x384.png",
      "sizes": "384x384",
      "type": "image/png",
      "purpose": "maskable any"
    },
    {
      "src": "/icons/icon-512x512.png",
      "sizes": "512x512",
      "type": "image/png",
      "purpose": "maskable any"
    }
  ],
  "screenshots": [
    {
      "src": "/screenshots/mobile-inspection.png",
      "sizes": "375x812",
      "type": "image/png",
      "platform": "mobile",
      "label": "Mobile inspection interface"
    },
    {
      "src": "/screenshots/tablet-dashboard.png",
      "sizes": "768x1024",
      "type": "image/png",
      "platform": "tablet",
      "label": "Tablet dashboard view"
    }
  ],
  "features": [
    "camera",
    "geolocation",
    "microphone",
    "push-notifications",
    "bluetooth",
    "background-sync"
  ],
  "capabilities": {
    "web_app": {
      "camera": true,
      "geolocation": true,
      "microphone": true,
      "notifications": true,
      "bluetooth": true,
      "background_sync": true,
      "offline_support": true
    }
  },
  "prefer_related_applications": false,
  "edge_side_panel": {
    "preferred_width": 400
  },
  "shortcuts": [
    {
      "name": "New Inspection",
      "short_name": "Inspect",
      "description": "Start a new site inspection",
      "url": "/inspections/new",
      "icons": [
        {
          "src": "/icons/shortcut-inspection.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "Camera",
      "short_name": "Photo",
      "description": "Take inspection photos",
      "url": "/camera",
      "icons": [
        {
          "src": "/icons/shortcut-camera.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "Scanner",
      "short_name": "Scan",
      "description": "Scan QR codes",
      "url": "/scanner",
      "icons": [
        {
          "src": "/icons/shortcut-scanner.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    },
    {
      "name": "Offline Mode",
      "short_name": "Offline",
      "description": "Access offline data",
      "url": "/offline",
      "icons": [
        {
          "src": "/icons/shortcut-offline.png",
          "sizes": "96x96",
          "type": "image/png"
        }
      ]
    }
  ],
  "file_handlers": [
    {
      "action": "/import",
      "accept": {
        "application/json": [".json"],
        "text/csv": [".csv"],
        "image/*": [".jpg", ".jpeg", ".png", ".gif"]
      }
    }
  ],
  "protocol_handlers": [
    {
      "protocol": "web+envirolink",
      "url": "/protocol-handler?url=%s"
    }
  ],
  "share_target": {
    "action": "/share",
    "method": "POST",
    "enctype": "multipart/form-data",
    "params": {
      "title": "title",
      "text": "text",
      "url": "url",
      "files": [
        {
          "name": "photos",
          "accept": ["image/*"]
        }
      ]
    }
  }
}
