I’ve started using this in my projects and it seems to work okay. So I’m posting it here in the hopes that someone else will find it useful.
Looks good, although the definition syntax looks a little heavy. Reading it, it’s not immediately clear what all the parts do. This isn’t bad per se, but it may be easier to use if the syntax is reworked.
Thanks for the feedback. I’ve added a longer explanation of what everything does to the readme and commented the code.