Abstract games