@Kartik Agaram This article is wonderful. I've been wrestling with both aesthetics in the design of Hest, since there are several features that need the never-miss-a-frame smoothness of a video game (eg: panning and zooming and playing in the editor), and some that need the don't-do-work for battery efficiency (eg: shut down the never-miss-a-frame run loops if we can tell that they aren't going to produce any changes), and some that need a different kind of don't-do-work for the sake of fast execution (eg: running end user code as fast as possible, but in a way that is still perfectly deterministic and behaves identically to the slow-motion debug execution). It's been really hard to balance these aesthetics, since these various features that need different aesthetics all touch the same data, so the possibility space for how I can represent that data is wildly constrained. Can't use flat lists and iterate over everything every frame (great for frame rate, terrible for full-speed execution), can't store relationships between entities (great for full-speed, terrible for worst-case), can't use partial application, can't use per-entity caching...