> ## Documentation Index
> Fetch the complete documentation index at: https://dev.polltheroom.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Readiness

> A deck can be saved half-finished. This is what stops it going on stage, and how the API tells you.

Two levels of rules apply to a deck, on purpose.

**Shape** is what every save must pass: the right types, the enums, the bounds, and the rules that tie one setting to another, such as a pair look needing several answers per person. A body that breaks shape answers `400` and `fix` names the field.

**Readiness** is the rest: a question, enough answers, a range that makes sense. A deck can be saved without it, because a person builds a deck in pieces. A room cannot start without it.

## `ready` and `problems`

Every deck read and every write answers with the readiness check, run for you:

```json theme={null}
{
  "ready": false,
  "problems": [
    { "step": 2, "overlay": 0, "path": "overlays.0.poll.options", "message": "At least two options" },
    { "step": 4, "path": "poll.prompt", "message": "Ask a question" }
  ]
}
```

`step` is the step index, `overlay` the card on that slide when it is a card, `path` where inside the step, and `message` the same sentence the presenter sees on the Present button. Fix what `problems` names before handing the deck over.

## The rules

| Widget                                                           | Needs, to go on stage                                 |
| ---------------------------------------------------------------- | ----------------------------------------------------- |
| Every widget                                                     | A question.                                           |
| Multiple choice, image choice, this or that, ranking, 100 points | At least two options. This or that takes exactly two. |
| Estimate                                                         | A guess range, and the real answer inside it.         |
| Radar                                                            | At least three axes.                                  |
| Place map                                                        | A place.                                              |
| Spin the wheel with a custom list                                | At least two names.                                   |
| Any card                                                         | On the slide. `x + w` and `y + h` at most 1.          |

The list per widget, generated from the code, is in the [reference](/reference/document-and-widgets).

## Where it runs

The same function runs in three places, so the message an agent reads and the message a presenter reads are the same words about the same poll: on every API read and write, on the editor's Present button, and at the door of a room.

<Tip>
  An agent does not need to keep its own copy of these rules. Read `problems`, fix what it names, read again.
</Tip>
