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

# Action schema

> Complete FzD Action Wheel action field reference.

| Field         | Type             | Behaviour                                                |
| ------------- | ---------------- | -------------------------------------------------------- |
| `id`          | string, required | Non-empty and unique across the complete menu.           |
| `label`       | string, required | Display label, limited to 48 bytes.                      |
| `icon`        | string           | Font Awesome Free Solid name; value limited to 96 bytes. |
| `disabled`    | boolean          | Show but prevent activation.                             |
| `job`         | string           | Require an exact active job name.                        |
| `jobGrade`    | integer          | Require at least this grade; also requires `job`.        |
| `items`       | string or table  | Require an item or all item quantities.                  |
| `metadata`    | table            | Require matching player metadata.                        |
| `inVehicle`   | boolean          | Require in-vehicle or on-foot state.                     |
| `condition`   | function         | Custom visible/disabled callback.                        |
| `keepOpen`    | boolean          | Leave the wheel visible after a leaf action.             |
| `clientEvent` | string           | Trigger a local client event.                            |
| `serverEvent` | string           | Trigger a server event request.                          |
| `command`     | string           | Execute a client command without a leading slash.        |
| `payload`     | any              | Passed to named events.                                  |
| `children`    | action array     | Open a submenu instead of dispatching an outcome.        |

## Validation rules

* IDs must be unique across the whole menu, including nested children.
* Menu nesting is limited to five levels including the root.
* Labels are truncated to 48 bytes by the resource.
* Titles are truncated to 32 bytes.
* Icon values are truncated to 96 bytes.
* Non-empty `children` take precedence over event/command outcomes.

## Recommended IDs

Namespace IDs to your resource:

```lua theme={null}
id = 'my_garage:repair'
```

This prevents collisions between unrelated integrations.
