• 원문 Actor2→Actor2 'Room join을 deferred operation으로 등록' → 같은 방식으로 par 블록의 MatchBingoRes 반환에 합쳤다.
• 원문 Room→Room 'State = Running' → 뒤따르는 첫 BingoGameStartedNotify(Actor1) 라벨에 합쳤다. 두 번째 Actor join이 끝나면 room이 Running으로 바뀌고 두 player에게 알린다 — 이 알림이 game 시작의 authoritative completion이다.
원문 par 블록과 Note
• 참여자 원문 라벨 — Player 1/2: Player Client 1/2 · Actor 1/2: Play / Player Actor 1/2 · Matchmaker: Matchmaking · Room: Play / Room.
• `[par]` 표시 메시지는 원문 par/and 블록으로 두 그룹이 병렬 실행된다: (Matching 응답) Actor2→Session→Player2 MatchBingoRes 와 (Handler 반환 뒤 deferred join) Actor2→Room 참가 뒤 State=Running·BingoGameStartedNotify fan-out.
• 원문 Note(Actor1~Room): Handler 반환 뒤 deferred join이 실행된다.
• Room owner 조회와 remote join은 Location Store가 처리한다. Concurrent GetOrCreate caller는 하나의 Creating authority가 Ready가 될 때까지 기다리며 별도 factory를 실행하지 않는다. Player join callback은 API record 조회를 Yield로 기다린 뒤 room이 Finished인지·Actor가 여전히 member인지 재확인하고 state를 바꾼다.