{"abstract":"A single 2 can be topped by an ace.","category":"Card game rule engines","checks":8,"contract":"Input [current_combination, play]. Ranks 3 low to 2 high; suits D<C<H<S. A play is 1-3 cards of one rank. On an empty table any valid play is \"ok\"; otherwise it must have the same size and its highest card must outrank the current highest card (rank, then suit). Empty play is \"pass\". Return \"ok\", \"invalid\" or \"pass\".","evaluation_group":"w2-card-game-rule-engines-big-two","failed_approach":"Placing the ace above the 2 still inverts the top two ranks.","family":"w2-card-game-rule-engines-big-two-two-is-highest","id":"FA-83736","implementations":{"attempt":{"sha256":"344894d22520203f1c9a200da9a1d93e80e343de123b35082516d6aef16b6c8e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '3456789TJQK2A'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if max(key(c) for c in play) > max(key(c) for c in cur):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['2C', '2S', '2D'], ['4S', '4C', '4H']], 'invalid'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['7D'], ['7S']], 'ok'], [[['AH'], ['2D']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['QC', 'QH'], ['2C', '2S']], 'ok'], [[['AS'], ['2D']], 'ok']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['2D', '2C'], ['6S', '6D']], 'invalid'], [[['2S'], ['AS']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['2S', '2C'], ['7S', '7D']], 'invalid'], [[['AH'], ['2D']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['6S', '6H'], ['2S', '2D']], 'ok'], [[['AS'], ['2D']], 'ok']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play case %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"broken":{"sha256":"60afbfd60b39c1816df1d53a7eba95b6063e21dbe86b517d40ad34effda13eed","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '23456789TJQKA'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if max(key(c) for c in play) > max(key(c) for c in cur):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['2C', '2S', '2D'], ['4S', '4C', '4H']], 'invalid'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['7D'], ['7S']], 'ok'], [[['AH'], ['2D']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['QC', 'QH'], ['2C', '2S']], 'ok'], [[['AS'], ['2D']], 'ok']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['2D', '2C'], ['6S', '6D']], 'invalid'], [[['2S'], ['AS']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['2S', '2C'], ['7S', '7D']], 'invalid'], [[['AH'], ['2D']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['6S', '6H'], ['2S', '2D']], 'ok'], [[['AS'], ['2D']], 'ok']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play case %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"},"fixed":{"sha256":"57e0acfba63da9b1afcf69693f601aaa62e947502f386524161dc6591b7e2da6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    cur, play = x\n    order = '3456789TJQKA2'\n    suits = 'DCHS'\n    def key(c):\n        return (order.index(c[0]), suits.index(c[1]))\n    if not play:\n        return 'pass'\n    if len(set(c[0] for c in play)) != 1 or len(play) > 3:\n        return 'invalid'\n    if not cur:\n        return 'ok'\n    if len(play) != len(cur):\n        return 'invalid'\n    if max(key(c) for c in play) > max(key(c) for c in cur):\n        return 'ok'\n    return 'invalid'\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[[['2C', '2S', '2D'], ['4S', '4C', '4H']], 'invalid'], [[['KC', 'KD'], ['KH', 'KS']], 'ok'], [[['8S', '8C', '8H'], ['KD', 'KC', 'KS']], 'ok'], [[['6S'], ['6H']], 'invalid'], [[['9C'], ['6S']], 'invalid'], [[[], ['3H', '3S', '3C']], 'ok'], [[['7D'], ['7S']], 'ok'], [[['AH'], ['2D']], 'ok']], [[[['8D', '8H'], ['8S', '8D', '8H', '8C']], 'invalid'], [[['AS'], ['AH', 'AC', 'AD']], 'invalid'], [[[], ['3C']], 'ok'], [[['QD'], ['QH']], 'ok'], [[['JD', 'JS'], ['TD', 'TS', 'TC', 'TH']], 'invalid'], [[['9S', '9H'], ['8S', '8C']], 'invalid'], [[['QC', 'QH'], ['2C', '2S']], 'ok'], [[['AS'], ['2D']], 'ok']], [[[['9D', '9C'], ['9D', '9C']], 'invalid'], [[['KD'], ['AH']], 'ok'], [[[], ['KS', 'KD']], 'ok'], [[['JC'], ['7C']], 'invalid'], [[['5S'], ['5H']], 'invalid'], [[['2S'], ['5D']], 'invalid'], [[['2D', '2C'], ['6S', '6D']], 'invalid'], [[['2S'], ['AS']], 'invalid']], [[[['JH', 'JC'], ['JC', 'JS']], 'ok'], [[['7C'], ['2D']], 'ok'], [[['2H'], ['2H']], 'invalid'], [[['TH', 'TD'], ['8D', '2S']], 'invalid'], [[['5H', '5D'], ['JS', 'JC']], 'ok'], [[[], ['QC', 'QH']], 'ok'], [[['2S', '2C'], ['7S', '7D']], 'invalid'], [[['AH'], ['2D']], 'ok']], [[[['6C', '6H'], ['AH', '4D']], 'invalid'], [[['3D', '3H', '3C'], ['3S', '3D', '3H', 'AC']], 'invalid'], [[['5S'], ['3S']], 'invalid'], [[['9C'], ['9C']], 'invalid'], [[['7C', '7S', '7D'], ['3D', '3S', '3C']], 'invalid'], [[['3H', '3C'], ['3D', '3C', '3S', '3H']], 'invalid'], [[['6S', '6H'], ['2S', '2D']], 'ok'], [[['AS'], ['2D']], 'ok']]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"play case %d\" % i, solve(args), expected)\nprint(json.dumps({\"observations\": observations, \"passed\": all(x[\"passed\"] for x in observations)}, ensure_ascii=False))\nraise SystemExit(0 if all(x[\"passed\"] for x in observations) else 1)\n"}},"limitations":"A bounded toy rule contract stated explicitly in the contract field; cards are two-character codes (rank, suit). Not a complete implementation of any published rulebook or casino table rules. This reproducer isolates one failure mechanism. Results cover the supplied fixtures. Variants within a family share a test contract and should remain grouped when constructing evaluation splits. Related mechanisms with a shared evaluation_group must also remain together; these controlled models are not independent production incidents.","method":"Deterministic executable model with adversarial boundary fixtures.","provenance":{"created_by":"Failure Map","dependencies":"Python standard library","family":"w2-card-game-rule-engines-big-two-two-is-highest","generated_at":"2026-09-29T14:50:24.439478+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Card-game engines, scoring apps and online tables apply this rule automatically on every hand.","repair":"Order ranks 3 through A, then 2.","root_cause":"The rank order places the 2 at the bottom.","sha256":"6a4752db5f306ad9a83f053881da070b90ba6db7d7130cf3932a216c2c5bb70f","title":"Aces beat twos · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.516,"exit_code":1,"observations":[{"actual":"invalid","check":"play case 0","expected":"invalid","passed":true},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"ok","check":"play case 6","expected":"ok","passed":true},{"actual":"invalid","check":"play case 7","expected":"ok","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 7\", \"actual\": \"invalid\", \"expected\": \"ok\", \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.12,"exit_code":1,"observations":[{"actual":"ok","check":"play case 0","expected":"invalid","passed":false},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"ok","check":"play case 6","expected":"ok","passed":true},{"actual":"invalid","check":"play case 7","expected":"ok","passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"ok\", \"expected\": \"invalid\", \"passed\": false}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 7\", \"actual\": \"invalid\", \"expected\": \"ok\", \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":43.06,"exit_code":0,"observations":[{"actual":"invalid","check":"play case 0","expected":"invalid","passed":true},{"actual":"ok","check":"play case 1","expected":"ok","passed":true},{"actual":"ok","check":"play case 2","expected":"ok","passed":true},{"actual":"invalid","check":"play case 3","expected":"invalid","passed":true},{"actual":"invalid","check":"play case 4","expected":"invalid","passed":true},{"actual":"ok","check":"play case 5","expected":"ok","passed":true},{"actual":"ok","check":"play case 6","expected":"ok","passed":true},{"actual":"ok","check":"play case 7","expected":"ok","passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"play case 0\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 1\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 2\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 3\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 4\", \"actual\": \"invalid\", \"expected\": \"invalid\", \"passed\": true}, {\"check\": \"play case 5\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 6\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}, {\"check\": \"play case 7\", \"actual\": \"ok\", \"expected\": \"ok\", \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}