pull down to refresh

I like this

5. Need a New Query Pattern Later?

I believe this is one of the strongest points to this pattern. If at a later date your JSON shape changes (expected), you can just add another column and create another index.
For example, you realise you need to query by user_id:
SQL ALTER TABLE events ADD COLUMN user_id INTEGER GENERATED ALWAYS AS (json_extract(data, '$.user.id')) VIRTUAL;
CREATE INDEX idx_events_user_id ON events(user_id);