* 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