Keyed optimistic updates for plain props and event handlers: props always reclaim a stale overlay so counters cannot drift, sync throws become rejections, repeat clicks on a pending key are refused, out-of-order resolves lose, and failures roll back with a readable error.
npx shadcn@latest add @zyeon/use-optimisticZyeon UI limits how often it can be asked, and useOptimistic hasn't had its turn. Its source will show here once it has.