# Download metadata

The single source of truth for what the download page advertises. Update this file and
`download.html` together — if they ever disagree, one of them is lying to a visitor.

---

## Current release state

| Field | Value |
| --- | --- |
| `release_state` | `public-playtest` |
| Allowed values | `private-development` · `public-playtest` · `early-access` · `released` |
| Primary action label | Download the current Android build |
| Primary action target | `DOWNLOAD_URL_TO_SET` |
| Status chips shown | "Current build: playtest", "Still in development" |

`DOWNLOAD_URL_TO_SET` is a literal placeholder. It appears in `download.html` in the
primary download button. Replace it with the real URL of the hosted APK before the site
goes public — see the README, "Replacing the download link".

---

## Current build

| Field | Value | Source |
| --- | --- | --- |
| File name | `FreezeOrSneeze-playtest.apk` | The file at the repository root |
| Version name | `1.0` | `app/build.gradle.kts` → `versionName` |
| Version code | `1` | `app/build.gradle.kts` → `versionCode` |
| Build date | 2026-09-10 | File modification time of the APK |
| Size | 11,096,858 bytes (10.6 MB) | `stat` |
| Minimum Android | 7.0 (API 24) | `app/build.gradle.kts` → `minSdk` |
| Target Android | 14 (API 34) | `app/build.gradle.kts` → `targetSdk` |
| Application ID | `com.example.freezeorsneeze` | `app/build.gradle.kts` → `applicationId` |
| Permissions requested | none | `app/src/main/AndroidManifest.xml` — the manifest declares no `uses-permission` element at all |
| Signing | debug | Release builds are not yet signed with a release key |
| Minification | off (`isMinifyEnabled = false`) | `app/build.gradle.kts` |
| SHA-256 | `38b1f8d93879b6b8082e606cdbfd730c0e623cde0b77b2e5425c5f364f02e8ad` | `sha256sum FreezeOrSneeze-playtest.apk` |
| Page last updated | 2026-09-14 | Manual |

### Verifying the checksum

```bash
sha256sum FreezeOrSneeze-playtest.apk
```

```powershell
certutil -hashfile FreezeOrSneeze-playtest.apk SHA256
```

```bash
shasum -a 256 FreezeOrSneeze-playtest.apk
```

### Reading version fields straight out of an APK

The table above takes the version from the Gradle build file. To read them from the built
APK itself, use `aapt2` from the Android SDK build tools:

```bash
aapt2 dump badging FreezeOrSneeze-playtest.apk | head -n 2
```

That prints `package: name=... versionCode=... versionName=...` and the `sdkVersion` /
`targetSdkVersion` lines. Prefer this over the Gradle file whenever the two could have
drifted.

---

## Known limitations advertised on the page

Keep this list and the "Known limitations of this build" block in `download.html` in step.

- Emulator-tested only; no physical device has been used.
- Portrait only; no tablet or landscape layout.
- TalkBack traversal, focus order and live regions are untested.
- English only.
- Balance and pacing are still being tuned.
- Saved progress is not guaranteed across future builds.
- Debug-signed; not a store release and not final.

---

## Release notes shown on the page

### Playtest build — 2026-09-10

- The complete Enamel Town visual pass: patients, cure icons, arena, map, clinic, Doctor's
  Guide, Shift Report and Sprout.
- Sprout grows across five stages and keeps everything gained.
- All eight places on the City Health Map have their own floor.
- One persistent top bar; temporary information moved to overlay pills, capped at two.
- The illness legend became a pull-up Chart sheet, available during a shift.
- Chickenpox and measles separated by a non-colour difference.
- Light and dark appearance, plus four town themes.
- A reduced-motion setting, honoured throughout.
- Seasonal events fixed so they no longer run all year.
- Two-player mode removed; the game is single player.

---

## Moving to another release state

### To `private-development`

1. Remove the download button from `download.html`; keep the page and its structure.
2. Replace the release card body with what is being worked on and what comes next.
3. Change the two chips to a single `chip--soon` chip reading "In private development".
4. Change the home page "Where to play" card to match.
5. Set `release_state` above.

### To `early-access`

1. Keep the download button; point it at the early-access build.
2. Change the chips to "Current build: early access" and "Progress carries forward" — the
   second one only once that is actually true.
3. Update the build table, the checksum, the limitations and the release notes.
4. Set `release_state` above.

### To `released`

1. In `download.html`, change the primary action to **Get it on Google Play**, pointing at
   the store listing. Use Google's official badge, at the size their brand guidelines
   require.
2. Change the chips to a single `chip--live` chip reading "Available on Google Play".
3. Replace the single-build table with a short version history. Keep publishing a SHA-256
   only for any APK still offered directly; a Play install does not need one.
4. On `index.html`, change the "Where to play" card heading from "Android build available"
   to "Available on Google Play" and its button to the same store link.
5. Remove "Still in development" everywhere it appears — it is in `index.html`,
   `download.html` and `about.html`.
6. Set `release_state` above.

No layout, stylesheet or navigation change is needed for any of these. The release card is
deliberately self-contained.
