Very interesting thoughts. And what you’ve pointed out about Tracker is true.
Specifying fields should be done under the hood because most people just forget or don’t have the discipline to do so.
We can make “stores” on the client by dumping what we get from subscriptions or methods into null collections. Then as state changes in our App we can record these state mutations into our local collections themselves. but what about data persistence with the server? The truth is reactivity to the server isn’t a requirement for most apps. Whatever happened to save buttons? you know that thing you click when you want something to be saved? I really feel state mutations can be captured in a log of sorts and time travel is just a rehydration of the current state back to one of the log entries. Persistence to the server can be achieved via direct user interaction or on some set interval method call. I dunno, I’ve been thinking the same thoughts as you lately… good post!