Counter store with sync increment / decrement / reset, async fetch action,
and localStorage persistence — the three patterns the Redux
migration page demonstrates, in one runnable example.
Counter
0
last bumped: never
Async action (fetch + load/error states)
idle
Counter state persists to localStorage; reload the page to
see it survive.