BGAL (Board Game Abstraction Language)