A general-purposed board game engine