I spent a week thinking I should be able to crank it out with a few hours of work, but unable to actually do so. Finally I gave up and just threw the idea out there without any code, and boy am I glad I did!
Part of the problem was that hacking on wart I've forgotten that I have a mature lisp available to me.