# Store release — Spellgrove on Google Play and the App Store

## overview.md
```yaml
id: store-release
title: Store release — Spellgrove on Google Play and the App Store
area: ops
summary: Getting the game into the stores: the name (Spellgrove) and Rah's icon through the game and the site, the privacy policy, terms and support pages, in-app account deletion, a Codemagic pipeline for the Play bundle and the App Store archive, the store listings, and the checklist of what only Kris can do.
repo: land-of-lor (game/, site/, ci/, codemagic.yaml, workshop/brand, workshop/marketing)
depends_on: ["naming-and-brand","tag"]
parked: false
standing: Both store pipelines are green (2026-09-12); the listings, checks and launch date are Kris's own.
```

## Where this stands (2026-09-13)

The agent side is done: the name and Rah's icon through the game and the site; the privacy,
terms and support pages, live (the 002 review flag was cleared by the 2026-09-13 board sweep);
in-app account deletion; and the Codemagic pipeline, proven green on both stores on 2026-09-12
— Play internal testing build 8, App Store Connect build 5.
**Kris's own**, from `docs/handoff/store-release.md`: read the three legal pages; the Play
listing, Data safety and content rating; the App Store listing and privacy labels; TestFlight
testers; the reviewer account; the trademark and name checks; and the two decisions below —
who the app is for, as the stores ask, and a launch date.
No open issues. Past task files (to 2026-09-13): `workshop/historic-docs/epics/store-release/tasks/`.

## What this is

Kris, 2026-09-11, heading out for the night: *"I want to name the game and icon and get the
work done to get it ready for releasing to the stores … name is going to be Spellgrove …
The icon is the same one as was used for Lor Elementals … create whatever privacy policy
etc. we need and put it up somewhere on the spellgrove.com website … we will be setting up
code magic for automated releases … Do ALL that you can now … give me the list of whats
needed for the release when I pick this up tomorrow."*

The studio is **CoCreations Australia Pty Ltd** (ABN 86 632 857 277, cocreations.com.au). The
game is **Spellgrove**. The record of the name is `workshop/brand/naming.md`; the values every
surface reads are `workshop/brand/brand.json`.

## What landed on the first night (2026-09-11)

- **The name**, everywhere it was written: `brand.json` (title, store name, app label, the
  former titles, the support address, the package and bundle ids), the site, the game's
  project name, the title screen's wordmark, the web shell, the Android presets, the READMEs,
  the epics that named the old title. The sideload APK is `spellgrove-v31`.
- **The icon**: the Lor Elementals portrait of Rah (`workshop/brand/icon/source-192.png`) on
  the site's sky-and-hill, made into every size by `tools/icons/make-icons.py` — the Android
  launcher icons (legacy and adaptive), the full iOS set, Play's 512 and the App Store's 1024,
  a 1024×500 feature graphic, the site's favicon.
- **The legal and support pages** on spellgrove.com: `/privacy`, `/terms`, `/support` (one
  markdown source each, `site/src/lib/legal.ts`, with `.md` mirrors), linked from the footer
  with the support address `hello@spellgrove.com`.
- **Account deletion in the app** — both stores require it: the account page's *Delete my
  account…*, a `delete_account` request that takes the home Area, the sessions, the
  identity, the bodies (live and stored) and the tag standing with it; refused for an account
  that owns authored world content.
- **The Codemagic pipeline**: `codemagic.yaml` with a Play-bundle workflow (Linux) and an
  App-Store-archive workflow (Mac), on a `store-v*` tag; `ci/install-godot.sh`,
  `ci/export-android-store.sh` (run on the laptop: a signed `spellgrove.aab`, jar verified),
  `ci/export-ios-store.sh`; `game/VERSION` = 1.0.0; an `Android-aab` preset.
- **The listing copy and the questionnaire answers** for both stores:
  `workshop/marketing/store-listing.md`.

## What only Kris can do

The consoles. Neither store lets an agent make the app record: Google Play needs the
developer account (and its identity check), the app created in the Play Console and the
very first bundle uploaded by hand; App Store Connect needs the app record made under the
CoCreations team. Codemagic needs the signing secrets pasted into its UI (never into the
repo). The ordered list, with what each step wants, is `docs/handoff/store-release.md` —
the tasks below are the same list on the board.

## Decisions still open (Kris's)

- **Who the app is for, as the stores ask it.** *Kris's call, 2026-09-12: under-13s play; the
  route is platform sign-in (Game Center, Google Play Games), whose player ids need no consent
  of ours and whose accounts a parent already approved — a later epic, not an age gate. Until
  it ships the declaration stays 13+.* The original note: Google Play's target-audience question and
  Apple's age rating. Declaring children under 13 as a target audience puts the app under
  Play's Families policy (and COPPA in the US), which for an app with email sign-up means a
  parental-consent step the game does not have. The alternative both stores accept for a
  family game: an all-ages content rating with the target audience 13+, the listing not
  written as child-directed, and the terms making a parent responsible for an under-18's
  account (they do). The privacy policy's children section is true under either.
- **A launch date and a price.** Free, no purchases, is what the pages say today.
- **Whether the sideload APK on `/play` stays** once the store build is out (it can — Play
  does not object to a developer's own site).

## Non-goals

- Not marketing. Screenshots and the feature graphic are here because the stores demand
  them; the campaign is `workshop/marketing/`.
- Not the Kickstarter (`kickstarter-prelaunch`).
- Not a trademark filing (`naming-and-brand` Q003) — noted on the checklist, not done here.

## deliverables (1)

- #27 — Spellgrove — the name, the icon, and a build on both stores' pipelines (2026-09-12) — /deliverables/27