Framework for expressing arbitrary games. Used for Tic-Tac-Toe and Poker.