Behavior cookbook
Debounced input starts an async list operation and renders loading, empty, and result states.
The debounce flag belongs on the event declaration; the async function owns the request lifecycle.