# Cascading dropdowns and a table preview

This SDK-only example reproduces a Make → Model → Tune workflow using synthetic
data. Selecting a make populates models, selecting a model populates tunes, and
selecting a tune displays a 2 × 12 preview table. Changing an upstream selection
clears dependent selections and the preview in one atomic patch. It never accesses
an ECU or copies a customer's plugin/database.

Requires host 0.8.3 or later. Build with CMake/Ninja like the
[starter tutorial](../../docs/GETTING_STARTED.md), substituting this example's
directory. Load its generated `plugin.json` and open Examples/Cascading selections.
The module is `cascading-selects.dll` or `cascading-selects.so`.

See [plugin.cpp](plugin.cpp) for explicit `ET_UI_EVENT_SELECTED` / F64 events,
`Ui::selectedIndex`, empty options, completion diagnostics, and refreshing a
plugin-owned table through `ET_UI_VALUE` rather than stale initial `ET_UI_DATA`.
# Successive patches and autoselect

Each selection deliberately sends a status patch before the dropdown/preview
patch, using the same event revision. Host 0.8.3 applies these in order. Selecting
Yamaha demonstrates automatic selection of a single model and tune, including
an immediate preview without requiring extra clicks. Programmatic selection does
not emit user-input events.
