This is amazing! I was working on something like this myself, but I've not reached anywhere near this level of functionality or polish. Looks like I'll drop it and see if I can contribute to this instead.