Finally tracked down a persnickety (and very bad) bug in #Vizier (https://github.com/VizierDB/vizier-scala/issues/196). In general, I love working with reactive frameworks, but when the abstraction breaks, it breaks hard. With the possible exception of Airstream (which I sadly learned of too late), reactive frameworks have no concept of collections with fine-grained deltas (insert, delete, update), nor any way for the user to declaratively provide finer-grained deltas for specific reactive types.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!