i guess like conceptually the git history model in javascript. just for fun.