1P by GN⁺ | ★ favorite | 댓글 1개
  • 영국 여권 신청 절차를 관료적 문서 수집 퍼즐로 보고, 국적 증명에 필요한 문서 조합을 Haskell 논리 탐색으로 계산한 사례임
  • HMPO의 문서 요청은 신청자·부모·조부모의 출생지와 출생일, 부모의 국적·정착 상태, 혼인 여부에 따라 가계도 방향으로 재귀될 수 있음
  • 해외 출생 아동의 첫 여권 신청에서 증조부의 출생증명서와 혼인증명서까지 요구됐고, 1983년 이전 UK 출생 같은 기저 사례에 닿아야 재귀가 멈춤
  • 구현은 Prolog 대신 Haskell의 LogicTStateT Claims IO로 가능한 국적 증명 Proof를 열거하고, 각 경로에 필요한 Set Document를 계산함
  • 같은 신청에도 여러 증명 경로가 가능해 단순한 경로가 남아 있어도 실제 요청은 더 길어질 수 있으며, 자동화는 문서 준비와 요청 이유 이해에 도움이 될 수 있음

Passport Application을 문서 수집 게임으로 보기

  • UK의 Passport Application은 HMPO가 운영하는 온라인 신청 절차이며, 표준 온라인 버전은 시작 비용이 약 £100
  • 목표는 여러 관료 기관에 흩어진 원본 문서를 모아 “신청자는 British”라는 명제를 증명하는 것임
  • 최종 보상은 다시 신청할 수 있는 날짜가 적힌 작은 책자, 즉 여권임
  • 종이 기반 신청은 우편에 의존하는 “하드코어” 버전에 가까움

실제 신청에서 이어진 문서 요청

  • 사례는 딸을 대신해 온라인으로 “first child passport born abroad” 난이도를 선택한 신청임
  • 신청은 “examiner”가 처리하지만, 신청자는 채팅이나 전화의 advice agent를 통해서만 문의할 수 있음
    • advice agent의 안내는 공식 결정이 아님
    • examiner에게 질문을 전달하면 며칠, 사례상 최대 10일 정도의 대기 시간이 생김
  • 초기 문서 요청 중 약 50% 는 채팅 서비스에서 불필요하다고 안내됐고, 이후에도 추가 문서 요청이 이어짐
  • 요청 이메일에는 깨진 템플릿처럼 보이는 __APPLICANT_NAME__이 포함됐고, 부모 책임 증명 조건도 명확하지 않았음
  • 최종적으로 드문 요청인 부계 증조부의 출생증명서와 혼인증명서가 요구됨
    • “applicant's Paternal great grandfather”는 두 명 중 누구인지 모호할 수 있음
    • 이를 applicant's father's father's father's birth certificate로 해석함

HMPO 논리를 재귀적 증명 문제로 해석하기

  • HMPO의 논리는 문서 기반의 Bureaucratic Logic으로 볼 수 있음
    • Constructive Logic처럼 단순한 논리적 가능성만으로는 부족함
    • 증명에는 원본 문서라는 “증인”이 필요함
  • 배중률 P ∨ ¬P를 그대로 사용할 수 없음
    • 예를 들어 “부친의 부친이 UK 출생인지 아닌지” 중 하나는 참이라고 말하고 양쪽 시나리오 문서를 모두 내는 방식은 허용되지 않음
    • 하나의 대안을 선택하고 그에 맞는 문서를 제출해야 함
  • HMPO 안내문에 따르면 1982년 12월 31일 이후 UK 밖에서 태어난 사람은 일반적으로 출생 당시 부모 중 한 명이 “British citizen otherwise than by descent”여야 British citizen이 됨
  • HMPO가 자체 여권 기록만으로 Britishness를 증명하지 않기 때문에, 일부 신청에서는 부모·조부모 방향으로 재귀적 문서 요청이 발생함
  • 재귀는 Britishness가 부모에 의존하지 않는 조상에서 멈춤
    • 예: 귀화한 사람
    • 예: 1983년 이전 UK 출생자, 부모와 무관하게 British인 기저 사례

