# Sandspiel

- Author: Max Bittker
- Source: https://github.com/MaxBittker/sandspiel
- Commit: 24a63c60428cae13714946118f025d5d1484b344 (gh-pages — the project's own published webpack build of
  master; master is at 9936e06b07a583aedfba9589c0cead2917f405fb)
- Licence: MIT (./LICENSE). Third-party licences of everything webpack bundled into the vendor chunk are in
  ./728.9f96bdc52b5e36a5d122.js.LICENSE.txt (React, react-router, regl, firebase, Sentry SDK, … — MIT/Apache-2.0/0BSD).
- Bundled font: Inconsolata (latin 400) from @fontsource/inconsolata 5.3.0, SIL OFL 1.1 (./vendor/inconsolata/LICENSE)
- Vendored files (from gh-pages): 728.9f96bdc52b5e36a5d122.js (+ .LICENSE.txt, unchanged), 354dd2ae780207d6d78d.module.wasm
  (the Rust cellular-automaton, unchanged), styles.css, assets/favicon-16x16.png, assets/favicon-32x32.png, LICENSE.
  Not vendored: the original index.html, main.*.js and 86.*.js (only modified copies are shipped, because the
  originals load ads/analytics/Sentry), source maps, the service worker/workbox, and assets/ (app-store badges,
  icons, and the PP Mondwest / PP NeueBit / ChiKareGo2 font files, whose licences do not allow redistribution;
  the app does not use them).
- Added by Web Curio: stage.html, main.stage.js, 86.18ce2c78560f6d42e213.stage.js, vendor/inconsolata/*, this file
- Modifications to the original (every edit is a literal string replacement):
  - stage.html (from gh-pages index.html): removed the apple-touch-icon, webmanifest, mask-icon and manifest links;
    Google Fonts Inconsolata → vendor/inconsolata/inconsolata.css; "/styles.css" and "/assets/…" made relative;
    removed the Google AdSense scripts and the ad slot (<style>.adslot_1…</style><ins class="adsbygoogle">);
    removed Google Analytics (gtag UA-54922012-3) and the a.sandspiel.club analytics script/pixel;
    loads main.stage.js instead of /main.3f730eb35aa6e8e4fb65.js; added a small inline script that adds a
    <base href> pointing at this folder and then calls history.replaceState to present the path as "/" — the app
    routes on location.pathname and pauses the simulation unless the path is "/"; plus the museum's CSP meta and
    sandbox shim.
  - main.stage.js (from main.3f730eb35aa6e8e4fb65.js): webpack public path `l.p="/"` → `l.p=""` (relative), and the
    chunk 86 file name now points to 86.18ce2c78560f6d42e213.stage.js.
  - 86.18ce2c78560f6d42e213.stage.js (from 86.18ce2c78560f6d42e213.js): Sentry error reporting is never initialised
    (`window.location.host.startsWith("localhost")||i.Ts({dsn:…` → `true||i.Ts({dsn:…`); removed the AdSense call
    `(adsbygoogle=window.adsbygoogle||[]).push({}),`; removed the orb.farm favicon <img> from the Info page.
- Features that do not work in the museum (left in place, blocked by the museum's CSP, no request leaves the page):
  Upload / sign-in / browse / voting (Firebase), the "Browse" gallery of community creations, and links to other
  sites. The sand simulation, all elements, wind (fluid) and Reset work fully offline.
