I've designed it entirely around my use cases, then abstracted it to try to make it more generally useful. But I have no idea how useful it really is...
I think it can probably be adapted for a lot of different uses without having to rewrite existing code. I've tried to keep things as modular as possible so even if your use case isn't supported, you still get a pretty good starting point before having to write your own code for it.
I plan to use it in several different applications I have in mind. It's taken a lot of time to build it out, but, at least for me, it'll be a handy thing to have.