사례의 요청 체인

  • HMPO가 최초 문서를 받은 날짜는 6월 7일이며, 신청자의 출생증명서와 신청자 부친의 출생증명서가 포함됨
  • 6월 12일 요청:
    • 신청자 부친이 1983년 1월 1일 이후 출생했기 때문에, 부친의 British citizenship claim 증거가 필요하다고 안내됨
    • 그 결과 부친의 부친 출생증명서가 요구됨
  • 6월 26일 요청:
    • 신청자의 조부가 해외 출생이므로 British citizenship claim 증거가 필요하다고 안내됨
    • 이에 따라 신청자의 부계 증조부 문서가 요구됨
    • 필요한 문서는 출생증명서와 혼인증명서임
  • 이 재귀는 이메일 요청 형태로 진행됨

Haskell 구현 구조

  • 전체 코드는 GitHub에 있음
  • 처음에는 Prolog로 규칙을 인코딩하다가 Haskell의 LogicT 모나드로 전환함
  • 목표는 단일 문서 목록이 아니라 가능한 여러 문서 집합을 찾는 것임
    • 국적 주장 방식이 여러 개라서 필요한 문서 집합도 여러 개가 될 수 있음
    • 개념적으로 Set (Set Document)가 필요함
  • 문서 모델은 신청자와 조상, 증명서 종류를 타입으로 표현함
    • Parent = Mother | Father
    • Person = Applicant | Parent Parent Person
    • Document = BirthCertificate Person | MarriageCertificate Person Person | NaturalizationCertificate Person | Passport Person
  • 단순 문서 목록만으로는 왜 충분한지 알기 어려워, 문제를 증명 탐색으로 다룸
    • LogicT로 신청자의 Britishness에 대한 모든 Proof를 열거함
    • Proof에 필요한 문서 집합을 계산함

Proof와 지식 상태

  • 증명 타입은 세 가지 형태로 구성됨
    • ViaParent Person Proof: 부모를 통한 Britishness 파생
    • And Proof Proof: 두 개의 주장 결합
    • Evidence Predicate: 기초 증거
  • 필요한 질문은 실행 중에 사용자에게 묻고, 이전 답변은 모든 분기와 백트래킹에서 재사용함
  • 이를 위해 IO, State, LogicT를 결합함
    • type Claims = Map Predicate Knowledge
    • type M a = LogicT (StateT Claims IO) a
  • KnowledgeSureYes, SureNo, Unsure로 나뉨
  • Predicate는 규칙 판단에 필요한 조건을 나타냄
    • IsBritish Person
    • Settled Person
    • BornBefore Int Person
    • BornInUK Person
    • BornAfter Int Person
    • Naturalized Person
    • Years3LivingInUK Person
    • IsBritOtbd Person
    • Married Person Person

국적 판정 규칙의 핵심

  • brit 함수는 사람이 British인지 판단하는 루트 함수임
    • 먼저 IsBritish p를 확인함
    • 출생에 의한 Britishness와 귀화를 통한 Britishness를 탐색함
  • 귀화는 단순한 경로이며, 귀화증명서 하나가 핵심 문서가 됨
  • UK 출생자는 크게 두 경우로 나뉨
    • 1983년 이전 UK 출생이면 기저 사례로 Britishness를 얻음
    • 그 이후 출생이면 부모 중 한 명이 British이거나 당시 정착 상태였는지 확인함
  • UK 밖에서 태어난 경우는 더 복잡함
    • 부모가 British otherwise than by descent인지 확인함
    • 또는 부모가 British이고 UK에서 3년 연속 거주한 증거가 있는지 확인함
  • “British otherwise than by descent”는 부모로부터만 Britishness를 받은 사람이 아닌 경우를 가리킴
    • 예: 귀화
    • 예: UK 출생
    • 예: 해외 출생이지만 부모가 “Crown Service” 근무 중이었던 경우

부모를 통한 전파와 2006년 조건

  • viaParent는 자녀가 부모를 통해 Britishness를 얻는 경우를 표현함
  • 어머니와 아버지 양쪽 경로를 탐색하되, 아버지 경로에는 추가 조건이 붙음
    • 자녀가 2006년 이후 출생이면 아버지 경로를 그대로 사용할 수 있음
    • 2006년 이전 출생이면 아버지와 어머니가 출생 당시 혼인 상태였는지 확인함
  • 구현에는 “registration”처럼 우회 가능한 경로와 일부 성차별적 역사 조항이 포함되지 않음
  • 현재는 적용되지 않는 법도 조상의 Britishness를 판단할 때는 역사적으로 적용될 수 있음

