Card game framework