Have been working on a mindmap with freemind to spec out how I'll approach different aspects of this. It's included here, along with a text file called brainstorms with the same content. I hope to have a working prototype by Friday.