* Schema *** TODO Decide how we're going to handle voting/merging My idea is to allow voting on branches (which can be marked as open/closed). The discussion happens on each commits, and the voting page will give a unified view onto all these discussions (which means basically displaying `git log master...HEAD`). Users appear to vote on a branch, but they are actually voting on the HEAD commit. This prevents people gaming the system by waiting for enough yes votes, then inserting a last-minute commit that hasn't really been peer-reviewed. An editor puts a branch into voting mode by "publishing" it. They may want to create many commits (allowing for an intuitive editor with no "save" button). When a branch gets enough votes, we can either merge immediately, or use an edit queue and cron job. * Code *** Display the history (DAG) of an entity