# Heads Up Charades LCMA Sample

Heads Up Charades is a free Mini App Center sample for nearby student
icebreakers. One player guesses while the group gives clues, acts, or gestures.
The first slice includes quick play, room hosting, room joining, safe starter
decks, 30/60/90 second rounds, pass/correct controls, scorekeeping, and recent
round history.

The sample uses only the current `localchat-miniapp-v1` bridge:

- `localchat.room.create(params)`
- `localchat.room.join(params)`
- `localchat.room.message(params)`
- `localchat.room.poll(params)`
- `localchat.storage.local.get(key)`
- `localchat.storage.local.set(key, value)`
- `localchat.ui.showToast(input)`
- `localchat.ui.setKeepScreenOn(enabled)`

The room protocol prefix is `localchat.headsup.v1`. Hosts broadcast
`session.created`, `player.joined`, `round.started`, `word.marked`,
`round.finished`, and `score.reset` events. P0 uses safe built-in word decks and
does not collect names, photos, voice, contacts, precise location, or account
identity.

## Package

From `apps/gobaby_transfer`:

```sh
dart --disable-dart-dev tool/lcma_packager.dart \
  --source samples/mini_apps/heads_up_charades \
  --output build/mini-app-center/heads-up-charades-0.1.0.lcma \
  --metadata build/mini-app-center/heads-up-charades-0.1.0.submission.json \
  --artifact-url https://localchat.me/v1/mini-app-center/artifacts/<staged-package-storage-key> \
  --key-id localchat-miniapp-beta-<developer> \
  --private-key-seed-base64url <developer-signing-seed>
```

For local unsigned smoke checks, omit `--private-key-seed-base64url` and keep
the generated package out of external beta submissions.

## Smoke Tests

These tests package and validate the committed sample:

```sh
flutter test test/lcma_packager_test.dart --plain-name "packager validates the repository Heads Up Charades sample"
```
