Classes
Hampshire, the foundation underneath Tinderbox and Storyspace, has a class called Hypertext. A Hypertext is a collection of Nodes (notes, containers, agents, adornments) and Links; it's the base class for "a node-and-link hypertext system".
Of course, its responsibilities have grown over time. (Whose don't?) Right now, it's got 163 methods. Ouch.
This afternoon, I'm trimming the Hypertext interface by factoring out a bunch of specialized objects. A LinkManager, for example, will handle a dozen link-related methods; objects that use Hypertext but aren't concerned with links won't need to know about the LinkManager.
This will clean up Hypertext and make it small, lively, and testable once more. And that brings TinderWin another step closer.
But, in the meantime, every step along the way means recompiling the 147 files that depend on Hypertext, and then running the test suite on two platforms. Take me out to the ballgame.