# Step Away Launch Release v2.1

This release fixes the server load issue where the app could fail with:

`Step Away failed to load: data/cards.json`

The app now loads public launch content through the PHP content endpoint instead of relying on direct browser access to `/data/*.json`.

## What changed

- Added `api.php?endpoint=content` for public app content.
- Kept `/data` protected by `.htaccess`.
- Updated PWA/service worker cache to v21.
- Updated app loader to fetch cards/cases/campaigns/wrinkles/settings through PHP, with direct-file fallback where allowed.
- Added Admin Pack Manager.
- Added pack upload, validation and import.
- Added self-contained case pack template.
- Added installed pack registry.

## Add new content

Open `admin.php`, enter the admin password, then use **Pack Manager**.

Workflow:

1. Create or copy a self-contained JSON pack.
2. Upload it in Pack Manager or place it in `/content/packs/`.
3. Validate it.
4. Click **Import / update pack**.

The app does not need regenerating for normal new cases, campaigns or wrinkles.

## Writable files/folders

Make these writable on your PHP host:

- `data/community.json`
- `data/global-log.json`
- `data/profiles.json`
- `data/submissions.json`
- `data/share-index.json`
- `data/installed-packs.json`
- `data/saves/`
- `content/packs/` if using admin upload

Change the admin password in `admin.php` before public launch.
