# RCWeb Stack Above Controller

The **Stack Above Controller** app (`app/stack-above-c`) is the phone companion for the Stack Above display. Each player joins from the QR code, keeps a private hand, and sends legal reset-loop moves back to the main screen.

![icon](pwa-512x512.png "Stack Above Controller Icon")

## What it does

- **Private hand view**: Shows each player's personal cards and highlights the number or reset cards that can be played now.
- **Simple turn actions**: The phone exposes start, draw, and sit-out controls so younger players can make a move quickly.
- **Fast resync**: The controller stores only a player id and name locally; the display pushes fresh snapshots whenever the room state changes.

## How it works

- **Display-driven snapshots**: `stack-above` sends `receiveSnapshot` updates containing the current public table state and this player's hand.
- **Simple action calls**: The phone sends back `playCard`, `drawCard`, and `restRound` requests using `rc.sendFunctionCall`.
- **Programmatic SVG hand**: The phone renders the same generated card faces as the display so both apps stay visually aligned without static card image files.