실행 결과와 세 가지 증명 경로

  • run (brit Applicant) 실행은 대화형 질문으로 진행됨
    • 예: 신청자가 UK 출생인지
    • 예: 부친이 British otherwise than by descent인지
    • 예: 조부모가 정착 상태였는지
    • 사례에서는 총 37개 질문이 이어짐
  • 사용자는 dk로 모른다고 답할 수 있고, 그러면 해당 분기를 계속 탐색함
  • 결과는 신청자에게 3개의 Britishness proof가 있음을 출력함
  • Proof 1:
    • 신청자는 2006년 이후 출생
    • 부친을 통한 Britishness
    • 부친은 UK 출생
    • 부친의 어머니가 출생 당시 정착 상태
    • 필요한 문서는 신청자 출생증명서, 부친 출생증명서, 부친의 어머니 정착 상태 문서임
  • Proof 2:
    • 부친의 부친의 어머니가 1983년 이전 UK 출생자인 경로임
    • 필요한 문서에는 신청자, 부친, 조부, 조부의 어머니 출생증명서와 조부모 혼인증명서가 포함됨
  • Proof 3:
    • 부친의 부친의 부친, 즉 부계 증조부가 1983년 이전 UK 출생자인 경로임
    • 필요한 문서에는 신청자, 부친, 조부, 부계 증조부 출생증명서와 두 세대의 혼인증명서가 포함됨
    • HMPO가 요구한 Birth certificate for Applicant's Father's Father's Father가 이 경로에 나타남

Crown Service와 더 복잡한 경로

  • 사례에서 부계 증조부의 Crown Service 상태는 혼란을 만들었지만, 실행 결과상 해당 상태는 필요하지 않았음
  • 부친의 British otherwise than by descent 상태는 UK 출생과 조부의 단순 Britishness에서 이미 도출됨
  • 다만 조부의 단순 Britishness는 여전히 증명해야 하므로 재귀는 조부 세대로 내려감
  • 조부의 “legitimacy”를 증명하기 위해 혼인증명서도 필요함
  • HMPO가 선택한 경로는 세 가지 중 가장 길고 복잡한 Proof 3
    • Proof 1은 한 조상의 정착 상태만 증명하면 되는 더 단순한 경로임
    • 비British 정착 조상을 통한 시민권은 비재귀적이라 더 단순할 수 있음
    • 다만 특정 시점의 정착 상태를 증명하는 일 자체는 어려울 수 있음

구현상의 한계와 자동화 판단

  • orElse는 첫 번째 분기가 성공하면 두 번째 분기를 탐색하지 않지만, <|>는 양쪽 분기를 모두 탐색함
  • 일부 규칙에서는 <|>를 쓰면 더 많은 시민권 증명 경로가 나오지만, HMPO가 먼저 특정 경로를 소진하려는 것처럼 보이는 경우가 있음
  • 구현은 특정 시점의 조건을 충분히 정밀하게 추적하지 않음
    • 예: 혼인 상태나 정착 상태가 특정 인물의 출생 당시 성립해야 하는 경우
    • 이는 어렵지 않게 추가할 수 있는 부분으로 봄
  • 전체 UK 국적법을 구현한 것이 아니라, 사례와 관련 있거나 흥미로운 부분만 인코딩함
    • 전체 구현에는 훨씬 많은 코드와 많은 예외가 필요함
  • 이런 소프트웨어가 있었다면 올바른 문서 집합을 더 빠르게 만들고, 요청이 복잡해진 이유를 이해하는 데 유용했을 수 있음
  • 완전 자동화에는 위험도 있음
    • 프로그램이 false positive를 내면 “컴퓨터가 된다고 했다”는 항의가 생길 수 있음
    • 인간 전문성을 대체하는 자동화는 “컴퓨터가 안 된다고 했다”는 이유로 시민권이 거부되는 상황으로 이어질 수 있음
  • 현재 신청은 아직 끝나지 않았고, Proof 2와 Proof 3을 동시에 진행하다가 실패하면 Proof 1을 시도할 계획임

댓글과 토론

