{"abstract":"Lines measure narrower when a word ends and the next begins with a kern pair.","category":"Typography line breaking","checks":8,"contract":"Input [words, width]. Glyph widths: i,l,j,.,, 4; t,f 6; m 15; w 14; M 16; W 18; other lowercase 10; other uppercase 13; space 5. Within a word, fi/fl/ff form ligatures (11/11/12) with no kerning into or out of them; case-sensitive kern pairs apply between adjacent glyphs; \"|\" is a non-joiner (invisible, blocks ligatures and kerning). No kerning across spaces. Greedy fill. Return [[text, width]].","contract_signature":"x","evaluation_group":"w2-typography-line-breaking-kern-ligature-measure","failed_approach":"Measuring the space-joined text treats the space as a default-width glyph.","family":"w2-typography-line-breaking-kern-ligature-measure-kerning-across-spaces","id":"FA-80156","implementations":{"attempt":{"sha256":"550661cf4dfbd2aba1444f5a458c5d104b0e490daa0ae4dcb78db099b0ba8df3","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width = x\n    W = {'i': 4, 'l': 4, 'j': 4, '.': 4, ',': 4, 't': 6, 'f': 6, 'm': 15, 'w': 14, 'M': 16, 'W': 18}\n    LIG = {'fi': 11, 'fl': 11, 'ff': 12}\n    KERN = {'AV': -3, 'VA': -3, 'To': -2, 'Ta': -2, 'Yo': -2, 'LT': -3, 'Wa': -2, 'av': -1, 'va': -1, 'y.': -2, 'r.': -2, 'l.': -1, 'f.': -1, 'Va': -2}\n    SPACE = 5\n    def glyph(c):\n        return W.get(c, 13 if c.isupper() else 10)\n    def measure(w):\n        total, prev, i = 0, None, 0\n        while i < len(w):\n            if w[i] == '|':\n                prev = None\n                i += 1\n                continue\n            pair = w[i:i + 2]\n            if pair in LIG:\n                total += LIG[pair]\n                prev = None\n                i += 2\n                continue\n            g = w[i]\n            total += glyph(g)\n            if prev is not None:\n                total += KERN.get(prev + g, 0)\n            prev = g\n            i += 1\n        return total\n    def line_width(ws):\n        return measure(' '.join(ws))\n    lines, cur = [], []\n    for w in words:\n        cand = cur + [w]\n        if not cur or line_width(cand) <= width:\n            cur = cand\n        else:\n            lines.append(cur)\n            cur = [w]\n    if cur:\n        lines.append(cur)\n    return [[' '.join(t.replace('|', '') for t in ln), line_width(ln)] for ln in lines]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('regression: kerning across spaces', [['Wavy', 'Ta', 'office', 'AT', 'office', 'shelf|life', 'flow'], 140], [['Wavy Ta office', 122], ['AT office', 77], ['shelflife flow', 104]]), ('partial-repair probe', [['LA|VALLE', 'av', 'Ta', 'LA|VALLE', 'dry.', 'wolf|like', 'wolf|like'], 51], [['LAVALLE', 88], ['av Ta', 45], ['LAVALLE', 88], ['dry.', 32], ['wolflike', 62], ['wolflike', 62]]), ('partial-repair probe', [['raffle', 'LA', 'fi', 'fl.', 'Wavy', 'raffle'], 128], [['raffle LA fi fl.', 113], ['Wavy raffle', 96]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('non-joiner blocks ligature', [['shelf|life'], 200], [['shelflife', 64]]), ('control layout', [['fly.', 'LA|VALLE'], 93], [['fly.', 23], ['LAVALLE', 88]]), ('control layout', [['our', 'Av'], 54], [['our', 30], ['Av', 23]])], [('regression: kerning across spaces', [['LA', 'VIA'], 102], [['LA VIA', 70]]), ('regression: kerning across spaces', [['AT', 'AT', 'office', 'Ta', 'staff.', 'Tofu'], 114], [['AT AT office', 108], ['Ta staff. Tofu', 110]]), ('partial-repair probe', [['shelf|life', 'LA|VALLE', 'raffle', 'y.', 'fl.'], 132], [['shelflife', 64], ['LAVALLE', 88], ['raffle y. fl.', 83]]), ('partial-repair probe', [['Tofu', 'LA'], 126], [['Tofu LA', 68]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fi', 'dry.', 'wolf|like', 'VIA', 'Tofu'], 45], [['fi', 11], ['dry.', 32], ['wolflike', 62], ['VIA', 39], ['Tofu', 37]]), ('control layout', [['raffle', 'raffle'], 87], [['raffle', 46], ['raffle', 46]])], [('regression: kerning across spaces', [['fi', 'LT', 'office', 'Ta'], 104], [['fi LT office', 90], ['Ta', 21]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('regression: kerning across spaces', [['office', 'AT', 'our', 'fly.', 'flow', 'shelf|life'], 129], [['office AT our', 112], ['fly. flow', 63], ['shelflife', 64]]), ('partial-repair probe', [['Tofu', 'our', 'wolf|like', 'y.', 'flow', 'LT'], 91], [['Tofu our', 72], ['wolflike y.', 79], ['flow LT', 63]]), ('ligature then period', [['fl.', 'fi,'], 200], [['fl. fi,', 35]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fly.', 'LA|VALLE'], 93], [['fly.', 23], ['LAVALLE', 88]]), ('control layout', [['Vat', 'VIA', 'Tofu', 'office', 'y.'], 62], [['Vat', 27], ['VIA', 39], ['Tofu', 37], ['office', 46], ['y.', 12]])], [('regression: kerning across spaces', [['shelf|life', 'AVAIL', 'Ta'], 103], [['shelflife', 64], ['AVAIL Ta', 85]]), ('regression: kerning across spaces', [['LA|VALLE', 'Wavy', 'fl.', 'AT', 'av', 'our'], 80], [['LAVALLE', 88], ['Wavy fl.', 65], ['AT av', 50], ['our', 30]]), ('partial-repair probe', [['VIA', 'AVAIL', 'VIA', 'raffle', 'raffle', 'wolf|like'], 91], [['VIA', 39], ['AVAIL', 59], ['VIA raffle', 90], ['raffle', 46], ['wolflike', 62]]), ('partial-repair probe', [['flow', 'VIA', 'Tofu', 'Av', 'fly.', 'Vat', 'Yo'], 74], [['flow', 35], ['VIA', 39], ['Tofu Av', 65], ['fly. Vat', 55], ['Yo', 21]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fi', 'LA|VALLE'], 55], [['fi', 11], ['LAVALLE', 88]]), ('control layout', [['Av', 'Tofu'], 41], [['Av', 23], ['Tofu', 37]])], [('regression: kerning across spaces', [['flow', 'dry.', 'LA', 'LA', 'LT', 'av'], 77], [['flow dry.', 72], ['LA LA', 57], ['LT av', 47]]), ('regression: kerning across spaces', [['AT', 'LT', 'Tofu', 'LT', 'office', 'Tofu'], 111], [['AT LT Tofu', 96], ['LT office', 74], ['Tofu', 37]]), ('partial-repair probe', [['av', 'Av', 'Av'], 104], [['av Av Av', 75]]), ('partial-repair probe', [['LA|VALLE', 'shelf|life', 'office', 'AT', 'wolf|like'], 116], [['LAVALLE', 88], ['shelflife office', 115], ['AT wolflike', 93]]), ('ligature then period', [['fl.', 'fi,'], 200], [['fl. fi,', 35]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('control layout', [['AVAIL', 'LA|VALLE', 'staff.'], 78], [['AVAIL', 59], ['LAVALLE', 88], ['staff.', 42]]), ('control layout', [['VIA', 'LA|VALLE', 'Wavy', 'wolf|like'], 72], [['VIA', 39], ['LAVALLE', 88], ['Wavy', 45], ['wolflike', 62]])]]\nfor label, args, expected in fixtures[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":"6f026cf2887bead2c152d506af6c5fe0b08bbd08134e646066698fb067140bd0","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    words, width = x\n    W = {'i': 4, 'l': 4, 'j': 4, '.': 4, ',': 4, 't': 6, 'f': 6, 'm': 15, 'w': 14, 'M': 16, 'W': 18}\n    LIG = {'fi': 11, 'fl': 11, 'ff': 12}\n    KERN = {'AV': -3, 'VA': -3, 'To': -2, 'Ta': -2, 'Yo': -2, 'LT': -3, 'Wa': -2, 'av': -1, 'va': -1, 'y.': -2, 'r.': -2, 'l.': -1, 'f.': -1, 'Va': -2}\n    SPACE = 5\n    def glyph(c):\n        return W.get(c, 13 if c.isupper() else 10)\n    def measure(w):\n        total, prev, i = 0, None, 0\n        while i < len(w):\n            if w[i] == '|':\n                prev = None\n                i += 1\n                continue\n            pair = w[i:i + 2]\n            if pair in LIG:\n                total += LIG[pair]\n                prev = None\n                i += 2\n                continue\n            g = w[i]\n            total += glyph(g)\n            if prev is not None:\n                total += KERN.get(prev + g, 0)\n            prev = g\n            i += 1\n        return total\n    def line_width(ws):\n        return measure(''.join(ws)) + SPACE * (len(ws) - 1)\n    lines, cur = [], []\n    for w in words:\n        cand = cur + [w]\n        if not cur or line_width(cand) <= width:\n            cur = cand\n        else:\n            lines.append(cur)\n            cur = [w]\n    if cur:\n        lines.append(cur)\n    return [[' '.join(t.replace('|', '') for t in ln), line_width(ln)] for ln in lines]\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('regression: kerning across spaces', [['Wavy', 'Ta', 'office', 'AT', 'office', 'shelf|life', 'flow'], 140], [['Wavy Ta office', 122], ['AT office', 77], ['shelflife flow', 104]]), ('partial-repair probe', [['LA|VALLE', 'av', 'Ta', 'LA|VALLE', 'dry.', 'wolf|like', 'wolf|like'], 51], [['LAVALLE', 88], ['av Ta', 45], ['LAVALLE', 88], ['dry.', 32], ['wolflike', 62], ['wolflike', 62]]), ('partial-repair probe', [['raffle', 'LA', 'fi', 'fl.', 'Wavy', 'raffle'], 128], [['raffle LA fi fl.', 113], ['Wavy raffle', 96]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('non-joiner blocks ligature', [['shelf|life'], 200], [['shelflife', 64]]), ('control layout', [['fly.', 'LA|VALLE'], 93], [['fly.', 23], ['LAVALLE', 88]]), ('control layout', [['our', 'Av'], 54], [['our', 30], ['Av', 23]])], [('regression: kerning across spaces', [['LA', 'VIA'], 102], [['LA VIA', 70]]), ('regression: kerning across spaces', [['AT', 'AT', 'office', 'Ta', 'staff.', 'Tofu'], 114], [['AT AT office', 108], ['Ta staff. Tofu', 110]]), ('partial-repair probe', [['shelf|life', 'LA|VALLE', 'raffle', 'y.', 'fl.'], 132], [['shelflife', 64], ['LAVALLE', 88], ['raffle y. fl.', 83]]), ('partial-repair probe', [['Tofu', 'LA'], 126], [['Tofu LA', 68]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fi', 'dry.', 'wolf|like', 'VIA', 'Tofu'], 45], [['fi', 11], ['dry.', 32], ['wolflike', 62], ['VIA', 39], ['Tofu', 37]]), ('control layout', [['raffle', 'raffle'], 87], [['raffle', 46], ['raffle', 46]])], [('regression: kerning across spaces', [['fi', 'LT', 'office', 'Ta'], 104], [['fi LT office', 90], ['Ta', 21]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('regression: kerning across spaces', [['office', 'AT', 'our', 'fly.', 'flow', 'shelf|life'], 129], [['office AT our', 112], ['fly. flow', 63], ['shelflife', 64]]), ('partial-repair probe', [['Tofu', 'our', 'wolf|like', 'y.', 'flow', 'LT'], 91], [['Tofu our', 72], ['wolflike y.', 79], ['flow LT', 63]]), ('ligature then period', [['fl.', 'fi,'], 200], [['fl. fi,', 35]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fly.', 'LA|VALLE'], 93], [['fly.', 23], ['LAVALLE', 88]]), ('control layout', [['Vat', 'VIA', 'Tofu', 'office', 'y.'], 62], [['Vat', 27], ['VIA', 39], ['Tofu', 37], ['office', 46], ['y.', 12]])], [('regression: kerning across spaces', [['shelf|life', 'AVAIL', 'Ta'], 103], [['shelflife', 64], ['AVAIL Ta', 85]]), ('regression: kerning across spaces', [['LA|VALLE', 'Wavy', 'fl.', 'AT', 'av', 'our'], 80], [['LAVALLE', 88], ['Wavy fl.', 65], ['AT av', 50], ['our', 30]]), ('partial-repair probe', [['VIA', 'AVAIL', 'VIA', 'raffle', 'raffle', 'wolf|like'], 91], [['VIA', 39], ['AVAIL', 59], ['VIA raffle', 90], ['raffle', 46], ['wolflike', 62]]), ('partial-repair probe', [['flow', 'VIA', 'Tofu', 'Av', 'fly.', 'Vat', 'Yo'], 74], [['flow', 35], ['VIA', 39], ['Tofu Av', 65], ['fly. Vat', 55], ['Yo', 21]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('case-sensitive pair', [['Av', 'av'], 200], [['Av av', 47]]), ('control layout', [['fi', 'LA|VALLE'], 55], [['fi', 11], ['LAVALLE', 88]]), ('control layout', [['Av', 'Tofu'], 41], [['Av', 23], ['Tofu', 37]])], [('regression: kerning across spaces', [['flow', 'dry.', 'LA', 'LA', 'LT', 'av'], 77], [['flow dry.', 72], ['LA LA', 57], ['LT av', 47]]), ('regression: kerning across spaces', [['AT', 'LT', 'Tofu', 'LT', 'office', 'Tofu'], 111], [['AT LT Tofu', 96], ['LT office', 74], ['Tofu', 37]]), ('partial-repair probe', [['av', 'Av', 'Av'], 104], [['av Av Av', 75]]), ('partial-repair probe', [['LA|VALLE', 'shelf|life', 'office', 'AT', 'wolf|like'], 116], [['LAVALLE', 88], ['shelflife office', 115], ['AT wolflike', 93]]), ('ligature then period', [['fl.', 'fi,'], 200], [['fl. fi,', 35]]), ('cross-word pair must not kern', [['LA', 'Vat'], 200], [['LA Vat', 58]]), ('control layout', [['AVAIL', 'LA|VALLE', 'staff.'], 78], [['AVAIL', 59], ['LAVALLE', 88], ['staff.', 42]]), ('control layout', [['VIA', 'LA|VALLE', 'Wavy', 'wolf|like'], 72], [['VIA', 39], ['LAVALLE', 88], ['Wavy', 45], ['wolflike', 62]])]]\nfor label, args, expected in fixtures[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":"A deterministic toy typesetting model with integer widths and a stipulated rule set; it does not claim conformance to any 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-typography-line-breaking-kern-ligature-measure-kerning-across-spaces","generated_at":"2026-09-29T14:49:51.197522+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Line breaking decides where paragraphs wrap on screen and in print; a wrong decision point shifts every following line.","root_cause":"Line width is measured on the words concatenated without spaces, so pairs kern across word boundaries.","sha256":"690d7c9a3613c3ab63ac9bda07ff372c4048409e4fff5c782d9217a8b33408fb","title":"Kerning and ligature line measure: kerning across spaces · 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":42.139,"exit_code":1,"observations":[{"actual":[["LA Vat",63]],"check":"cross-word pair must not kern","expected":[["LA Vat",58]],"passed":false},{"actual":[["Wavy Ta office",132],["AT office",82],["shelflife flow",109]],"check":"regression: kerning across spaces","expected":[["Wavy Ta office",122],["AT office",77],["shelflife flow",104]],"passed":false},{"actual":[["LAVALLE",88],["av Ta",50],["LAVALLE",88],["dry.",32],["wolflike",62],["wolflike",62]],"check":"partial-repair probe","expected":[["LAVALLE",88],["av Ta",45],["LAVALLE",88],["dry.",32],["wolflike",62],["wolflike",62]],"passed":false},{"actual":[["raffle LA fi fl.",128],["Wavy raffle",101]],"check":"partial-repair probe","expected":[["raffle LA fi fl.",113],["Wavy raffle",96]],"passed":false},{"actual":[["Av av",52]],"check":"case-sensitive pair","expected":[["Av av",47]],"passed":false},{"actual":[["shelflife",64]],"check":"non-joiner blocks ligature","expected":[["shelflife",64]],"passed":true},{"actual":[["fly.",23],["LAVALLE",88]],"check":"control layout","expected":[["fly.",23],["LAVALLE",88]],"passed":true},{"actual":[["our",30],["Av",23]],"check":"control layout","expected":[["our",30],["Av",23]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"cross-word pair must not kern\", \"actual\": [[\"LA Vat\", 63]], \"expected\": [[\"LA Vat\", 58]], \"passed\": false}, {\"check\": \"regression: kerning across spaces\", \"actual\": [[\"Wavy Ta office\", 132], [\"AT office\", 82], [\"shelflife flow\", 109]], \"expected\": [[\"Wavy Ta office\", 122], [\"AT office\", 77], [\"shelflife flow\", 104]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[\"LAVALLE\", 88], [\"av Ta\", 50], [\"LAVALLE\", 88], [\"dry.\", 32], [\"wolflike\", 62], [\"wolflike\", 62]], \"expected\": [[\"LAVALLE\", 88], [\"av Ta\", 45], [\"LAVALLE\", 88], [\"dry.\", 32], [\"wolflike\", 62], [\"wolflike\", 62]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[\"raffle LA fi fl.\", 128], [\"Wavy raffle\", 101]], \"expected\": [[\"raffle LA fi fl.\", 113], [\"Wavy raffle\", 96]], \"passed\": false}, {\"check\": \"case-sensitive pair\", \"actual\": [[\"Av av\", 52]], \"expected\": [[\"Av av\", 47]], \"passed\": false}, {\"check\": \"non-joiner blocks ligature\", \"actual\": [[\"shelflife\", 64]], \"expected\": [[\"shelflife\", 64]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"fly.\", 23], [\"LAVALLE\", 88]], \"expected\": [[\"fly.\", 23], [\"LAVALLE\", 88]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"our\", 30], [\"Av\", 23]], \"expected\": [[\"our\", 30], [\"Av\", 23]], \"passed\": true}], \"passed\": false}\n"},"broken":{"elapsed_ms":39.841,"exit_code":1,"observations":[{"actual":[["LA Vat",55]],"check":"cross-word pair must not kern","expected":[["LA Vat",58]],"passed":false},{"actual":[["Wavy Ta office",122],["AT office",75],["shelflife flow",104]],"check":"regression: kerning across spaces","expected":[["Wavy Ta office",122],["AT office",77],["shelflife flow",104]],"passed":false},{"actual":[["LAVALLE",88],["av Ta",45],["LAVALLE",88],["dry.",32],["wolflike",62],["wolflike",62]],"check":"partial-repair probe","expected":[["LAVALLE",88],["av Ta",45],["LAVALLE",88],["dry.",32],["wolflike",62],["wolflike",62]],"passed":true},{"actual":[["raffle LA fi fl.",113],["Wavy raffle",96]],"check":"partial-repair probe","expected":[["raffle LA fi fl.",113],["Wavy raffle",96]],"passed":true},{"actual":[["Av av",46]],"check":"case-sensitive pair","expected":[["Av av",47]],"passed":false},{"actual":[["shelflife",64]],"check":"non-joiner blocks ligature","expected":[["shelflife",64]],"passed":true},{"actual":[["fly.",23],["LAVALLE",88]],"check":"control layout","expected":[["fly.",23],["LAVALLE",88]],"passed":true},{"actual":[["our",30],["Av",23]],"check":"control layout","expected":[["our",30],["Av",23]],"passed":true}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"cross-word pair must not kern\", \"actual\": [[\"LA Vat\", 55]], \"expected\": [[\"LA Vat\", 58]], \"passed\": false}, {\"check\": \"regression: kerning across spaces\", \"actual\": [[\"Wavy Ta office\", 122], [\"AT office\", 75], [\"shelflife flow\", 104]], \"expected\": [[\"Wavy Ta office\", 122], [\"AT office\", 77], [\"shelflife flow\", 104]], \"passed\": false}, {\"check\": \"partial-repair probe\", \"actual\": [[\"LAVALLE\", 88], [\"av Ta\", 45], [\"LAVALLE\", 88], [\"dry.\", 32], [\"wolflike\", 62], [\"wolflike\", 62]], \"expected\": [[\"LAVALLE\", 88], [\"av Ta\", 45], [\"LAVALLE\", 88], [\"dry.\", 32], [\"wolflike\", 62], [\"wolflike\", 62]], \"passed\": true}, {\"check\": \"partial-repair probe\", \"actual\": [[\"raffle LA fi fl.\", 113], [\"Wavy raffle\", 96]], \"expected\": [[\"raffle LA fi fl.\", 113], [\"Wavy raffle\", 96]], \"passed\": true}, {\"check\": \"case-sensitive pair\", \"actual\": [[\"Av av\", 46]], \"expected\": [[\"Av av\", 47]], \"passed\": false}, {\"check\": \"non-joiner blocks ligature\", \"actual\": [[\"shelflife\", 64]], \"expected\": [[\"shelflife\", 64]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"fly.\", 23], [\"LAVALLE\", 88]], \"expected\": [[\"fly.\", 23], [\"LAVALLE\", 88]], \"passed\": true}, {\"check\": \"control layout\", \"actual\": [[\"our\", 30], [\"Av\", 23]], \"expected\": [[\"our\", 30], [\"Av\", 23]], \"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."}}