조시 깁슨의 삼진은 열여섯 시즌 중 네 해가 기록에 없다. 그 칸에 0을 적으면 지면이 그 해 삼진을 당하지 않았다고 말한다. 전혀 다른 말이다.
니그로리그 기록은 지금도 채워지고 있다. Seamheads가 당시 신문의 박스스코어를 찾아 넣는 일을 계속하고 있어서, 어떤 시즌의 어떤 칸은 아직 비어 있다. 그 칸은 0이 아니고 모른다는 뜻이다.
값이 없으면 항목을 뺀다
규칙은 하나다. 값이 없으면 그 항목을 블록에서 뺀다. SO: null을 적어 두면 모른다는 말이 전해지지 않고 0처럼 읽히는 자리만 하나 생긴다.
통산 합계는 더 조심해야 했다. 있는 것만 더해 놓고 없는 걸 감추면, 네 시즌이 빠진 합계가 통산 기록으로 인쇄된다. 숫자 자체는 참인데 통산이라는 이름이 거짓이 된다.
/** 한 행이라도 값이 없으면 `null`인 합산. 있는 것만 더해 놓고 없는 것을 감추지 않는다. */
export function wholeSum(rows, key) {
for (const r of rows) {
const v = r[key]
if (v == null || v === '') return null
total += Number(v)
}
return total
}
비율 스탯은 재료가 없으면 함께 뺀다. 분자나 분모 한쪽이 비어 있으면 계산하면 수야 나오지만 그 수가 뜻하는 게 없다.
이 규칙이 두 곳에서 필요했다. 연도 블록과 통산 합계다. 같은 판단을 두 군데에 적어 두면 한쪽만 고쳐지는 날이 온다. 그래서 한 파일에 한 번만 적고 양쪽이 그걸 부른다.
시즌 클럽도 같은 원칙을 쓴다. 어느 니그로리그 시즌의 도루가 비어 있으면 30-30을 못 넘었다고 하지 않고 판정하지 않는다. 없는 기록으로 없는 클럽을 만들지 않는다.
통산과 발자취가 다른 이유
통산 합계는 조직된 리그만 센다. 무소속으로 뛴 시즌은 안 들어간다.
그런데 그 시즌을 발자취에서 빼지는 않았다. 한 사람의 삶이 리그 경기로만 되어 있지 않다. 깁슨은 1931년과 1932년에 무소속 클럽에서 뛰었고 그건 실제로 일어난 일이다. 그래서 발자취에는 남기고 그 해에 무소속 라벨을 붙인다. 발자취를 더해도 통산과 안 맞는 이유를 지면이 스스로 말한다.
Baseball Reference도 같은 선을 긋는다. 깁슨의 1931년과 1932년은 그쪽 메이저 표에도 없다. 처음엔 둘 다 더했는데 그러니 엔진이 앞뒤가 안 맞았다. 그 해엔 타이틀을 안 주면서 그 해 안타는 통산에 더하고 있었다.
기록이 갈릴 때
스냅샷은 한 릴리스에 못 박혀 있고 Seamheads는 계속 찾아낸다. 그래서 깁슨의 1933년부터 1939년까지가 Baseball Reference와 다르다.
이럴 때는 bbref를 따른다. 다만 절대값만 덮는다. 고친 시즌은 전기 재료에 적어 두고 왜 두 쪽이 갈리는지와 무엇을 따랐는지를 함께 적는다. 둘 다 필수다. 이유 없는 덮어쓰기는 오타와 구별되지 않는다. 비율은 고친 재료에서 다시 계산한다. 모르는 스탯 이름이나 정수가 아닌 값은 바로 에러로 멈춘다.
통산 단위 오버라이드는 두지 않았다. 시즌을 덮으면 합계가 따라오니 손대는 자리가 하나로 남는다.
고친 값은 리그 선두 판정에 넣지 않는다
여기를 제일 조심했다.
리그 선두 타이틀은 상대적이다. 한 선수의 수만으로는 판정이 안 되고 그 리그 전체의 줄이 필요하다. 그런데 한 선수의 수만 bbref로 올리고 리그는 스냅샷 값에 그대로 두면 없던 왕관이 생긴다.
깁슨의 1937년 안타가 그렇다. 스냅샷은 65안타고 그해 리그 최다는 67이다. bbref의 69를 그대로 쓰면 리그 최다가 되어 안타왕이 하나 생긴다. 리그의 다른 선수들은 아직 옛 값에 있는데 말이다.
그래서 고친 값이 리더보드에 아예 닿지 못하게 구조로 막았다. 설정으로 끄는 게 아니고 그 경로가 없다.
시대에 없던 상은 넣지 않는다
수상은 전부 그 출처가 기록한 해를 함께 지고 온다. 수상 테이블, 올스타 명단, 포스트시즌 시리즈, 리그 우승, 리더보드, 명예의 전당. 그 어느 것도 자기 시대 밖의 상을 들고 있지 않다.
손으로 상을 적어 넣는 경로를 안 둔 게 그래서다. 그 경로를 열면 시대 정직이 다시 사람 몫으로 돌아온다. 데드볼 시대 선수에게 골드글러브를 적어 넣는 걸 막을 게 없어진다.
데드볼 선수의 전시대는 빈 선반이 많다. 리그 선두 타이틀과 월드시리즈와 페넌트, 그리고 1936년 이후의 명예의 전당 헌액. 그게 그 시대의 정직한 목록이다. 데드볼 지면이 다섯 선반을 보여 주고 현대 지면이 여덟 선반을 보여 주는 건 레이아웃 버그가 아니라 정상이다.
니그로리그는 또 다르게 생겼다. MVP도 사이영상도 받을 상 자체가 없었다. 그쪽 전시대는 리그 선두 타이틀과 페넌트, 올스타 선정, 뒤늦은 헌액으로 선다. 비어서 그런 게 아니다. 모양이 다르다.
문장은 통하는 쪽으로 쓴다
예외를 하나 뒀다.
MVP의 앞선 형태가 둘 있다. 1911년부터 1914년까지의 챌머스상과 1922년부터 1929년까지의 리그상이다. 스냅샷은 둘 다 안 담고 있고 mvp 코드를 1931년 앞으로 소급하지도 않는다. 그래서 전시대에는 안 보인다.
그런데 산문은 센다. 루스의 1923년 아메리칸리그상은 그의 하나뿐인 리그 MVP다. 그걸 MVP가 없었다고 쓰면 읽는 사람이 아는 사실과 어긋난다.
이게 이 콘텐츠 타입의 동점 규칙이 됐다. 역사적 집계가 갈릴 때는 Baseball Reference와 통념을 따른다. 레코드는 문자 그대로 남기고 문장은 통하는 대로 쓴다.