{"abstract":"A king on e4 checked by a rook on e8 may step back to e3.","category":"Chess move legality","checks":8,"contract":"Input: {\"board\", \"from\": king square, \"to\": square}. Return true when the king move is legal: exactly one square in any direction, not onto a friendly piece, and the destination is not attacked by the opponent (including the enemy king) once the king has left its origin square. Captures of undefended enemy pieces are allowed.","evaluation_group":"w2-chess_move_legality-king-step-safety","failed_approach":"Vacating the origin only for quiet moves still lets a capturing king hide behind its own origin square.","family":"w2-chess_move_legality-king-step-safety-vacate-origin-before-test","id":"FA-82466","implementations":{"attempt":{"sha256":"4033c8573b6c55c1f381c77934a4a57ff26ed03357ade476875e6a8cb27b164e","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def attacked(bd, sq, by_white):\n        f,r=ord(sq[0])-97,int(sq[1])-1\n        def at(ff,rr):\n            return bd.get(chr(97+ff)+str(rr+1)) if 0<=ff<8 and 0<=rr<8 else None\n        P,N,B,R,Q,K=('PNBRQK' if by_white else 'pnbrqk')\n        pr=r-1 if by_white else r+1\n        if at(f-1,pr)==P or at(f+1,pr)==P: return True\n        for df,dr in ((1,2),(2,1),(-1,2),(-2,1),(1,-2),(2,-1),(-1,-2),(-2,-1)):\n            if at(f+df,r+dr)==N: return True\n        for df in (-1,0,1):\n            for dr in (-1,0,1):\n                if (df or dr) and at(f+df,r+dr)==K: return True\n        for df,dr,kinds in ((1,0,(R,Q)),(-1,0,(R,Q)),(0,1,(R,Q)),(0,-1,(R,Q)),(1,1,(B,Q)),(1,-1,(B,Q)),(-1,1,(B,Q)),(-1,-1,(B,Q))):\n            ff,rr=f+df,r+dr\n            while 0<=ff<8 and 0<=rr<8:\n                v=at(ff,rr)\n                if v:\n                    if v in kinds: return True\n                    break\n                ff+=df; rr+=dr\n        return False\n    \n    b=x['board']; fr,to=x['from'],x['to']; k=b[fr]; white=k=='K'\n    df=ord(to[0])-ord(fr[0]); dr=int(to[1])-int(fr[1])\n    if max(abs(df),abs(dr))!=1: return False\n    occ=b.get(to)\n    if occ and occ.isupper()==white: return False\n    nb=dict(b); nb[to]=nb.pop(fr) if not occ else k\n    return not attacked(nb, to, not white)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('capture defended',\n   {'board': {'a8': 'k', 'd6': 'p', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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":"0c9f75c876648db809819589ca2bcb6a0a03a60e535ff42443c372ec18fccc53","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def attacked(bd, sq, by_white):\n        f,r=ord(sq[0])-97,int(sq[1])-1\n        def at(ff,rr):\n            return bd.get(chr(97+ff)+str(rr+1)) if 0<=ff<8 and 0<=rr<8 else None\n        P,N,B,R,Q,K=('PNBRQK' if by_white else 'pnbrqk')\n        pr=r-1 if by_white else r+1\n        if at(f-1,pr)==P or at(f+1,pr)==P: return True\n        for df,dr in ((1,2),(2,1),(-1,2),(-2,1),(1,-2),(2,-1),(-1,-2),(-2,-1)):\n            if at(f+df,r+dr)==N: return True\n        for df in (-1,0,1):\n            for dr in (-1,0,1):\n                if (df or dr) and at(f+df,r+dr)==K: return True\n        for df,dr,kinds in ((1,0,(R,Q)),(-1,0,(R,Q)),(0,1,(R,Q)),(0,-1,(R,Q)),(1,1,(B,Q)),(1,-1,(B,Q)),(-1,1,(B,Q)),(-1,-1,(B,Q))):\n            ff,rr=f+df,r+dr\n            while 0<=ff<8 and 0<=rr<8:\n                v=at(ff,rr)\n                if v:\n                    if v in kinds: return True\n                    break\n                ff+=df; rr+=dr\n        return False\n    \n    b=x['board']; fr,to=x['from'],x['to']; k=b[fr]; white=k=='K'\n    df=ord(to[0])-ord(fr[0]); dr=int(to[1])-int(fr[1])\n    if max(abs(df),abs(dr))!=1: return False\n    occ=b.get(to)\n    if occ and occ.isupper()==white: return False\n    nb=dict(b); nb[to]=k\n    return not attacked(nb, to, not white)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('capture defended',\n   {'board': {'a8': 'k', 'd6': 'p', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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":"ce98a81337870ebebc4984db6a8c1ecefb268b87d6f385d3cf690d7d4effbfc6","source":"\"\"\"Failure Map reference implementation. Python standard library only.\"\"\"\nimport json\n\nN = 1\nobservations = []\ndef solve(x):\n    def attacked(bd, sq, by_white):\n        f,r=ord(sq[0])-97,int(sq[1])-1\n        def at(ff,rr):\n            return bd.get(chr(97+ff)+str(rr+1)) if 0<=ff<8 and 0<=rr<8 else None\n        P,N,B,R,Q,K=('PNBRQK' if by_white else 'pnbrqk')\n        pr=r-1 if by_white else r+1\n        if at(f-1,pr)==P or at(f+1,pr)==P: return True\n        for df,dr in ((1,2),(2,1),(-1,2),(-2,1),(1,-2),(2,-1),(-1,-2),(-2,-1)):\n            if at(f+df,r+dr)==N: return True\n        for df in (-1,0,1):\n            for dr in (-1,0,1):\n                if (df or dr) and at(f+df,r+dr)==K: return True\n        for df,dr,kinds in ((1,0,(R,Q)),(-1,0,(R,Q)),(0,1,(R,Q)),(0,-1,(R,Q)),(1,1,(B,Q)),(1,-1,(B,Q)),(-1,1,(B,Q)),(-1,-1,(B,Q))):\n            ff,rr=f+df,r+dr\n            while 0<=ff<8 and 0<=rr<8:\n                v=at(ff,rr)\n                if v:\n                    if v in kinds: return True\n                    break\n                ff+=df; rr+=dr\n        return False\n    \n    b=x['board']; fr,to=x['from'],x['to']; k=b[fr]; white=k=='K'\n    df=ord(to[0])-ord(fr[0]); dr=int(to[1])-int(fr[1])\n    if max(abs(df),abs(dr))!=1: return False\n    occ=b.get(to)\n    if occ and occ.isupper()==white: return False\n    nb=dict(b); del nb[fr]; nb[to]=k\n    return not attacked(nb, to, not white)\ndef check(label, actual, expected):\n    observations.append({\"check\": label, \"actual\": actual, \"expected\": expected, \"passed\": actual == expected})\nfixtures = [[('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture undefended', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'},\n   True),\n  ('capture defended',\n   {'board': {'a8': 'k', 'd6': 'p', 'e4': 'K', 'e5': 'p'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('next to enemy king orthogonal', {'board': {'e4': 'K', 'e6': 'k'}, 'from': 'e4', 'to': 'e5'},\n   False),\n  ('next to enemy king diagonal', {'board': {'e4': 'K', 'g6': 'k'}, 'from': 'e4', 'to': 'f5'},\n   False),\n  ('knight below', {'board': {'a8': 'k', 'e4': 'K', 'f1': 'n'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('knight above', {'board': {'a8': 'k', 'd7': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('capture defended knight',\n   {'board': {'a8': 'k', 'e4': 'K', 'e5': 'n', 'e7': 'r'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('two squares', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e6'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)],\n [('retreat along rook file',\n   {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('sidestep rook file', {'board': {'a1': 'k', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'd3'},\n   True),\n  ('diagonal step', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'f5'}, True),\n  ('stand still', {'board': {'a8': 'k', 'e4': 'K'}, 'from': 'e4', 'to': 'e4'}, False),\n  ('capture own', {'board': {'a8': 'k', 'e4': 'K', 'e5': 'P'}, 'from': 'e4', 'to': 'e5'}, False),\n  ('black king bishop diag retreat',\n   {'board': {'b3': 'B', 'd5': 'k', 'h1': 'K'}, 'from': 'd5', 'to': 'e6'}, False),\n  ('capture along check line',\n   {'board': {'a1': 'k', 'e3': 'p', 'e4': 'K', 'e8': 'r'}, 'from': 'e4', 'to': 'e3'}, False),\n  ('knight far below', {'board': {'a8': 'k', 'c4': 'n', 'e4': 'K'}, 'from': 'e4', 'to': 'd3'},\n   True)]]\nfor label, args, expected in fixtures[N-1]:\n    try:\n        actual = solve(args)\n    except Exception as exc:\n        actual = 'error:' + type(exc).__name__\n    check(label, actual, 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 model with an explicitly stated contract; boards are {square: piece} with white upper-case and black lower-case pieces; no claim of full FIDE Laws conformance. 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-chess_move_legality-king-step-safety-vacate-origin-before-test","generated_at":"2026-09-29T14:50:12.403361+00:00","license":"CC0-1.0","python":"3.12.14","seed":1,"split":"open-access"},"relevance":"Move validators gate every move in engines, servers and arbiters; accepting an illegal move or rejecting a legal one corrupts the game record.","repair":"Remove the king from its origin and place it on the destination before testing attacks.","root_cause":"The safety test runs with the king still on its origin square, which shields the destination from the rook.","sha256":"1cefff6a72e516f753f471fce91d66fdfe60787447d2aeb41406fe68e770dfdd","title":"King retreats along the checking line · case 01","variant":1,"variant_policy":"Five numbered records share a model and may reuse boundary fixtures.","verification":{"attempt":{"elapsed_ms":42.979,"exit_code":1,"observations":[{"actual":false,"check":"retreat along rook file","expected":false,"passed":true},{"actual":true,"check":"sidestep rook file","expected":true,"passed":true},{"actual":true,"check":"diagonal step","expected":true,"passed":true},{"actual":false,"check":"stand still","expected":false,"passed":true},{"actual":false,"check":"capture own","expected":false,"passed":true},{"actual":true,"check":"capture undefended","expected":true,"passed":true},{"actual":false,"check":"black king bishop diag retreat","expected":false,"passed":true},{"actual":true,"check":"capture along check line","expected":false,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"retreat along rook file\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"sidestep rook file\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"diagonal step\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stand still\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture own\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture undefended\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"black king bishop diag retreat\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture along check line\", \"actual\": true, \"expected\": false, \"passed\": false}], \"passed\": false}\n"},"broken":{"elapsed_ms":41.997,"exit_code":1,"observations":[{"actual":true,"check":"retreat along rook file","expected":false,"passed":false},{"actual":true,"check":"sidestep rook file","expected":true,"passed":true},{"actual":true,"check":"diagonal step","expected":true,"passed":true},{"actual":false,"check":"stand still","expected":false,"passed":true},{"actual":false,"check":"capture own","expected":false,"passed":true},{"actual":true,"check":"capture undefended","expected":true,"passed":true},{"actual":true,"check":"black king bishop diag retreat","expected":false,"passed":false},{"actual":true,"check":"capture along check line","expected":false,"passed":false}],"passed":false,"stderr":"","stdout":"{\"observations\": [{\"check\": \"retreat along rook file\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"sidestep rook file\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"diagonal step\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stand still\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture own\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture undefended\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"black king bishop diag retreat\", \"actual\": true, \"expected\": false, \"passed\": false}, {\"check\": \"capture along check line\", \"actual\": true, \"expected\": false, \"passed\": false}], \"passed\": false}\n"},"fixed":{"elapsed_ms":39.694,"exit_code":0,"observations":[{"actual":false,"check":"retreat along rook file","expected":false,"passed":true},{"actual":true,"check":"sidestep rook file","expected":true,"passed":true},{"actual":true,"check":"diagonal step","expected":true,"passed":true},{"actual":false,"check":"stand still","expected":false,"passed":true},{"actual":false,"check":"capture own","expected":false,"passed":true},{"actual":true,"check":"capture undefended","expected":true,"passed":true},{"actual":false,"check":"black king bishop diag retreat","expected":false,"passed":true},{"actual":false,"check":"capture along check line","expected":false,"passed":true}],"passed":true,"stderr":"","stdout":"{\"observations\": [{\"check\": \"retreat along rook file\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"sidestep rook file\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"diagonal step\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"stand still\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture own\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture undefended\", \"actual\": true, \"expected\": true, \"passed\": true}, {\"check\": \"black king bishop diag retreat\", \"actual\": false, \"expected\": false, \"passed\": true}, {\"check\": \"capture along check line\", \"actual\": false, \"expected\": false, \"passed\": true}], \"passed\": true}\n"}},"verified":true,"visibility":"public"}