3 Commits
Author SHA1 Message Date
jw b6fb6b743d fix(moonlaunch): disclose the telemetry and analytics the game actually sends
The policy described leaderboards and cloud save as the only things that leave
the device, and stated outright: "This data is not transmitted to our servers
unless you use the leaderboard or cloud save features." That is not true.

- Gameplay telemetry POSTs to api.such.software on every platform, automatically
  rather than opt-in, tagged with the anonymous device ID, display name and
  platform. It carries level starts and completions with times and stars, how a
  run ended (cause, hazard, speed, fuel, progress through the level), rewarded-ad
  and share actions, purchase attempts, and error messages. None of it was
  disclosed.
- Google Firebase (Analytics and Crashlytics) ships in the mobile builds and
  receives the same device ID as a user property alongside app version, device
  model, OS version and language. It was not mentioned anywhere, including in the
  third-party recipients table.
- Cloud save uploads automatically on every save, not only on an explicit action,
  and its payload now also carries store purchase receipts (the ledger that stops
  a purchase being credited twice).
- The page claimed Google AdSense serves ads on the web build. It does not:
  web/custom_shell.html records that the AdSense placeholders were removed and
  web monetization is handled in-game. Removed the claim and the AdSense row from
  the recipients table.

Left as-is: the statement that iOS serves non-personalized ads and does not
access the IDFA. No code path presents the ATT prompt, so the identifier stays
zeroed and that claim holds.
2026-08-15 11:17:50 -04:00
jw a6ad27b3e2 fix(moonlaunch): stop advertising paid desktop builds as free
The product page claimed "Free on iOS, Android, web, desktop" in its meta
description, OpenGraph description, and SoftwareApplication JSON-LD, and backed
that with operatingSystem "Android, iOS, Web, Windows, macOS, Linux" alongside
price "0".

Desktop is not free. The Windows/macOS/Linux builds are itch.io downloads behind
a $1.99 minimum purchase; only iOS, Android, and the embedded browser build are
free. Declaring price 0 across an OS list that includes the paid desktop targets
misstates the offer to search engines, which consume the JSON-LD for rich results.

Scope the free-offer structured data to the platforms that are actually free. The
visible Cross-Platform card still lists all six targets, which is accurate: those
builds do exist, they are simply not all free.
2026-08-14 07:47:13 -04:00
jw c50f4d29f6 fix(bloomword): stop claiming browser play
The site said Bloomword was "playable free in the browser at bloomword.earth"
in four places. It is not: bloomword.earth is the marketing and transparency
site, and iOS and Android are the only platforms you can play on.

This is the full-surface release standard's web-app gate -- marketing copy
flips from "learn more" to "play" only after play.<domain> passes a parity
proof against the mobile core loop -- and that surface does not exist yet
(play.bloomword.earth does not resolve). Every claim becomes "learn more at
bloomword.earth" with iOS/Android named as the only playable platforms, per
the standing item in the Bloomword roadmap.

The VideoGame structured data already declared gamePlatform [iOS, Android]
and needed no change; the footer link carries no play claim and is untouched.

Not built or typechecked: this workstation has no node. The changes are
string literals inside existing quoted copy, with one JSX text edit that
keeps its {" "} separator and closes the sentence after the anchor.
2026-08-13 10:20:04 -04:00