# Procedure picker

> Dashboard component reference for the Procedure picker, which stages the procedure for a unit's next start.

The **Procedure picker** is a dropdown of the bound unit's procedures that stages the
pick for the unit's next start (see [Process](process)). The pick lands in the unit's
shared staging area, station-wide: every circuit sees the same prepared run, and a Button
firing the unit's start command is what actually starts it. It is part of the Process
family: it is not offered in the dashboard's Add palette. A unit's screen hosts it, and a
model's screen template carries it with the unit resolved when a unit opens the screen.

## Properties {#properties}

| Property | What it does | Values | Default |
|---|---|---|---|
| Label | Optional caption shown above the picker. | text | empty |
| Unit | The unit whose procedures the picker offers and whose staging it writes. The editor offers every unit of every model as `Model · Unit`. | a unit | none |

## Conduct {#conduct}

The dropdown lists the bound unit's procedures with **(none)** at the head; picking
`(none)` stages nothing. Staging answers on the component's own line (`Staged`), and a
staging that could not persist leaves the previous one intact — the picker snaps back to
what is actually staged.

In place of the dropdown the component states why it cannot offer one: `(no unit)` while
nothing is bound, `(no procedures)` while the bound unit has none, and `(unavailable)`
where the Process service is not running.

## Permission {#permission}

Staging is rechecked at the moment of the pick:

- On a unit's Process screen, it takes the **Run procedures** permission.
- On a dashboard, it takes the **Dashboard operation** permission **and** the
  **Run procedures** permission.

While the operator may not stage, the dropdown is disabled and its tooltip carries the
reason.
