{"abstract":"Every game value is one base short.","category":"Card game rule engines","checks":8,"contract":"Input [game(D/H/S/C/G), trumps_held, hand, schneider, schwarz]. Base D9 H10 S11 C12 G24. Matadors count the unbroken run from CJ down the trump sequence (CJ SJ HJ DJ then A T K Q 9 8 7 of the suit; grand only jacks), either held (\"with\") or missing (\"without\"). Multiplier = matadors + 1 (game) + hand + schneider (implied by schwarz) + schwarz. Return base * multiplier.","evaluation_group":"w2-card-game-rule-engines-skat-value","failed_approach":"Letting a hand game replace the game level still loses a level.","family":"w2-card-game-rule-engines-skat-value-game-level","id":"FA-83806","implementations":{"attempt":{"sha256":"89d6fd4cece11053b2170126fc0aef76e6e260752310327fb577036897b7dc69","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    game, held, hand, schneider, schwarz = x\n    base = {'D': 9, 'H': 10, 'S': 11, 'C': 12, 'G': 24}[game]\n    seq = ['CJ', 'SJ', 'HJ', 'DJ']\n    if game != 'G':\n        seq += [r + game for r in 'ATKQ987']\n    has = set(held)\n    first = seq[0] in has\n    mat = 0\n    for card in seq:\n        if (card in has) == first:\n            mat += 1\n        else:\n            break\n    mult = mat + 1 if not hand else mat\n    if hand:\n        mult += 1\n    if schneider or schwarz:\n        mult += 1\n    if schwarz:\n        mult += 1\n    return base * mult\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS'], False, False, False], 88], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC'], False, True, False], 108], [['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['G', ['CJ', 'SJ', 'DJ'], True, False, False], 96], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC', 'QC', '9C', '8C'], True, True, False], 156], [['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['G', ['CJ', 'SJ'], False, False, False], 72], [['C', ['CJ', 'SJ', 'DJ', 'AC', 'TC', '9C'], True, False, False], 48]], [[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS', 'QS', '9S', '8S'], False, True, False], 132], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH'], False, False, False], 80], [['D', ['7D'], False, False, False], 99], [['D', ['CJ', 'AD', 'TD', 'QD'], False, False, False], 18], [['G', ['CJ', 'HJ'], False, True, False], 72], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD'], False, False, False], 81], [['H', ['AH', 'KH', '8H'], False, True, True], 70], [['S', ['CJ', 'SJ'], True, True, False], 55]], [[['C', ['CJ', 'SJ'], False, False, False], 36], [['H', ['CJ'], False, False, False], 20], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH', 'QH'], True, True, False], 110], [['H', ['SJ', 'TH', 'KH', '9H', '7H'], False, True, False], 30], [['C', ['SJ', 'DJ', 'KC', 'QC', '8C', '7C'], False, False, False], 24], [['C', ['HJ', 'DJ'], False, False, False], 36], [['H', [], False, True, False], 130], [['D', ['CJ', 'SJ', 'HJ'], True, False, False], 45]], [[['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['C', ['KC', 'QC', '9C', '8C', '7C'], False, False, False], 84], [['C', ['9C', '8C', '7C'], False, False, True], 132], [['C', ['CJ', 'SJ', 'HJ', 'DJ'], False, False, False], 60], [['S', ['CJ', 'SJ', 'AS', 'TS', '7S'], False, True, True], 55], [['D', ['7D'], False, True, False], 108], [['D', ['SJ', 'HJ', 'AD', 'TD', 'KD'], False, False, False], 18], [['S', ['SJ', 'HJ', 'DJ', '9S'], True, False, False], 33]], [[['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['H', ['KH', 'QH', '9H', '8H', '7H'], False, False, False], 70], [['H', ['HJ', 'DJ', 'KH', '9H', '8H'], False, True, False], 40], [['C', ['CJ', 'DJ', 'AC', 'TC', '9C'], False, True, True], 48], [['H', ['SJ', 'AH', 'KH', '8H', '7H'], False, False, False], 20], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD', '9D'], False, True, True], 108], [['D', ['CJ', 'SJ', 'AD', 'TD', 'QD', '8D', '7D'], False, False, False], 27], [['S', ['CJ', 'SJ', 'TS', 'KS', 'QS'], True, True, True], 66]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"game value 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":"ff3744445258e80f3242560d37313d3554a98c2c8691b2451803646a24c6e073","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    game, held, hand, schneider, schwarz = x\n    base = {'D': 9, 'H': 10, 'S': 11, 'C': 12, 'G': 24}[game]\n    seq = ['CJ', 'SJ', 'HJ', 'DJ']\n    if game != 'G':\n        seq += [r + game for r in 'ATKQ987']\n    has = set(held)\n    first = seq[0] in has\n    mat = 0\n    for card in seq:\n        if (card in has) == first:\n            mat += 1\n        else:\n            break\n    mult = mat\n    if hand:\n        mult += 1\n    if schneider or schwarz:\n        mult += 1\n    if schwarz:\n        mult += 1\n    return base * mult\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS'], False, False, False], 88], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC'], False, True, False], 108], [['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['G', ['CJ', 'SJ', 'DJ'], True, False, False], 96], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC', 'QC', '9C', '8C'], True, True, False], 156], [['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['G', ['CJ', 'SJ'], False, False, False], 72], [['C', ['CJ', 'SJ', 'DJ', 'AC', 'TC', '9C'], True, False, False], 48]], [[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS', 'QS', '9S', '8S'], False, True, False], 132], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH'], False, False, False], 80], [['D', ['7D'], False, False, False], 99], [['D', ['CJ', 'AD', 'TD', 'QD'], False, False, False], 18], [['G', ['CJ', 'HJ'], False, True, False], 72], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD'], False, False, False], 81], [['H', ['AH', 'KH', '8H'], False, True, True], 70], [['S', ['CJ', 'SJ'], True, True, False], 55]], [[['C', ['CJ', 'SJ'], False, False, False], 36], [['H', ['CJ'], False, False, False], 20], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH', 'QH'], True, True, False], 110], [['H', ['SJ', 'TH', 'KH', '9H', '7H'], False, True, False], 30], [['C', ['SJ', 'DJ', 'KC', 'QC', '8C', '7C'], False, False, False], 24], [['C', ['HJ', 'DJ'], False, False, False], 36], [['H', [], False, True, False], 130], [['D', ['CJ', 'SJ', 'HJ'], True, False, False], 45]], [[['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['C', ['KC', 'QC', '9C', '8C', '7C'], False, False, False], 84], [['C', ['9C', '8C', '7C'], False, False, True], 132], [['C', ['CJ', 'SJ', 'HJ', 'DJ'], False, False, False], 60], [['S', ['CJ', 'SJ', 'AS', 'TS', '7S'], False, True, True], 55], [['D', ['7D'], False, True, False], 108], [['D', ['SJ', 'HJ', 'AD', 'TD', 'KD'], False, False, False], 18], [['S', ['SJ', 'HJ', 'DJ', '9S'], True, False, False], 33]], [[['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['H', ['KH', 'QH', '9H', '8H', '7H'], False, False, False], 70], [['H', ['HJ', 'DJ', 'KH', '9H', '8H'], False, True, False], 40], [['C', ['CJ', 'DJ', 'AC', 'TC', '9C'], False, True, True], 48], [['H', ['SJ', 'AH', 'KH', '8H', '7H'], False, False, False], 20], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD', '9D'], False, True, True], 108], [['D', ['CJ', 'SJ', 'AD', 'TD', 'QD', '8D', '7D'], False, False, False], 27], [['S', ['CJ', 'SJ', 'TS', 'KS', 'QS'], True, True, True], 66]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"game value 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":"332c76cf360297358e0c49f27df963e12c24a8addba10e769460882fa03d9d42","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    game, held, hand, schneider, schwarz = x\n    base = {'D': 9, 'H': 10, 'S': 11, 'C': 12, 'G': 24}[game]\n    seq = ['CJ', 'SJ', 'HJ', 'DJ']\n    if game != 'G':\n        seq += [r + game for r in 'ATKQ987']\n    has = set(held)\n    first = seq[0] in has\n    mat = 0\n    for card in seq:\n        if (card in has) == first:\n            mat += 1\n        else:\n            break\n    mult = mat + 1\n    if hand:\n        mult += 1\n    if schneider or schwarz:\n        mult += 1\n    if schwarz:\n        mult += 1\n    return base * mult\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS'], False, False, False], 88], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC'], False, True, False], 108], [['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['G', ['CJ', 'SJ', 'DJ'], True, False, False], 96], [['C', ['CJ', 'SJ', 'HJ', 'DJ', 'AC', 'TC', 'KC', 'QC', '9C', '8C'], True, True, False], 156], [['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['G', ['CJ', 'SJ'], False, False, False], 72], [['C', ['CJ', 'SJ', 'DJ', 'AC', 'TC', '9C'], True, False, False], 48]], [[['S', ['CJ', 'SJ', 'HJ', 'DJ', 'AS', 'TS', 'KS', 'QS', '9S', '8S'], False, True, False], 132], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH'], False, False, False], 80], [['D', ['7D'], False, False, False], 99], [['D', ['CJ', 'AD', 'TD', 'QD'], False, False, False], 18], [['G', ['CJ', 'HJ'], False, True, False], 72], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD'], False, False, False], 81], [['H', ['AH', 'KH', '8H'], False, True, True], 70], [['S', ['CJ', 'SJ'], True, True, False], 55]], [[['C', ['CJ', 'SJ'], False, False, False], 36], [['H', ['CJ'], False, False, False], 20], [['H', ['CJ', 'SJ', 'HJ', 'DJ', 'AH', 'TH', 'KH', 'QH'], True, True, False], 110], [['H', ['SJ', 'TH', 'KH', '9H', '7H'], False, True, False], 30], [['C', ['SJ', 'DJ', 'KC', 'QC', '8C', '7C'], False, False, False], 24], [['C', ['HJ', 'DJ'], False, False, False], 36], [['H', [], False, True, False], 130], [['D', ['CJ', 'SJ', 'HJ'], True, False, False], 45]], [[['C', ['CJ', 'SJ', 'HJ'], True, False, False], 60], [['C', ['KC', 'QC', '9C', '8C', '7C'], False, False, False], 84], [['C', ['9C', '8C', '7C'], False, False, True], 132], [['C', ['CJ', 'SJ', 'HJ', 'DJ'], False, False, False], 60], [['S', ['CJ', 'SJ', 'AS', 'TS', '7S'], False, True, True], 55], [['D', ['7D'], False, True, False], 108], [['D', ['SJ', 'HJ', 'AD', 'TD', 'KD'], False, False, False], 18], [['S', ['SJ', 'HJ', 'DJ', '9S'], True, False, False], 33]], [[['H', ['AH', 'TH', 'KH', 'QH', '9H', '8H', '7H'], False, True, False], 60], [['H', ['KH', 'QH', '9H', '8H', '7H'], False, False, False], 70], [['H', ['HJ', 'DJ', 'KH', '9H', '8H'], False, True, False], 40], [['C', ['CJ', 'DJ', 'AC', 'TC', '9C'], False, True, True], 48], [['H', ['SJ', 'AH', 'KH', '8H', '7H'], False, False, False], 20], [['D', ['CJ', 'SJ', 'HJ', 'DJ', 'AD', 'TD', 'KD', 'QD', '9D'], False, True, True], 108], [['D', ['CJ', 'SJ', 'AD', 'TD', 'QD', '8D', '7D'], False, False, False], 27], [['S', ['CJ', 'SJ', 'TS', 'KS', 'QS'], True, True, True], 66]]]\nfor i, (args, expected) in enumerate(fixtures[N-1]):\n    check(\"game value 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-skat-value-game-level","generated_at":"2026-09-29T14:50:25.078946+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":"Multiplier = matadors + 1 before other levels.","root_cause":"Multiplier starts at matadors only.","sha256":"c6208a5db30e89cf347773406528fdc7e8ec8d62d916f09289e80aba76e83513","title":"The game level is not added to the multiplier · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":40.927,"exit_code":1,"observations":[{"actual":88,"check":"game value case 0","expected":88,"passed":true},{"actual":108,"check":"game value case 1","expected":108,"passed":true},{"actual":48,"check":"game value case 2","expected":60,"passed":false},{"actual":72,"check":"game value case 3","expected":96,"passed":false},{"actual":144,"check":"game value case 4","expected":156,"passed":false},{"actual":60,"check":"game value case 5","expected":60,"passed":true},{"actual":72,"check":"game value case 6","expected":72,"passed":true},{"actual":36,"check":"game value case 7","expected":48,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"game value case 0\", \"actual\": 88, \"expected\": 88, \"passed\": true}, {\"check\": \"game value case 1\", \"actual\": 108, \"expected\": 108, \"passed\": true}, {\"check\": \"game value case 2\", \"actual\": 48, \"expected\": 60, \"passed\": false}, {\"check\": \"game value case 3\", \"actual\": 72, \"expected\": 96, \"passed\": false}, {\"check\": \"game value case 4\", \"actual\": 144, \"expected\": 156, \"passed\": false}, {\"check\": \"game value case 5\", \"actual\": 60, \"expected\": 60, \"passed\": true}, {\"check\": \"game value case 6\", \"actual\": 72, \"expected\": 72, \"passed\": true}, {\"check\": \"game value case 7\", \"actual\": 36, \"expected\": 48, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":40.677,"exit_code":1,"observations":[{"actual":77,"check":"game value case 0","expected":88,"passed":false},{"actual":96,"check":"game value case 1","expected":108,"passed":false},{"actual":48,"check":"game value case 2","expected":60,"passed":false},{"actual":72,"check":"game value case 3","expected":96,"passed":false},{"actual":144,"check":"game value case 4","expected":156,"passed":false},{"actual":50,"check":"game value case 5","expected":60,"passed":false},{"actual":48,"check":"game value case 6","expected":72,"passed":false},{"actual":36,"check":"game value case 7","expected":48,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"game value case 0\", \"actual\": 77, \"expected\": 88, \"passed\": false}, {\"check\": \"game value case 1\", \"actual\": 96, \"expected\": 108, \"passed\": false}, {\"check\": \"game value case 2\", \"actual\": 48, \"expected\": 60, \"passed\": false}, {\"check\": \"game value case 3\", \"actual\": 72, \"expected\": 96, \"passed\": false}, {\"check\": \"game value case 4\", \"actual\": 144, \"expected\": 156, \"passed\": false}, {\"check\": \"game value case 5\", \"actual\": 50, \"expected\": 60, \"passed\": false}, {\"check\": \"game value case 6\", \"actual\": 48, \"expected\": 72, \"passed\": false}, {\"check\": \"game value case 7\", \"actual\": 36, \"expected\": 48, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.841,"exit_code":0,"observations":[{"actual":88,"check":"game value case 0","expected":88,"passed":true},{"actual":108,"check":"game value case 1","expected":108,"passed":true},{"actual":60,"check":"game value case 2","expected":60,"passed":true},{"actual":96,"check":"game value case 3","expected":96,"passed":true},{"actual":156,"check":"game value case 4","expected":156,"passed":true},{"actual":60,"check":"game value case 5","expected":60,"passed":true},{"actual":72,"check":"game value case 6","expected":72,"passed":true},{"actual":48,"check":"game value case 7","expected":48,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"game value case 0\", \"actual\": 88, \"expected\": 88, \"passed\": true}, {\"check\": \"game value case 1\", \"actual\": 108, \"expected\": 108, \"passed\": true}, {\"check\": \"game value case 2\", \"actual\": 60, \"expected\": 60, \"passed\": true}, {\"check\": \"game value case 3\", \"actual\": 96, \"expected\": 96, \"passed\": true}, {\"check\": \"game value case 4\", \"actual\": 156, \"expected\": 156, \"passed\": true}, {\"check\": \"game value case 5\", \"actual\": 60, \"expected\": 60, \"passed\": true}, {\"check\": \"game value case 6\", \"actual\": 72, \"expected\": 72, \"passed\": true}, {\"check\": \"game value case 7\", \"actual\": 48, \"expected\": 48, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}