Hacker News 의견들
  • 지난 10년간 여러 대형 영국 정부 시스템을 다뤄봤는데, 이 글은 정부 서비스/소프트웨어를 만들 때 이상한 결과가 나오는 이유를 잘 보여줌
    정부 소프트웨어는 본질적으로 수백 년치 의회 법률을 코드로 옮기는 작업임. HMPO 여권 시스템을 만들었는데 그 기반이 되는 법이 바뀌거나 폐지되면, 누군가 모든 시스템에서 그 법이 영향을 준 부분을 찾아 고쳐야 함
    여기에 정부가 비싼 컨설팅 업체에 자주 외주를 주고, 업체들은 계약을 늘리고 고객에게서 최대 가치를 뽑아내며 자리 잡으려는 동기가 있음. 품질과 유연성이 들쭉날쭉한 시스템을 만들다 보니 법이 바뀔 때마다 같은 과정이 반복됨
    예전에는 Spend Controls 같은 중앙 의사결정 권한이 있었지만 지금은 이 문제를 조율할 중심이 없고, 그래서 정부 서비스 제공 비용이 이렇게 비싸짐

    • 왜 계약상으로 하청업체가 작동하는 시스템을 만들 의무가 없어 보이는지 궁금함
      실제로는 작동하는 것에 가까운 무언가를 만들고, 주니어 개발자 한 명이 3개월이면 할 것 같은 결과물에 1000배쯤 과다 청구하지만, 시스템이 실제로 작동한 것처럼 돈을 받는 듯함
    • 최근 프랑스에서 여권을 갱신했는데, 필요한 모든 문서를 신청할 수 있는 비교적 새 플랫폼이 있었고 온라인 양식 하나만 작성하면 됐음
      양식은 따라가기 쉬웠고, 이후 사무실에 한 번 가서 절차를 마무리했는데 10분밖에 걸리지 않았고 여권은 배송됨. 가능한 한 고통이 적은 절차였다고 봄
      영국 상황이 어떻든 절망적이진 않음. 정부가 실제 직원을 채용하는 걸 두려워하지 말고 개발을 전부 내부화해야 함
    • 재사용 가능한 오픈소스 규칙 시스템에 기회가 있지 않을까 싶음. 모든 단계의 정부가 규칙을 표현력 있게 정의하고 버전 관리할 수 있는 시스템을 쓸 수 있을 것 같음
      지적한 대로 기술 업무가 전부 외주화되어 있어, 꽤 혁명적인 재설계를 상상하고 실행할 조직 내부 역량이 부족한 게 격차의 일부로 보임
      정부가 IT 프로젝트에 하청업체 비용으로 수천만을 쓰면서도, 장기적으로 더 쌀 수 있는 내부 엔지니어에게 시장가를 지급하지 못하는 건 매우 답답함
    • 법이 본질적으로 수정안이 계속 덧붙는 추가 전용 저장소처럼 되는 문제는 영국만의 일이 아님
      여기저기 예외 조건문을 흩뿌리는 대신, 추가 전용 방식으로 “패치”만 먹이면 되는 시스템이 있으면 좋겠음
      일부 논리형 프로그래밍 언어가 어느 정도는 가능하지만, 진짜 문제는 기술 부채 예산이 없고 법을 다루는 변호사들도 복잡함에서 이익을 얻을 수 있다는 점 같음. 법을 최대한 단순하게 유지하도록 전담하는 사람들이 있으면 좋겠음
    • 외주가 누군가에게 제대로 성공한 적이 있나? 정부가 무언가를 외주 줘서 성공했다는 이야기를 거의 들어본 적이 없음
  • Haskell 문법은 흥미로움. 누가 설명해주고 나면 직관적인데, 설명 전에는 그다지 직관적이지 않음
    Algol 계열 언어(C, Python 등)에 익숙해서만 그런 건 아니라고 봄. 지금까지 본 Haskell 코드는 코드를 간결하게 만들려는 연산자가 너무 많고, 보기만 해서는 무엇을 하는지 명확하지 않았음: https://academy.fpblock.com/haskell/tutorial/operators/

    • 예전에 대략 세어봤는데, lens나 도메인 특화 라이브러리를 피한 “일반적인” Haskell 코드에서 만나는 연산자 수는 JavaScript에서 만나는 연산자 수와 꽤 비슷했음
      오래전이라 다시 해보고 싶진 않지만, JavaScript 쪽에 후하게 잡아도 실무 Haskell에 필요한 연산자는 실무 JavaScript의 10배가 아니라 대략 2배 수준임
      Haskell에는 초반에 감수해야 하는 부수적 복잡성이 있지만, 인기 입문 언어들과 종류가 다른 게 아니라 정도가 다른 차이임. Algol 스타일 언어에 대해 얼마나 많은 것을 배웠는지, 이미 너무 내면화해서 잊기 쉬움
      프로그래밍 초보인 중고생에게 Java와 Python을 가르쳐봤는데, 특히 1:1로 보면 내가 설명이 필요하다는 사실조차 잊고 있던 것들에서 막히곤 했음. Python에서 : 위치를 틀리거나 =가 어떻게 동작하는지 이해하지 못하는 식임
      := 같은 “기본” 문법도 우리가 생각하는 것보다 훨씬 복잡함. 영어 원어민이 “big red ball”과 “red big ball”의 형용사 순서 규칙을 의식하지 못하지만 학습자는 벽처럼 마주치는 것과 비슷함
    • 그 링크의 연산자 대부분은 아주 표준적인 것들이고, Haskell에 대해 이야기할 때 가장 덜 흥미로운 부분에 속함
      프로그래밍을 모르는 상태에서 임의의 Java 프로그램을 집어 들면 역시 거의 이해하지 못할 것임. 수학 수업을 하나도 듣지 않고 수식을 읽으려 하면 연산자든 뭐든 이해하지 못하는 것도 마찬가지임
      기준은 기본을 배우고 튜토리얼 몇 개를 해본 뒤 얼마나 이해할 수 있는가여야 함
    • “설명해주고 나면 직관적이지만 설명 전에는 아니다”라는 건 직관적이라는 뜻에 꽤 가깝지 않나 싶음
      직관적이라는 건 사전 지식이나 설명 없이도 쉽게 이해하거나 배울 수 있다는 의미에 가까움
    • Larry Wall이 Perl에 대해 비슷한 이야기를 했던 것 같음. 어떤 것은 배운 뒤에야 직관적일 수 있음
      불평하는 대상도 사실 문법은 아닌 듯함. Haskell의 일부 구성 요소는 모나드나 렌즈 같은 특정 모델을 참조하고, 독자가 그 지식을 이미 갖고 있지 않다면 어떤 문법도 그 지식을 주입해주지는 못함
  • 이 글이 좋았음. 처음에는 패러디로 시작했다가, 서서히 그 “게임”에 대한 진지하고 우아한 해법으로 바뀜
    끝날 때쯤에는 나도 직접 해보고 싶을 정도였음

    • 플레이는 가능할 것 같지만, 후반부를 통과하기가 훨씬 어려울 듯함
  • 영국 여권 신청은 필요한 서류를 HMPO에 우편으로 보내는 것만 빼면 완전히 온라인으로 끝낼 수 있음
    입양, 귀화, 혈통으로 “새” 시민이 된 경우에도 영국 밖에서 모바일 기기만으로, 별도 앱을 내려받지 않고 사진 촬영까지 포함해 신규 여권을 신청할 수 있음
    장난 삼아 종이와 펜으로 “어려움 모드”를 할 수도 있겠지만, 내 경험은 매우 효율적이고 빠르고 단순했음

    • 작년에 영국 온라인 여권 갱신 시스템을 써봤는데, 아주 오랜만에 써본 웹사이트 중 최고였음. 정말 신선했음
      오래된 컴퓨터와 “고대” 브라우저에서도 완벽히 작동했고, 색상, 텍스트, 버튼, 입력란, 요구사항이 모두 단순하고 접근성 좋고 명확했음. 단계별 탐색도 단순했고 실제로 친절했음
      더 많은 기업이 고객을 충분히 신경 써서 이렇게 잘 설계된 웹사이트에 투자하지 않는 게 아쉬움. HMPO는 잘했음
    • 최근 온라인 시스템으로 처음 갱신해봤는데 전체 절차가 예외적으로 빨랐음. 캘리포니아에서 신청했는데 2주도 안 돼 여권을 돌려받았음
      비교하자면 캘리포니아에서 캐나다 여권을 갱신했을 때는 3년 만에 손상된 여권이었고 4개월이 걸렸음. 완전히 종이 기반이었고, 추천인과 사진사의 도장이 찍힌 사진을 요구하는 등 터무니없는 조건이 있었음
      디지털 시범사업이 진행 중인 걸 아는데, 최대한 빨리 전면 도입해야 함
    • 실제보다 훨씬 단순해 보이게 말한 듯함. 갱신 절차가 상당히 성공적으로 간소화된 건 인정하지만, 몇 년 전 친구의 첫 여권 신청을 도와본 입장에서는 절차가 길고 지루했음
      대면 인터뷰가 필요하고, 많은 사람이 접근할 수 없는 책임 있는 사람의 서명도 필요함. 예를 들어 의사는 인정되지 않음
  • 일본에서 이 절차를 하는 사람들을 위해, 내가 제출해야 했던 서류는 이랬음. 상황에 따라 다를 것이고, 특히 글쓴이도 영국 밖에서 태어난 것 같아서 다른 서류나 더 많은 서류가 필요했을 수 있음
    제출한 것은 영국 General Register Office에서 주문한 출생증명서 인증 사본, 일본 호적 원본과 번역본, 출생신고 수리증명서 원본과 번역본, 혼인증명서 원본과 번역본, 아이의 일본 여권 모든 페이지 컬러 사본, 아이가 내 자녀임을 확인해주는 미국 또는 영국 시민의 여권 사본이었음
    절차가 꽤 불명확하고, 대체로 담당자가 만족할 때까지 계속 서류를 제출해야 하는 구조로 보임

    • 이 경우에는 실제로 applicant's father, 즉 나는 영국에서 태어났지만 applicant's father's father는 영국 출생이 아니었고, 그게 추가 복잡성의 원인이었음
    • 흥미롭네. 부모의 출생증명서는 요구되지 않았나?
      나는 영국인이고 아내는 헝가리인이며 헝가리에 살고 있는데, 양쪽 부모의 출생증명서와 네 명의 조부모 출생증명서를 모두 요구받았음
      아내가 아버지와 연락하지 않아서 상황을 설명하는 커버레터를 제출해야 했고, 받아들여졌음. 다만 어차피 내 아들의 영국 국적은 내 영국 국적에서 오는 것이니, 아내의 국적과 아내 부모의 국적이 왜 관련 있는지는 잘 모르겠음
      다른 사람의 여권을 복사할 필요는 없었지만, 가족 친구가 온라인으로 확인해줘야 했음. 그 가족 친구는 영국의 변호사라 승인된 직업 목록에 있었음
    • 아이의 일본 여권 모든 페이지 컬러 사본이라니, 왜 필요한 걸까?
  • 미국에서 태어난 딸 때문에 MN1 신청을 해야 했음. 나와 배우자가 모두 해외 출생이라서였음
    원글이 암시하듯 이것은 “등록”이라는 일종의 사이드 퀘스트이고, 아이가 18세가 되기 전에 하지 않으면 기한이 지나감. 물론 이런 상황에서도 시민권을 얻을 수 있는 경로가 아직 있는 것으로 알고 있음
    절차에서 가장 어려웠던 부분은, 이 버전의 Passport Application에서는 다루지 않았지만 미래 DLC 팩에 나올 법한, 내 증거 서류를 인증해줄 사람을 찾는 일이었음. 원본을 제출하라고 되어 있지만, 여권까지 포함한 문서를 3~6개월 보관하므로 해외 거주자에게는 비현실적임
    정확한 규칙은 기억나지 않지만 미국 공증인이나 일반적인 변호사 인증 절차는 쓸 수 없었고, 결국 구청 사무소에 가야 했음
    구청 다섯 곳쯤에 전화했는데 모두 절차나 요구사항을 모른다고 했고, 결국 Islington Council에서 매우 친절한 사람을 찾았음. 그래도 내가 겪은 영국 정부와의 상호작용 중 더 답답한 축에 들었음

  • 나도 대리로 Passport Application 게임을 즐겨봤음
    원글이 언급하지 않은 흥미로운 규칙 중 하나는 가변 역사 규칙임. 하나의 문서에 담긴 사실이 짧은 기간에도 바뀔 수 있어서, 이미 심사관의 사실 기록 시스템에 스캔된 문서를 나중에 다시 스캔하기 위해 돌려보내야 할 수 있음
    문서의 사실이 바뀌지 않았는지 검증한다는 건, 심사관 종족이 다중우주의 존재를 암묵적으로 인정한다는 뜻이라고들 함
    “NPC” 전화 상담원과 심사관 사이의 통신 채널은 기도와 비슷해 보이며, 실제로 받을 수 있는 것은 모호한 추론뿐임
    덧붙여 원글 작성자는 Mornington Crescent 애호가일지도 모르겠음. 앞서 말한 Passport Application과 규칙 위상학이 비슷해 보이는 게임

    • 영국 시스템에서는 이름이 유동적이고, 별도 선언 없이 마음대로 바뀔 수 있음. 그래서 내 어머니가 자기 어머니의 세 번째 결혼 성으로 내 출생신고를 할 수 있었음
      출생증명서도 어떤 면에서는 변경 불가능하지만, 거기에 적힌 모든 것이 완전히 변경 불가능한 건 아님
      게다가 여권 사무소는 이런 성 불일치를 설명하고 넘겼던 내 이전 여권 관련 결정을 잊어버렸음. 심지어 한 여권에는 내가 어머니 여권의 한 페이지에 올라가 있기도 했음
      NPC들은 정말 화나게 함. 전화하고 이메일을 보낼 때마다 답이 달랐음. 형편없는 대규모 언어 모델 같았음
      신청 후 어머니에게, 같은 묶음의 신청서 안에서 한 딸은 추가 영국 서류가 필요하지만 다른 딸은 필요 없고 여권이 나왔다는 걸 설명해야 했음. 단지 한 명은 영국에서 태어났고 다른 한 명은 아니었기 때문임
      어머니는 당연히 폭발했고, 국회의원에게 문제를 제기했으며 하루 만에 해결됐음
  • 딸 중 한 명 때문에 이 지옥 같은 절차를 막 겪었음. 딸은 일본에서 태어났고, 내 출생증명서에 적힌 것과 어머니의 성을 맞추느라 애를 먹었음
    짧게 말하면, 내가 잉글랜드에서 태어났고 시민권, 즉 여권이 있다는 걸 입증했으니 어떤 가능성을 따져도 딸에게 전달될 수 있는 지위여야 한다고 보였음. 요구 서류 가이드라인과는 맞지 않지만, 훨씬 덜 고통스러운 방법이라고 봄

  • “기저 사례는 무엇인가? 기저 사례란 영국인 지위가 부모에게 의존하지 않는 조상, 예컨대 귀화했거나 1983년 이전에 영국에서 태어난 사람이다. 1983년에서 미래로 멀어질수록 이 호출 스택은 더 깊어진다”라는 부분은, 시민과 외국인 거주자에 대한 중앙 데이터베이스가 있고 시민권 확인이 SQL 테이블에서 단일 SELECT 정도일 나라에서 온 입장에서는 미친 일처럼 보임

    • 많은 나라는 자기 시민이 누구인지 알 방법이 없음
      해외에서 태어난 사람도 시민인 경우가 많고, 영국은 시민권에 영향을 주는 영토 변경을 말도 안 되게 많이 겪었음
      현재 시민 중 일부는 Bombay, 즉 Mumbai에서 태어났기 때문에 시민권이 있고, 다른 일부는 Hong Kong에서 태어났기 때문에 시민권이 있음
      신뢰할 수 있는 시민 명단을 유지하려면 정기 등록이 필요하고, 등록하지 않으면 시민권을 잃게 해야 함
    • 시민권 확인이 SQL 테이블에서 단일 SELECT일 가능성은 없다고 봄. 나에게 극도로 불리한 배당률이어도 기꺼이 걸 수 있음
  • 몇 년 전에 이 게임을 해봤음
    영국에서 영국인 아버지에게서 태어났는데도, 내 캐릭터는 이전에는 영국인이 아니었음. 부모가 결혼하지 않았고, 1983년 이후이지만 2006년 규칙 변경 전 출생이었기 때문임
    정확한 시점은 확실치 않지만 2010년대 어느 때쯤 2006년 업데이트가 소급 적용되어 내 캐릭터도 플레이할 수 있게 된 것 같음. 사이드 퀘스트를 많이 하진 않았고, 주요한 건 아버지의 출생증명서를 찾는 일이었음
    내 캐릭터도 엔드게임 의식에 참석해 여왕에게 충성을 맹세해야 했는데, 이 나라에서 태어나 평생 여기서 산 사람에게는 이상하게 느껴졌음

    • 그래도 보너스 엔딩 크레딧은 받았네!