{"abstract":"Bills above one gold show silver counts over 99.","category":"Game economy crafting balance","checks":8,"contract":"Per item cost = max(0, max-dur) * (ilvl//4 + 1) copper. Discount percentages stack multiplicatively on the exact total; the result is rounded up once to copper. Return [gold, silver, copper] with 100 copper per silver and 100 silver per gold.","contract_signature":"items, discounts","evaluation_group":"w2-game-economy-crafting-balance-repair-bill","failed_approach":"Rounding the silver quotient bumps silver up when copper is 50 or more.","family":"w2-game-economy-crafting-balance-repair-bill-silver-denomination","id":"FA-86021","implementations":{"attempt":{"sha256":"0176cd8d20bdbf8b1be9315aa9f287840ea74d78279429e728ecae77fb19acde","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(items, discounts):\n    total = 0\n    for it in items:\n        missing = max(0, it['max'] - it['dur'])\n        total += missing * (it['ilvl'] // 4 + 1)\n    price = Fraction(total)\n    for pct in discounts:\n        price = price * (100 - pct) / 100\n    cost = math.ceil(price)\n    return [cost // 10000, round(cost / 100) % 100, cost % 100]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 8, 'dur': 18, 'max': 120}, {'ilvl': 3, 'dur': 41, 'max': 60}], [20]],\n   [0, 2, 60]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 1, 'dur': 120, 'max': 120},\n     {'ilvl': 4, 'dur': 84, 'max': 100},\n     {'ilvl': 3, 'dur': 40, 'max': 40},\n     {'ilvl': 3, 'dur': 0, 'max': 120}],\n    [10, 33]],\n   [0, 0, 92]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 40, 'max': 40}], [20]], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 4, 'dur': 63, 'max': 60},\n     {'ilvl': 130, 'dur': 63, 'max': 60},\n     {'ilvl': 3, 'dur': 60, 'max': 60}],\n    [25, 25]],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 1, 'dur': 120, 'max': 120},\n     {'ilvl': 4, 'dur': 84, 'max': 100},\n     {'ilvl': 3, 'dur': 40, 'max': 40},\n     {'ilvl': 3, 'dur': 0, 'max': 120}],\n    [10, 33]],\n   [0, 0, 92]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 69, 'dur': 5, 'max': 40},\n     {'ilvl': 3, 'dur': 49, 'max': 120},\n     {'ilvl': 139, 'dur': 63, 'max': 60}],\n    [15]],\n   [0, 5, 96]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 40, 'max': 40}], [20]], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 4, 'dur': 63, 'max': 60},\n     {'ilvl': 130, 'dur': 63, 'max': 60},\n     {'ilvl': 3, 'dur': 60, 'max': 60}],\n    [25, 25]],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1', [[{'ilvl': 4, 'dur': 0, 'max': 60}], [25]], [0, 0, 90]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 8, 'dur': 103, 'max': 100}, {'ilvl': 204, 'dur': 26, 'max': 60}], []],\n   [0, 17, 68]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 111, 'dur': 123, 'max': 120}], []], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 113, 'dur': 123, 'max': 120}, {'ilvl': 8, 'dur': 103, 'max': 100}], []],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1', [[{'ilvl': 7, 'dur': 0, 'max': 40}], []], [0, 0, 80]),\n  ('partial repair boundary #2', [[{'ilvl': 3, 'dur': 0, 'max': 120}], [15, 15, 15]], [0, 0, 74]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 0, 'max': 100}, {'ilvl': 3, 'dur': 78, 'max': 120}], []], [0, 2, 42]),\n  ('control #2',\n   [[{'ilvl': 1, 'dur': 123, 'max': 120},\n     {'ilvl': 7, 'dur': 61, 'max': 120},\n     {'ilvl': 3, 'dur': 120, 'max': 120},\n     {'ilvl': 374, 'dur': 38, 'max': 100}],\n    []],\n   [0, 59, 46])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 14, 'dur': 0, 'max': 40}, {'ilvl': 4, 'dur': 43, 'max': 40}], [25, 10, 15]],\n   [0, 0, 92]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 1, 'dur': 100, 'max': 100},\n     {'ilvl': 3, 'dur': 123, 'max': 120},\n     {'ilvl': 1, 'dur': 1, 'max': 60}],\n    []],\n   [0, 0, 59]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[], [25, 33]], [0, 0, 0]),\n  ('control #2', [[{'ilvl': 1, 'dur': 63, 'max': 60}], []], [0, 0, 0])]]\nfor label, args, expected in cases[N-1]:\n    check(label, 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":"967960037ec21c6c20068fb00a4aaf7f4ace806fddd27cc8283607cbf121484f","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\nimport math\nfrom fractions import Fraction\nN = 1\nobservations = []\ndef solve(items, discounts):\n    total = 0\n    for it in items:\n        missing = max(0, it['max'] - it['dur'])\n        total += missing * (it['ilvl'] // 4 + 1)\n    price = Fraction(total)\n    for pct in discounts:\n        price = price * (100 - pct) / 100\n    cost = math.ceil(price)\n    return [cost // 10000, cost // 100, cost % 100]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\ncases = [[('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 8, 'dur': 18, 'max': 120}, {'ilvl': 3, 'dur': 41, 'max': 60}], [20]],\n   [0, 2, 60]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 1, 'dur': 120, 'max': 120},\n     {'ilvl': 4, 'dur': 84, 'max': 100},\n     {'ilvl': 3, 'dur': 40, 'max': 40},\n     {'ilvl': 3, 'dur': 0, 'max': 120}],\n    [10, 33]],\n   [0, 0, 92]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 40, 'max': 40}], [20]], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 4, 'dur': 63, 'max': 60},\n     {'ilvl': 130, 'dur': 63, 'max': 60},\n     {'ilvl': 3, 'dur': 60, 'max': 60}],\n    [25, 25]],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 1, 'dur': 120, 'max': 120},\n     {'ilvl': 4, 'dur': 84, 'max': 100},\n     {'ilvl': 3, 'dur': 40, 'max': 40},\n     {'ilvl': 3, 'dur': 0, 'max': 120}],\n    [10, 33]],\n   [0, 0, 92]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 69, 'dur': 5, 'max': 40},\n     {'ilvl': 3, 'dur': 49, 'max': 120},\n     {'ilvl': 139, 'dur': 63, 'max': 60}],\n    [15]],\n   [0, 5, 96]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 40, 'max': 40}], [20]], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 4, 'dur': 63, 'max': 60},\n     {'ilvl': 130, 'dur': 63, 'max': 60},\n     {'ilvl': 3, 'dur': 60, 'max': 60}],\n    [25, 25]],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1', [[{'ilvl': 4, 'dur': 0, 'max': 60}], [25]], [0, 0, 90]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 8, 'dur': 103, 'max': 100}, {'ilvl': 204, 'dur': 26, 'max': 60}], []],\n   [0, 17, 68]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 111, 'dur': 123, 'max': 120}], []], [0, 0, 0]),\n  ('control #2',\n   [[{'ilvl': 113, 'dur': 123, 'max': 120}, {'ilvl': 8, 'dur': 103, 'max': 100}], []],\n   [0, 0, 0])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1', [[{'ilvl': 7, 'dur': 0, 'max': 40}], []], [0, 0, 80]),\n  ('partial repair boundary #2', [[{'ilvl': 3, 'dur': 0, 'max': 120}], [15, 15, 15]], [0, 0, 74]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[{'ilvl': 7, 'dur': 0, 'max': 100}, {'ilvl': 3, 'dur': 78, 'max': 120}], []], [0, 2, 42]),\n  ('control #2',\n   [[{'ilvl': 1, 'dur': 123, 'max': 120},\n     {'ilvl': 7, 'dur': 61, 'max': 120},\n     {'ilvl': 3, 'dur': 120, 'max': 120},\n     {'ilvl': 374, 'dur': 38, 'max': 100}],\n    []],\n   [0, 59, 46])],\n [('over-repaired piece #1',\n   [[{'ilvl': 20, 'dur': 105, 'max': 100}, {'ilvl': 20, 'dur': 90, 'max': 100}], []],\n   [0, 0, 60]),\n  ('regression silver denomination #1',\n   [[{'ilvl': 367, 'dur': 0, 'max': 120},\n     {'ilvl': 1, 'dur': 41, 'max': 120},\n     {'ilvl': 7, 'dur': 103, 'max': 100},\n     {'ilvl': 7, 'dur': 100, 'max': 100}],\n    [5]],\n   [1, 5, 64]),\n  ('partial repair boundary #1',\n   [[{'ilvl': 14, 'dur': 0, 'max': 40}, {'ilvl': 4, 'dur': 43, 'max': 40}], [25, 10, 15]],\n   [0, 0, 92]),\n  ('partial repair boundary #2',\n   [[{'ilvl': 1, 'dur': 100, 'max': 100},\n     {'ilvl': 3, 'dur': 123, 'max': 120},\n     {'ilvl': 1, 'dur': 1, 'max': 60}],\n    []],\n   [0, 0, 59]),\n  ('two stacked discounts #1', [[{'ilvl': 100, 'dur': 0, 'max': 120}], [10, 20]], [0, 22, 47]),\n  ('nothing to repair #1', [[], [15]], [0, 0, 0]),\n  ('control #1', [[], [25, 33]], [0, 0, 0]),\n  ('control #2', [[{'ilvl': 1, 'dur': 63, 'max': 60}], []], [0, 0, 0])]]\nfor label, args, expected in cases[N-1]:\n    check(label, 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":"Deterministic toy contract stipulated for this model; integer or exact arithmetic only, not a reproduction of any specific game engine. 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-game-economy-crafting-balance-repair-bill-silver-denomination","generated_at":"2026-09-29T14:50:45.682017+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Game economies leak or destroy currency when one crafting or pricing rule is off by one boundary, rounding stage or state update; the defect is observable in exact integer outcomes.","root_cause":"The silver digit is not reduced modulo 100.","sha256":"5472fe1325502a7dd9ba093fa9ea5ac0f25d47a423a81ed2bcd15499411427ec","title":"Repair bill: Silver column includes gold · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verified":true,"visibility":"public","verification":{"attempt":{"elapsed_ms":43.647,"exit_code":1,"observations":[{"actual":[0,1,60],"check":"over-repaired piece #1","expected":[0,0,60],"passed":false},{"actual":[1,6,64],"check":"regression silver denomination #1","expected":[1,5,64],"passed":false},{"actual":[0,3,60],"check":"partial repair boundary #1","expected":[0,2,60],"passed":false},{"actual":[0,1,92],"check":"partial repair boundary #2","expected":[0,0,92],"passed":false},{"actual":[0,22,47],"check":"two stacked discounts #1","expected":[0,22,47],"passed":true},{"actual":[0,0,0],"check":"nothing to repair #1","expected":[0,0,0],"passed":true},{"actual":[0,0,0],"check":"control #1","expected":[0,0,0],"passed":true},{"actual":[0,0,0],"check":"control #2","expected":[0,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"over-repaired piece #1\", \"actual\": [0, 1, 60], \"expected\": [0, 0, 60], \"passed\": false}, {\"check\": \"regression silver denomination #1\", \"actual\": [1, 6, 64], \"expected\": [1, 5, 64], \"passed\": false}, {\"check\": \"partial repair boundary #1\", \"actual\": [0, 3, 60], \"expected\": [0, 2, 60], \"passed\": false}, {\"check\": \"partial repair boundary #2\", \"actual\": [0, 1, 92], \"expected\": [0, 0, 92], \"passed\": false}, {\"check\": \"two stacked discounts #1\", \"actual\": [0, 22, 47], \"expected\": [0, 22, 47], \"passed\": true}, {\"check\": \"nothing to repair #1\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"control #2\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":47.648,"exit_code":1,"observations":[{"actual":[0,0,60],"check":"over-repaired piece #1","expected":[0,0,60],"passed":true},{"actual":[1,105,64],"check":"regression silver denomination #1","expected":[1,5,64],"passed":false},{"actual":[0,2,60],"check":"partial repair boundary #1","expected":[0,2,60],"passed":true},{"actual":[0,0,92],"check":"partial repair boundary #2","expected":[0,0,92],"passed":true},{"actual":[0,22,47],"check":"two stacked discounts #1","expected":[0,22,47],"passed":true},{"actual":[0,0,0],"check":"nothing to repair #1","expected":[0,0,0],"passed":true},{"actual":[0,0,0],"check":"control #1","expected":[0,0,0],"passed":true},{"actual":[0,0,0],"check":"control #2","expected":[0,0,0],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"over-repaired piece #1\", \"actual\": [0, 0, 60], \"expected\": [0, 0, 60], \"passed\": true}, {\"check\": \"regression silver denomination #1\", \"actual\": [1, 105, 64], \"expected\": [1, 5, 64], \"passed\": false}, {\"check\": \"partial repair boundary #1\", \"actual\": [0, 2, 60], \"expected\": [0, 2, 60], \"passed\": true}, {\"check\": \"partial repair boundary #2\", \"actual\": [0, 0, 92], \"expected\": [0, 0, 92], \"passed\": true}, {\"check\": \"two stacked discounts #1\", \"actual\": [0, 22, 47], \"expected\": [0, 22, 47], \"passed\": true}, {\"check\": \"nothing to repair #1\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"control #1\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}, {\"check\": \"control #2\", \"actual\": [0, 0, 0], \"expected\": [0, 0, 0], \"passed\": true}], \"passed\": false}\n"}},"member_only":{"stages":["fixed"],"fields":["implementations.fixed","verification.fixed","harness","repair"],"note":"The verified repair, its recorded checks, the repair description, and the scoring harness are available to members."}}