{
  "status": "completed",
  "completed_count": 30,
  "applicable_count": 30,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "beats": [
          {
            "after_state": "숲속 피해 남성이 한쪽 신발이 벗겨지고 허벅지의 큰 이빨 자국에서 피가 흐르는 부상 상태임이 드러난다.",
            "beat_index": 1,
            "before_state": "숲속 피해 남성의 신체 상태가 구체적으로 확인되지 않았다.",
            "change_type": "information",
            "description": "도망치는 숲속 피해 남성의 심각한 부상이 시각적으로 확인된다."
          },
          {
            "after_state": "검은 인영이 숲속 피해 남성을 덮쳐 비명을 지르게 한다.",
            "beat_index": 2,
            "before_state": "숲속 피해 남성이 공포에 질린 채 수풀을 헤치며 도망치고 있다.",
            "change_type": "action",
            "description": "도주 중이던 숲속 피해 남성이 검은 인영의 습격을 받는다."
          }
        ],
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "scene_index": 1
      },
      {
        "beats": [
          {
            "after_state": "붉은 눈과 목의 살점을 뜯는 이빨이 드러나면서 상황이 공격임이 확인된다.",
            "beat_index": 1,
            "before_state": "가로등 아래 뒤엉킨 두 사람의 행위가 가쁜 숨소리 때문에 모호하게 보인다.",
            "change_type": "information",
            "description": "두 사람의 밀착이 친밀한 행위가 아니라 목을 물어뜯는 공격임이 밝혀진다."
          },
          {
            "after_state": "뒷골목 피해 여성이 힘을 잃고 쓰러진다.",
            "beat_index": 2,
            "before_state": "뒷골목 피해 여성이 공격자와 뒤엉킨 채 서 있다.",
            "change_type": "reaction",
            "description": "목을 공격당한 뒷골목 피해 여성이 저항 가능한 상태에서 무력화된다."
          },
          {
            "after_state": "금월산 등산로와 효장동에서 변사체가 발견됐다는 사실이 뉴스로 알려진다.",
            "beat_index": 3,
            "before_state": "숲과 뒷골목의 습격이 각각 현장에서 벌어진 사건으로만 제시돼 있다.",
            "change_type": "information",
            "description": "두 습격의 결과가 공식적으로 발견된 변사 사건이라는 정보가 제공된다."
          }
        ],
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "scene_index": 2
      },
      {
        "beats": [
          {
            "after_state": "두 장소가 폴리스 라인 설치, 감식, 시신 수거가 진행되는 수사 현장으로 전환돼 있다.",
            "beat_index": 1,
            "before_state": "앞선 두 장소는 피해자들이 습격당한 현장이었다.",
            "change_type": "situation",
            "description": "습격 현장들이 경찰의 통제를 받는 사후 수사 현장으로 바뀐다."
          },
          {
            "after_state": "혜수가 형사 무리 속에서 사건 수사를 지휘하는 책임자임이 드러난다.",
            "beat_index": 2,
            "before_state": "현장에 여러 경찰이 투입됐지만 지휘자가 확인되지 않았다.",
            "change_type": "information",
            "description": "혜수가 연쇄 변사 사건의 현장 지휘자라는 정보가 제시된다."
          },
          {
            "after_state": "경찰이 수사본부를 설치하고 갑호 비상령을 내린 상태임이 알려진다.",
            "beat_index": 3,
            "before_state": "두 시신 발견에 대한 현장 감식이 진행되는 수준으로 보였다.",
            "change_type": "situation",
            "description": "사건 대응이 일반 현장 수사에서 비상 대응 체제로 격상된다."
          }
        ],
        "scene_heading": "S#3. 현장 / D",
        "scene_index": 3
      },
      {
        "beats": [
          {
            "after_state": "경찰이 아직 범인의 윤곽조차 잡지 못했다는 수사 상황이 알려진다.",
            "beat_index": 1,
            "before_state": "경찰이 수사본부와 비상 체제를 가동했다는 사실만 알려져 있었다.",
            "change_type": "information",
            "description": "대규모 대응에도 범인에 관한 단서가 부족하다는 점이 드러난다."
          },
          {
            "after_state": "지역 주민들의 불안과 두려움이 더욱 커진 상태로 전해진다.",
            "beat_index": 2,
            "before_state": "지역에는 사건과 관련된 소문이 퍼져 있었다.",
            "change_type": "emotion",
            "description": "미해결 상태가 지속되면서 지역사회의 불안이 증폭된다."
          }
        ],
        "scene_heading": "S#4. 옥탑방 / D",
        "scene_index": 4
      },
      {
        "beats": [
          {
            "after_state": "강민숙(민숙)이 TV 뉴스에 시선을 고정하고 어두운 표정을 짓는다.",
            "beat_index": 1,
            "before_state": "강민숙(민숙)은 석창포를 씻고 달이는 일상적인 집안일을 하고 있다.",
            "change_type": "emotion",
            "description": "연쇄 변사 사건 뉴스가 강민숙(민숙)의 불안하고 무거운 반응을 끌어낸다."
          },
          {
            "after_state": "강민숙(민숙)이 황급히 TV를 꺼 뉴스 시청 사실을 감춘다.",
            "beat_index": 2,
            "before_state": "강민숙(민숙)이 혼자 TV 뉴스를 뚫어지게 보고 있다.",
            "change_type": "action",
            "description": "수리영이 방에서 나오자 강민숙(민숙)이 즉시 뉴스를 차단한다."
          },
          {
            "after_state": "강민숙(민숙)이 아무 일도 아니라며 사건 정보를 부정한다.",
            "beat_index": 3,
            "before_state": "수리영이 TV 내용과 사건 발생 여부를 궁금해한다.",
            "change_type": "information",
            "description": "강민숙(민숙)은 수리영에게 사건을 설명하지 않고 숨긴다."
          },
          {
            "after_state": "수리영이 강민숙(민숙)이 따라 준 석창포 달인 물을 마신다.",
            "beat_index": 4,
            "before_state": "석창포 달인 물이 강민숙(민숙)에 의해 준비돼 있다.",
            "change_type": "action",
            "description": "강민숙(민숙)이 건넨 석창포 물을 수리영이 복용한다."
          },
          {
            "after_state": "수리영이 맛없다며 불쾌감을 드러낸다.",
            "beat_index": 5,
            "before_state": "수리영이 석창포 물의 맛에 별다른 반응을 보이지 않았다.",
            "change_type": "reaction",
            "description": "석창포 물을 마신 수리영이 맛에 투정을 부린다."
          },
          {
            "after_state": "강민숙(민숙)은 수리영이 방학 중에도 아르바이트를 하러 나간다는 사실을 알게 된다.",
            "beat_index": 6,
            "before_state": "강민숙(민숙)은 수리영이 더 자지 않고 일어난 이유를 모른다.",
            "change_type": "information",
            "description": "수리영이 원장의 부탁으로 아르바이트를 간다고 밝힌다."
          },
          {
            "after_state": "수리영은 강민숙(민숙)이 오후 1시 근무를 한다는 일정을 알게 된다.",
            "beat_index": 7,
            "before_state": "수리영은 강민숙(민숙)이 오늘 외출하거나 근무하는지 모른다.",
            "change_type": "information",
            "description": "강민숙(민숙)이 자신의 근무 시작 시간을 알려준다."
          },
          {
            "after_state": "수리영과 강민숙(민숙)이 퇴근 후 마트에서 만나 외식하기로 한다.",
            "beat_index": 8,
            "before_state": "두 사람의 저녁 일정이 정해지지 않았다.",
            "change_type": "decision",
            "description": "수리영의 저녁 식사 제안에 강민숙(민숙)이 미소로 동의한다."
          },
          {
            "after_state": "수리영에게 강민숙(민숙)의 손목 표식이 평소보다 유난히 또렷하게 보인다.",
            "beat_index": 9,
            "before_state": "강민숙(민숙)의 손목 표식은 수리영에게 어려서부터 익숙한 흔적이었다.",
            "change_type": "information",
            "description": "익숙한 손목 표식의 선명도가 평소와 다르다는 점이 감지된다."
          },
          {
            "after_state": "수리영은 표식의 변화를 대수롭지 않게 넘긴다.",
            "beat_index": 10,
            "before_state": "수리영이 평소보다 또렷한 표식을 인지한다.",
            "change_type": "reaction",
            "description": "수리영은 이상을 보면서도 오래 봐온 표식이라는 이유로 개의치 않는다."
          }
        ],
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "scene_index": 5
      },
      {
        "beats": [
          {
            "after_state": "개 짖는 소리가 들리며 수리영의 평온한 이동 환경에 유기견 보호원의 기척이 개입한다.",
            "beat_index": 1,
            "before_state": "수리영이 밝고 활기찬 상태로 해안가 도로를 자전거로 달리고 있다.",
            "change_type": "situation",
            "description": "여유로운 해안가 주행 중 개 짖는 소리가 들리기 시작한다."
          }
        ],
        "scene_heading": "S#6. 해안가 도로 / D",
        "scene_index": 6
      },
      {
        "beats": [
          {
            "after_state": "로트와일러가 수리영과 눈을 마주친 뒤 기세를 누그러뜨린다.",
            "beat_index": 1,
            "before_state": "로트와일러가 사납게 짖고 날뛰며 금방이라도 물 듯한 기세를 보인다.",
            "change_type": "reaction",
            "description": "공격적이던 로트와일러가 수리영의 시선 앞에서 얌전해진다."
          },
          {
            "after_state": "진정된 로트와일러가 예방주사를 맞는다.",
            "beat_index": 2,
            "before_state": "로트와일러의 공격성 때문에 안전한 처치가 어려웠다.",
            "change_type": "action",
            "description": "수리영이 로트와일러를 진정시킨 틈에 예방접종이 완료된다."
          },
          {
            "after_state": "수리영은 보호 중인 개들을 모두 접종시키고 털도 손질해야 한다는 업무를 전달받는다.",
            "beat_index": 3,
            "before_state": "수리영은 당일 처리해야 할 작업량을 구체적으로 알지 못했다.",
            "change_type": "information",
            "description": "수리영에게 많은 개의 예방접종과 미용 업무가 주어진다."
          },
          {
            "after_state": "수리영이 약속에 늦을 수 있다고 걱정한다.",
            "beat_index": 4,
            "before_state": "수리영은 강민숙(민숙)과의 저녁 약속에 맞출 수 있다고 여겼다.",
            "change_type": "emotion",
            "description": "갇혀 있는 많은 개를 본 수리영이 작업 지연을 예상하고 한숨을 쉰다."
          },
          {
            "after_state": "수리영은 강민숙(민숙)과 즉시 연락이 닿지 않는다는 사실을 확인한다.",
            "beat_index": 5,
            "before_state": "수리영은 지연 가능성을 강민숙(민숙)에게 알리려 한다.",
            "change_type": "information",
            "description": "수리영이 연락을 시도하지만 강민숙(민숙)은 전화를 받지 않는다."
          },
          {
            "after_state": "수리영이 개들의 털을 깎고 연고를 바르고 목욕시키는 작업에 들어간다.",
            "beat_index": 6,
            "before_state": "수리영이 연락 시도와 작업량에 대한 걱정에 머물러 있다.",
            "change_type": "action",
            "description": "호출을 받은 수리영이 본격적인 보호견 관리 업무를 시작한다."
          }
        ],
        "scene_heading": "S#7. 유기견 보호원 / D",
        "scene_index": 7
      },
      {
        "beats": [
          {
            "after_state": "수리영이 마트에 도착해 자전거를 세우고 안으로 들어간다.",
            "beat_index": 1,
            "before_state": "수리영이 번화가 사이로 자전거를 몰아 마트로 이동 중이다.",
            "change_type": "action",
            "description": "수리영이 강민숙(민숙)과 만나기로 한 마트에 도착한다."
          },
          {
            "after_state": "수리영은 마트 안에서 강민숙(민숙)을 찾을 수 없음을 확인한다.",
            "beat_index": 2,
            "before_state": "수리영은 약속대로 강민숙(민숙)이 마트에 있을 것으로 기대한다.",
            "change_type": "information",
            "description": "진열 구역을 찾아다니지만 강민숙(민숙)이 보이지 않는다."
          },
          {
            "after_state": "수리영은 강민숙(민숙)이 자신을 만나러 간다며 이미 조퇴했다는 말을 듣는다.",
            "beat_index": 3,
            "before_state": "수리영은 강민숙(민숙)이 근무 중이라고 알고 있다.",
            "change_type": "information",
            "description": "강민숙(민숙)이 예정보다 일찍 마트를 떠났다는 사실이 밝혀진다."
          },
          {
            "after_state": "수리영은 서로의 약속 장소에 대한 인식이 어긋났음을 깨닫고 혼란스러워한다.",
            "beat_index": 4,
            "before_state": "수리영은 강민숙(민숙)과 마트에서 만나기로 했다고 확신한다.",
            "change_type": "emotion",
            "description": "자신을 만나러 조퇴했다는 설명이 기존 약속과 맞지 않아 수리영이 헷갈린다."
          },
          {
            "after_state": "수리영은 강민숙(민숙)이 마트 밖에서 신원 불명의 누군가와 이야기했다는 정보를 얻는다.",
            "beat_index": 5,
            "before_state": "수리영은 강민숙(민숙)이 누구를 만났는지 알지 못한다.",
            "change_type": "information",
            "description": "남자 직원이 강민숙(민숙)을 다른 누군가와 목격했다고 알린다."
          },
          {
            "after_state": "수리영은 마트 밖에서도 강민숙(민숙)과 연락이 되지 않음을 재확인한다.",
            "beat_index": 6,
            "before_state": "수리영은 직접 연락하면 강민숙(민숙)의 행방을 확인할 수 있다고 기대한다.",
            "change_type": "information",
            "description": "수리영이 다시 연락하지만 강민숙(민숙)은 받지 않는다."
          },
          {
            "after_state": "수리영은 강민숙(민숙)을 찾기 위해 일단 집으로 가기로 한다.",
            "beat_index": 7,
            "before_state": "수리영은 마트에서 강민숙(민숙)의 행방을 알아보고 있다.",
            "change_type": "decision",
            "description": "연락이 닿지 않자 수리영이 확인 장소를 집으로 바꾼다."
          }
        ],
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "scene_index": 8
      },
      {
        "beats": [
          {
            "after_state": "수리영이 자전거로 해안도로를 빠르게 달리며 귀가 결정을 실행한다.",
            "beat_index": 1,
            "before_state": "수리영은 마트에서 연락 두절된 강민숙(민숙)을 확인하기 위해 집으로 가기로 했다.",
            "change_type": "action",
            "description": "앞선 씬에서 내린 귀가 결정을 따라 수리영이 집으로 서둘러 이동한다."
          }
        ],
        "scene_heading": "S#9. 해안가 / N",
        "scene_index": 9
      },
      {
        "beats": [
          {
            "after_state": "얼굴이 보이지 않는 낯선 남자의 신발과 긴 그림자가 옥탑방 현관 앞에 멈춘다.",
            "beat_index": 1,
            "before_state": "옥탑방 옥상은 바람에 빨랫줄과 말린 석창포만 움직이는 빈 공간처럼 보인다.",
            "change_type": "situation",
            "description": "수리영이 귀가하는 동안 낯선 침입자가 옥탑방에 접근한다."
          },
          {
            "after_state": "낯선 남자가 전단지를 이용해 현관문의 잠금을 해제한다.",
            "beat_index": 2,
            "before_state": "옥탑방 현관문이 잠겨 있고 문틈에 광고 전단지가 끼어 있다.",
            "change_type": "action",
            "description": "낯선 남자가 전단지를 뽑아 문틈에 밀어 넣자 잠금장치가 풀린다."
          },
          {
            "after_state": "현관문이 미세하게 열리고 낯선 남자가 옥탑방 안으로 들어간다.",
            "beat_index": 3,
            "before_state": "낯선 남자가 잠금만 해제한 채 현관 밖에 서 있다.",
            "change_type": "action",
            "description": "낯선 남자가 잠긴 옥탑방에 침입한다."
          },
          {
            "after_state": "창문 반사 속 그림자가 강민숙(민숙)을 덮쳐 어깨를 물어뜯는 듯한 모습이 나타나고 강민숙(민숙)의 비명이 들린다.",
            "beat_index": 4,
            "before_state": "낯선 남자가 옥탑방 내부에 들어갔지만 강민숙(민숙)과의 충돌은 아직 드러나지 않았다.",
            "change_type": "action",
            "description": "창문에 비친 불명확한 그림자와 비명을 통해 강민숙(민숙)에 대한 습격이 제시된다."
          }
        ],
        "scene_heading": "S#10. 옥탑방 / N",
        "scene_index": 10
      },
      {
        "beats": [
          {
            "after_state": "수리영이 빌라 마당에 자전거를 급히 세우고 옥탑방 계단을 뛰어오른다.",
            "beat_index": 1,
            "before_state": "수리영이 연락 두절된 강민숙(민숙)을 확인하려고 자전거로 골목길을 달리고 있다.",
            "change_type": "action",
            "description": "수리영이 집에 도착해 이동 수단을 자전거에서 계단 질주로 바꾼다."
          },
          {
            "after_state": "수리영이 갑자기 역겨운 냄새를 감지하고 이상을 느낀다.",
            "beat_index": 2,
            "before_state": "수리영이 옥탑방을 향해 급히 올라갈 뿐 집 안의 구체적인 이상은 인지하지 못했다.",
            "change_type": "information",
            "description": "계단을 오르던 수리영이 평소와 다른 악취를 처음 감지한다."
          },
          {
            "after_state": "수리영이 옥탑방 현관 철문이 반쯤 열려 있는 것을 발견한다.",
            "beat_index": 3,
            "before_state": "수리영은 역겨운 냄새의 원인과 옥탑방 상태를 알지 못한다.",
            "change_type": "information",
            "description": "옥상에 오른 수리영의 시야에 침입 이후 열린 채 남은 현관문이 들어온다."
          }
        ],
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "scene_index": 11
      },
      {
        "beats": [
          {
            "after_state": "수리영은 인기척 없는 집 안에서 강민숙을 찾기 시작한다.",
            "beat_index": 1,
            "before_state": "수리영은 반쯤 열린 현관문과 역겨운 냄새 때문에 불안을 느끼며 옥탑방 앞에 도착한 상태다.",
            "change_type": "action",
            "description": "수리영이 강민숙을 부르며 옥탑방 안으로 들어가 방들을 확인한다."
          },
          {
            "after_state": "수리영은 집에 강민숙 외의 누군가가 있었거나 돌발 상황이 벌어졌을 가능성을 의심한다.",
            "beat_index": 2,
            "before_state": "수리영은 단순히 연락이 끊긴 강민숙을 찾고 있다.",
            "change_type": "information",
            "description": "수리영이 식탁 위의 찻잔 두 개와 엎어진 찻잔 하나를 발견한다."
          },
          {
            "after_state": "수리영은 강민숙의 부재가 유혈 사건과 관련됐다고 인식하며 극심한 공포에 빠진다.",
            "beat_index": 3,
            "before_state": "수리영은 아직 집 안에서 무슨 일이 일어났는지 알지 못한다.",
            "change_type": "information",
            "description": "수리영이 자신의 방에서 핏자국과 바닥에 흥건한 혈흔을 발견한다."
          },
          {
            "after_state": "수리영은 커튼 뒤에 강민숙의 시신이 있다고 믿게 된다.",
            "beat_index": 4,
            "before_state": "수리영은 혈흔만 발견했을 뿐 강민숙의 상태를 확인하지 못했다.",
            "change_type": "information",
            "description": "수리영이 피 묻은 발자국을 따라 커튼을 젖히고, 죽어 있는 듯한 강민숙의 모습을 목격한다."
          },
          {
            "after_state": "수리영은 강민숙이 잔혹하게 물어뜯겨 살해됐다고 인식하고 뒤로 물러난다.",
            "beat_index": 5,
            "before_state": "수리영은 충격 속에서도 강민숙에게 달려가려 한다.",
            "change_type": "reaction",
            "description": "수리영이 강민숙의 어깨와 쇄골에 난 동물의 습격 같은 상처를 보고 공포에 질려 주춤한다."
          },
          {
            "after_state": "수리영은 혼자 상황을 감당하는 대신 혜수에게 도움을 요청한다.",
            "beat_index": 6,
            "before_state": "수리영은 시신으로 보이는 강민숙 앞에서 얼어붙어 있다.",
            "change_type": "decision",
            "description": "수리영이 떨리는 손으로 혜수에게 전화를 건다."
          },
          {
            "after_state": "혜수와의 통화는 연결되지만 수리영은 충격 때문에 상황을 설명하지 못한다.",
            "beat_index": 7,
            "before_state": "수리영은 혜수가 전화를 받기만을 다급히 기다린다.",
            "change_type": "situation",
            "description": "혜수가 전화를 받지만 수리영에게서 대답이 나오지 않는다."
          },
          {
            "after_state": "수리영의 주의가 강민숙의 손에 쥐어진 정체불명의 사진으로 옮겨간다.",
            "beat_index": 8,
            "before_state": "수리영은 혜수와 통화가 연결된 채 강민숙의 상처에 압도돼 있다.",
            "change_type": "information",
            "description": "수리영이 강민숙의 손안에 구겨진 사진 한 장을 발견하고 꺼낸다."
          },
          {
            "after_state": "수리영은 강민숙의 문신이 비정상적으로 변하는 주관적 시각 현상을 지각해 호흡이 빨라진다.",
            "beat_index": 9,
            "before_state": "수리영은 사진을 꺼내며 강민숙의 손목을 보고 있다.",
            "change_type": "emotion",
            "description": "수리영의 시야에서 강민숙의 손목 문신이 붉은색으로 변한다."
          },
          {
            "after_state": "수리영은 설명할 수 없는 현상에 압도되어 비명을 지를 정도의 극심한 공포에 빠진다.",
            "beat_index": 10,
            "before_state": "수리영은 붉게 보이는 문신 때문에 이미 공포와 과호흡을 겪고 있다.",
            "change_type": "reaction",
            "description": "수리영의 시야에서 침대 위 벽에 붉은 원이 그려지는 듯 나타나고, 수리영이 비명을 지른다."
          }
        ],
        "scene_heading": "S#12. 옥탑방 안 / N",
        "scene_index": 12
      },
      {
        "beats": [
          {
            "after_state": "수리영은 공포의 현장에서 벗어나기 위해 계단 아래로 도주한다.",
            "beat_index": 1,
            "before_state": "수리영은 옥탑방 안에서 강민숙의 시신과 붉은 원을 봤다고 믿으며 비명을 지르는 상태다.",
            "change_type": "action",
            "description": "수리영이 비명을 지르며 옥탑방을 빠져나와 계단을 급히 내려간다."
          },
          {
            "after_state": "수리영은 현장을 벗어난 뒤에도 초점을 잃고 멍하니 서 있는 충격 상태가 된다.",
            "beat_index": 2,
            "before_state": "수리영은 공포에 휩싸여 계단을 달려 내려가고 있다.",
            "change_type": "emotion",
            "description": "계단을 내려온 수리영이 극심한 충격으로 멍하니 멈춰 선다."
          },
          {
            "after_state": "수리영은 현장에 도착한 혜수에게 발견되어 보호와 질문을 받는다.",
            "beat_index": 3,
            "before_state": "수리영은 혼자 충격에 빠져 있으며 주변의 도움을 받지 못하고 있다.",
            "change_type": "situation",
            "description": "사이렌과 함께 도착한 혜수가 수리영을 발견하고 달려간다."
          },
          {
            "after_state": "혜수는 강민숙이 죽었다는 수리영의 진술을 처음 알게 된다.",
            "beat_index": 4,
            "before_state": "혜수는 수리영에게 무슨 일이 생겼는지 알지 못한다.",
            "change_type": "information",
            "description": "수리영이 혜수에게 강민숙이 집 안에서 죽어 있다고 말한다."
          },
          {
            "after_state": "혜수는 놀람에서 즉각적인 현장 확인 행동으로 전환한다.",
            "beat_index": 5,
            "before_state": "혜수는 수리영의 진술에 충격을 받은 상태다.",
            "change_type": "action",
            "description": "혜수가 김형사와 함께 옥탑방으로 뛰어 올라간다."
          }
        ],
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "scene_index": 13
      },
      {
        "beats": [
          {
            "after_state": "혜수와 김형사는 집 안에 시신이나 사건 흔적이 없다고 판단한다.",
            "beat_index": 1,
            "before_state": "혜수와 김형사는 강민숙의 시신이 있다는 수리영의 진술을 확인하기 위해 옥탑방을 수색 중이다.",
            "change_type": "information",
            "description": "집 안을 확인한 김형사가 아무것도 없다고 결론 내린다."
          },
          {
            "after_state": "수리영은 자신의 기억과 현장 확인 결과가 충돌한다는 사실을 알게 된다.",
            "beat_index": 2,
            "before_state": "수리영은 방 안에 강민숙의 시신과 혈흔이 그대로 있을 것이라고 확신한다.",
            "change_type": "information",
            "description": "혜수가 수리영에게 시신도 흔적도 없다고 알리며 무엇을 봤는지 묻는다."
          },
          {
            "after_state": "수리영은 직접 증명하기 위해 자신의 방으로 뛰어 들어간다.",
            "beat_index": 3,
            "before_state": "수리영은 혜수의 말을 듣고 혼란에 빠져 있다.",
            "change_type": "action",
            "description": "수리영이 자신이 본 것을 재확인하려고 부리나케 방으로 향한다."
          },
          {
            "after_state": "수리영은 자신이 목격했다고 믿은 시신과 혈흔이 모두 사라진 사실에 충격과 혼란을 느낀다.",
            "beat_index": 4,
            "before_state": "수리영은 방 안에 유혈 흔적과 강민숙의 시신이 있을 것이라고 예상한다.",
            "change_type": "information",
            "description": "수리영이 지나치게 깨끗한 방과 사라진 혈흔, 붉은 표식, 시신을 확인한다."
          },
          {
            "after_state": "수리영은 거실에서도 자신의 기억을 입증할 물리적 흔적을 찾지 못한다.",
            "beat_index": 5,
            "before_state": "수리영은 적어도 식탁의 찻잔은 남아 있을 것이라고 기대한다.",
            "change_type": "information",
            "description": "수리영이 식탁으로 달려가지만 찻잔 두 개를 포함한 흔적이 사라진 것을 확인한다."
          },
          {
            "after_state": "김형사는 수리영을 사건 목격자가 아니라 장난 신고를 한 학생으로 의심한다.",
            "beat_index": 6,
            "before_state": "김형사는 수리영의 신고가 사실인지 확인하는 입장이다.",
            "change_type": "relationship",
            "description": "김형사가 수리영의 말을 믿지 않고 장난전화라며 짜증을 낸다."
          },
          {
            "after_state": "혜수는 수리영을 비난하는 김형사를 현장에서 물러나게 한다.",
            "beat_index": 7,
            "before_state": "수리영은 김형사의 불신과 질책을 받고 있다.",
            "change_type": "relationship",
            "description": "혜수가 김형사를 제지하고 먼저 나가 있으라고 명령한다."
          },
          {
            "after_state": "수리영은 자신의 목격을 확신하면서도 현실과의 불일치 때문에 강민숙의 행방을 묻게 된다.",
            "beat_index": 8,
            "before_state": "수리영은 사라진 흔적 앞에서 자신의 기억을 입증하려 한다.",
            "change_type": "emotion",
            "description": "수리영이 분명히 강민숙의 시신을 봤다며 어디로 사라졌는지 혼란스러워한다."
          },
          {
            "after_state": "수리영에게 과로로 인한 악몽이나 착각일 수 있다는 새로운 해석이 제시된다.",
            "beat_index": 9,
            "before_state": "수리영은 자신이 실제 살인 현장을 목격했다고 믿고 있다.",
            "change_type": "information",
            "description": "혜수가 수리영을 달래며 과로 때문에 악몽을 꿨을 가능성을 말한다."
          },
          {
            "after_state": "관객에게 방 안 물건의 위치가 이전과 달라졌다는 미세한 물리적 단서가 제시된다.",
            "beat_index": 10,
            "before_state": "방은 아무 일도 없었던 것처럼 완전히 동일하게 복구된 듯 보인다.",
            "change_type": "information",
            "description": "백팩과 인형의 위치가 시신을 발견했을 때와 조금씩 달라져 있음이 드러난다."
          }
        ],
        "scene_heading": "S#14. 옥탑방 안 / N",
        "scene_index": 14
      },
      {
        "beats": [
          {
            "after_state": "수리영은 자신의 목격이 헛것이었을 가능성과 강민숙의 실제 행방 사이에서 혼란을 겪는다.",
            "beat_index": 1,
            "before_state": "수리영은 강민숙의 시신을 분명히 봤다는 확신을 갖고 있었다.",
            "change_type": "emotion",
            "description": "현장에서 아무 흔적도 발견되지 않자 수리영이 바다를 보며 자신의 기억을 의심한다."
          },
          {
            "after_state": "수리영은 혜수에게 자신이 잘못 본 것 같다고 인정하며 목격에 대한 확신을 내려놓는다.",
            "beat_index": 2,
            "before_state": "수리영은 목격이 실제였는지 헛것이었는지 결론 내리지 못한다.",
            "change_type": "decision",
            "description": "수리영이 강민숙에게 그런 일이 생겼을 리 없다며 자신이 잘못 봤다는 쪽을 받아들인다."
          },
          {
            "after_state": "수리영은 수동적으로 고민하는 대신 집으로 돌아가 강민숙의 행방을 다시 확인하기로 한다.",
            "beat_index": 3,
            "before_state": "수리영은 버스정류장 부근에 앉아 혼란을 정리하고 있다.",
            "change_type": "decision",
            "description": "수리영이 갑자기 일어나 집에 가봐야겠다고 말한다."
          },
          {
            "after_state": "수리영은 혜수의 곁을 떠나 혼자 집으로 향한다.",
            "beat_index": 4,
            "before_state": "수리영은 혜수와 함께 해안가에 머물고 있다.",
            "change_type": "action",
            "description": "수리영이 혼자 갈 수 있다고 답한 뒤 집을 향해 달려간다."
          },
          {
            "after_state": "혜수는 강민숙이 돌아오면 자신에게 연락하게 하라는 요청을 수리영에게 남긴다.",
            "beat_index": 5,
            "before_state": "혜수는 떠나는 수리영을 걱정하며 바라보고 있다.",
            "change_type": "decision",
            "description": "혜수가 수리영의 등 뒤에 대고 강민숙을 만나면 전화하라고 외친다."
          }
        ],
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "scene_index": 15
      },
      {
        "beats": [
          {
            "after_state": "혜수는 강민숙의 계속된 무응답 때문에 불길한 예감을 더 강하게 느낀다.",
            "beat_index": 1,
            "before_state": "혜수는 수리영에게 과로로 인한 착각일 수 있다고 안심시켰지만 내심 의문을 품고 있다.",
            "change_type": "emotion",
            "description": "경찰서로 돌아온 혜수가 강민숙에게 전화하지만 여전히 응답이 없음을 확인한다."
          },
          {
            "after_state": "혜수는 기다리는 대신 강민숙의 휴대전화 위치를 추적하기로 한다.",
            "beat_index": 2,
            "before_state": "혜수는 강민숙의 부재를 걱정하면서도 아직 공식적인 확인 조치를 취하지 않았다.",
            "change_type": "decision",
            "description": "혜수가 김형사에게 강민숙의 전화번호를 보여주며 위치를 확인해 달라고 지시한다."
          },
          {
            "after_state": "강민숙의 위치를 즉시 추적하려는 혜수의 의도가 김형사의 유보적인 태도와 충돌한다.",
            "beat_index": 3,
            "before_state": "혜수는 김형사가 곧바로 위치 확인에 협조할 것으로 기대한다.",
            "change_type": "relationship",
            "description": "김형사가 오늘은 좀 더 기다려보자며 투덜거린다."
          },
          {
            "after_state": "혜수는 강민숙의 잠적이 평소 행동과 명백히 다르다고 판단한다.",
            "beat_index": 4,
            "before_state": "김형사는 강민숙의 연락 두절을 아직 급박한 일로 보지 않는다.",
            "change_type": "information",
            "description": "혜수가 강민숙은 딸과의 약속을 어기거나 연락 없이 돌아다닐 사람이 아니라고 설명한다."
          },
          {
            "after_state": "혜수는 단순한 연락 두절이 아니라 위험한 사건일 가능성을 확신하며 수사 필요성을 고수한다.",
            "beat_index": 5,
            "before_state": "혜수는 막연한 불길함을 느끼고 있다.",
            "change_type": "decision",
            "description": "혜수가 상황이 이상하고 예감이 좋지 않다고 분명히 밝힌다."
          }
        ],
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "scene_index": 16
      },
      {
        "beats": [
          {
            "after_state": "옥탑방 주변의 시간이 밤에서 동틀 무렵으로 바뀌지만 방 안의 불은 계속 켜져 있다.",
            "beat_index": 1,
            "before_state": "앞선 옥탑방 상황은 한밤중의 어둠 속에 놓여 있었다.",
            "change_type": "situation",
            "description": "밤이 지나 새벽이 밝아오고, 불이 켜진 옥탑방이 드러난다."
          },
          {
            "after_state": "옥탑방을 바라보던 검은 고양이가 담 너머로 사라진다.",
            "beat_index": 2,
            "before_state": "검은 고양이가 울음소리와 함께 불 켜진 옥탑방을 살피고 있다.",
            "change_type": "action",
            "description": "검은 고양이가 옥탑방을 슬쩍 본 뒤 담을 넘어간다."
          }
        ],
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "scene_index": 17
      },
      {
        "beats": [
          {
            "after_state": "수리영은 고양이 울음소리를 강민숙의 귀환 가능성과 연결하며 잠에서 깬다.",
            "beat_index": 1,
            "before_state": "수리영은 밤새 강민숙을 기다리다 안방 침대에 기대 잠들어 있다.",
            "change_type": "reaction",
            "description": "고양이 울음소리에 수리영이 번쩍 눈을 뜨고 강민숙을 부른다."
          },
          {
            "after_state": "수리영은 강민숙이 밤새 돌아오지 않았다는 사실을 다시 확인한다.",
            "beat_index": 2,
            "before_state": "수리영은 강민숙이 돌아왔을지 모른다는 순간적인 기대를 품는다.",
            "change_type": "information",
            "description": "수리영이 집 안을 살피지만 아무런 인기척도 찾지 못한다."
          },
          {
            "after_state": "수리영은 자신의 방을 바라보며 전날 목격한 강민숙의 시신과 혈흔에 대한 공포를 되살린다.",
            "beat_index": 3,
            "before_state": "수리영은 강민숙의 귀가 여부를 확인하는 데 집중하고 있다.",
            "change_type": "emotion",
            "description": "닫힌 방문을 본 수리영에게 커튼 뒤의 강민숙과 상처, 혈흔에 대한 회상이 떠오른다."
          },
          {
            "after_state": "수리영은 두려움을 억누르고 방 안을 직접 재확인하기로 한다.",
            "beat_index": 4,
            "before_state": "수리영은 전날의 기억 때문에 자신의 방에 들어가기를 두려워한다.",
            "change_type": "decision",
            "description": "수리영이 크게 심호흡한 뒤 조심스럽게 방문을 연다."
          },
          {
            "after_state": "수리영은 커튼 뒤에 시신이 없음을 확인하고 일시적으로 안도한다.",
            "beat_index": 5,
            "before_state": "수리영은 커튼 뒤에 다시 강민숙의 시신이 나타날 수 있다고 긴장한다.",
            "change_type": "emotion",
            "description": "수리영이 커튼을 확 열어젖힌 뒤 아무것도 없자 한숨을 내쉰다."
          },
          {
            "after_state": "수리영은 강민숙에게서 전화가 왔을지 모른다는 기대와 놀람 속에 전화로 달려간다.",
            "beat_index": 6,
            "before_state": "수리영은 시신이 없다는 사실에 잠시 안도하고 있다.",
            "change_type": "reaction",
            "description": "갑자기 전화벨이 울리자 수리영이 화들짝 놀라 달려가 받으며 강민숙을 찾는다."
          },
          {
            "after_state": "수리영은 전화 상대가 강민숙이 아니라 혜수라는 사실을 알게 된다.",
            "beat_index": 7,
            "before_state": "수리영은 전화를 건 사람이 강민숙일 것이라고 기대한다.",
            "change_type": "information",
            "description": "전화기 너머에서 혜수의 목소리가 들린다."
          },
          {
            "after_state": "수리영은 강민숙의 부재를 착각으로 넘길 수 없으며 사고가 났다고 확신한다.",
            "beat_index": 8,
            "before_state": "수리영은 전날의 목격이 헛것일 수 있다고 자신을 설득하려 했다.",
            "change_type": "decision",
            "description": "수리영이 혜수에게 강민숙에게 분명 사고가 생긴 것 같다고 말한다."
          },
          {
            "after_state": "수리영은 강민숙의 실종 신고와 휴대전화 위치 추적이 진행 중임을 알게 된다.",
            "beat_index": 9,
            "before_state": "수리영은 강민숙을 찾기 위한 공식 조치가 이뤄졌는지 알지 못한다.",
            "change_type": "information",
            "description": "혜수가 실종신고를 냈고 강민숙의 휴대전화 위치를 추적 중이라고 알려준다."
          },
          {
            "after_state": "수리영은 무작정 집에서 기다리는 대신 밖으로 나갈 준비를 한다.",
            "beat_index": 10,
            "before_state": "수리영은 혜수의 조치를 믿고 기다려야 하지만 불안 때문에 가만히 있지 못한다.",
            "change_type": "decision",
            "description": "수리영이 인형이 달린 백팩을 꺼내 들고 방을 나선다."
          },
          {
            "after_state": "수리영은 욕실 거울 속에서 붉은 원이 나타나는 주관적 시각 현상을 지각해 다시 과호흡에 빠진다.",
            "beat_index": 11,
            "before_state": "수리영은 세수를 하며 강민숙의 행방을 걱정하고 있다.",
            "change_type": "emotion",
            "description": "거울에 비친 욕실 벽에 붉은 원이 갑자기 나타난 것처럼 보인다."
          },
          {
            "after_state": "수리영은 실제 벽에는 붉은 원이 없다는 사실을 확인하고 자신의 지각을 의심한다.",
            "beat_index": 12,
            "before_state": "수리영은 거울 속 붉은 원이 실제 벽에 생겼다고 믿는다.",
            "change_type": "information",
            "description": "수리영이 고개를 돌려 벽을 직접 보지만 붉은 원은 사라지고 없다."
          },
          {
            "after_state": "수리영은 물을 마시며 급격한 공포 반응을 진정시키려 한다.",
            "beat_index": 13,
            "before_state": "수리영은 사라진 붉은 원 때문에 호흡이 가빠지고 공포에 빠져 있다.",
            "change_type": "action",
            "description": "수리영이 거실로 튀어나와 물 한 컵을 마신다."
          },
          {
            "after_state": "수리영은 사진 속 강민숙의 얼굴이 뭉개져 흘러내리는 주관적 시각 현상을 보고 비명을 지른다.",
            "beat_index": 14,
            "before_state": "수리영은 식탁에 놓인 강민숙과 자신의 사진을 바라보며 진정하려 한다.",
            "change_type": "reaction",
            "description": "수리영의 시야에서 사진 속 강민숙의 얼굴이 일그러져 흘러내리는 듯 보인다."
          },
          {
            "after_state": "수리영은 사진이 실제로는 멀쩡하다는 사실을 확인하고 자신의 정신 상태를 두려워한다.",
            "beat_index": 15,
            "before_state": "수리영은 사진 속 강민숙의 얼굴이 훼손됐다고 지각한다.",
            "change_type": "information",
            "description": "수리영이 사진을 다시 보자 강민숙의 얼굴은 원래 모습으로 돌아와 있다."
          },
          {
            "after_state": "수리영은 혼란에 휩쓸리는 대신 스스로 정신을 붙들기로 한다.",
            "beat_index": 16,
            "before_state": "수리영은 반복되는 시각 현상 때문에 자신에게 문제가 생긴 것인지 혼란스러워한다.",
            "change_type": "decision",
            "description": "수리영이 자신의 뺨을 때리며 정신 차리라고 스스로를 다그친다."
          }
        ],
        "scene_heading": "S#18. 안방 안 / D",
        "scene_index": 18
      },
      {
        "beats": [
          {
            "after_state": "수리영은 마트 안을 돌아다니며 남자 직원을 찾아 대면한다.",
            "beat_index": 1,
            "before_state": "수리영은 강민숙의 행방에 관한 단서를 얻지 못한 채 마트 밖에 도착해 있다.",
            "change_type": "action",
            "description": "수리영이 자전거를 세우고 마트에 들어가 전날 만난 남자 직원을 찾아낸다."
          },
          {
            "after_state": "수리영은 강민숙이 오늘도 출근하지 않았다는 사실을 알게 된다.",
            "beat_index": 2,
            "before_state": "수리영은 강민숙이 집에 돌아오지 않았다는 사실만 알고 있다.",
            "change_type": "information",
            "description": "남자 직원이 강민숙이 오늘도 결근했다고 알려준다."
          },
          {
            "after_state": "수리영은 강민숙이 실종 전 한 남자와 대화했다는 새로운 단서를 확보한다.",
            "beat_index": 3,
            "before_state": "수리영은 강민숙이 누군가와 대화했다는 모호한 정보만 알고 있다.",
            "change_type": "information",
            "description": "남자 직원이 강민숙의 대화 상대가 남자였던 것 같다고 말한다."
          },
          {
            "after_state": "수리영은 강민숙과 남자의 대화 장면이 CCTV에 찍혔는지 확인하기로 한다.",
            "beat_index": 4,
            "before_state": "수리영은 목격자의 기억에만 의존하고 있다.",
            "change_type": "decision",
            "description": "수리영이 CCTV 열람을 요청한다."
          },
          {
            "after_state": "수리영은 당시 위치가 CCTV 촬영 범위에 들어갈 가능성이 높다고 판단한다.",
            "beat_index": 5,
            "before_state": "강민숙과 남자의 대화가 CCTV에 기록됐는지는 불확실하다.",
            "change_type": "information",
            "description": "수리영과 남자 직원이 마트 밖에서 당시 위치와 CCTV 방향을 대조한다."
          },
          {
            "after_state": "혜수도 CCTV 단서와 현재 상황을 전달받아 조사에 관여하게 된다.",
            "beat_index": 6,
            "before_state": "수리영만 마트에서 확인한 단서를 알고 있다.",
            "change_type": "information",
            "description": "수리영이 혜수에게 전화해 마트에서 확인한 상황을 설명한다."
          }
        ],
        "scene_heading": "S#19. 마트 / D",
        "scene_index": 19
      },
      {
        "beats": [
          {
            "after_state": "혜수와 수리영은 CCTV에서 강민숙이 남자와 대화하는 듯한 장면을 발견한다.",
            "beat_index": 1,
            "before_state": "강민숙과 남자의 접촉이 영상에 남았는지 확인되지 않은 상태다.",
            "change_type": "information",
            "description": "보안 직원이 전날 CCTV에서 두 사람이 대화하는 듯한 구간을 찾아낸다."
          },
          {
            "after_state": "세 사람은 해당 구간만 유독 어두워 인물을 식별할 수 없다는 사실을 확인한다.",
            "beat_index": 2,
            "before_state": "CCTV가 상대 남성의 신원을 밝혀줄 수 있다는 기대가 있다.",
            "change_type": "information",
            "description": "문제 구간을 여러 차례 재생하지만 화면이 어두워 영상 속 인물들을 식별하지 못한다."
          },
          {
            "after_state": "수리영의 불안이 더욱 깊어진다.",
            "beat_index": 3,
            "before_state": "수리영은 CCTV에서 구체적인 단서를 얻을 수 있기를 기대하며 초조해한다.",
            "change_type": "emotion",
            "description": "핵심 구간만 식별 불가능하다는 사실에 수리영의 불안이 커진다."
          },
          {
            "after_state": "혜수는 현장에서의 확인을 중단하고 전체 영상을 가져가 별도로 조사하기로 한다.",
            "beat_index": 4,
            "before_state": "혜수는 마트에서 CCTV를 반복 확인하고 있다.",
            "change_type": "decision",
            "description": "혜수가 전날 CCTV 전체를 복사하기 위해 빌려달라고 요청한다."
          },
          {
            "after_state": "혜수는 CCTV 전체를 가져가 분석할 수 있게 된다.",
            "beat_index": 5,
            "before_state": "CCTV 자료를 외부로 가져갈 수 있을지 확정되지 않았다.",
            "change_type": "situation",
            "description": "보안 직원이 혜수의 CCTV 반출 요청을 허락한다."
          }
        ],
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "scene_index": 20
      },
      {
        "beats": [
          {
            "after_state": "강민숙의 부재가 공식적인 실종 사건으로 접수되고 통화 내역 조사도 진행될 수 있게 된다.",
            "beat_index": 1,
            "before_state": "혜수와 수리영이 사적으로 강민숙의 행방을 찾고 있는 상태다.",
            "change_type": "situation",
            "description": "김형사가 실종신고서와 통화 의뢰서에 서명하도록 안내한다."
          },
          {
            "after_state": "혜수와 수리영은 위치 확인 결과가 아직 오지 않았고 서류 전송 뒤 제공될 것임을 알게 된다.",
            "beat_index": 2,
            "before_state": "두 사람은 강민숙의 휴대전화 위치가 확인됐는지 모른다.",
            "change_type": "information",
            "description": "김형사가 서류를 전송하면 위치 확인 결과가 올 것이라고 답한다."
          },
          {
            "after_state": "혜수는 수리영과 함께 조사를 이어가기보다 긴급 살인사건 회의에 참석해야 하는 처지가 된다.",
            "beat_index": 3,
            "before_state": "혜수는 수리영 곁에서 강민숙 실종을 조사하고 있다.",
            "change_type": "situation",
            "description": "김형사가 살인사건으로 비상인 상황과 회의 참석을 재촉한다."
          },
          {
            "after_state": "수리영은 혜수의 자리에서 혼자 기다리게 된다.",
            "beat_index": 4,
            "before_state": "수리영은 혜수와 함께 경찰서 사무실에 있다.",
            "change_type": "situation",
            "description": "혜수가 잠시 기다리라고 한 뒤 다른 형사들과 회의에 들어간다."
          },
          {
            "after_state": "수리영은 살인사건 피해 사진의 상처가 자신이 주관적으로 보았던 강민숙의 시신 이미지와 매우 흡사하다고 인식한다.",
            "beat_index": 5,
            "before_state": "수리영은 혜수의 책상 위 살인사건 사진들의 의미를 알지 못한다.",
            "change_type": "information",
            "description": "수리영이 책상 위 확대 사진들을 넘겨보다 피해자들의 훼손 양상이 자신이 본 이미지와 닮았음을 알아챈다."
          },
          {
            "after_state": "강민숙의 휴대전화 위치추적 결과가 김형사의 모니터에 도착한다.",
            "beat_index": 6,
            "before_state": "휴대전화 위치 확인 결과를 기다리고 있다.",
            "change_type": "situation",
            "description": "알림음과 함께 김형사의 모니터에 위치추적 결과가 표시된다."
          },
          {
            "after_state": "수리영은 아무도 없는 틈에 결과를 직접 확인하기로 한다.",
            "beat_index": 7,
            "before_state": "수리영은 타인의 모니터를 조작해도 될지 망설인다.",
            "change_type": "decision",
            "description": "수리영이 주변에 아무도 없는 것을 확인한 뒤 커서를 눌러 결과를 연다."
          },
          {
            "after_state": "수리영은 강민숙의 휴대전화 마지막 위치가 해상 좌표이며 현재 오프라인이라는 사실을 알게 된다.",
            "beat_index": 8,
            "before_state": "수리영은 강민숙의 휴대전화가 마지막으로 어디에 있었는지 모른다.",
            "change_type": "information",
            "description": "모니터의 위치추적 화면에서 해상 좌표와 오프라인 상태를 확인한다."
          },
          {
            "after_state": "수리영은 강민숙이 바다에 있을 수 있다는 생각에 사색이 된다.",
            "beat_index": 9,
            "before_state": "수리영은 위치 결과를 확인하려는 긴장 상태다.",
            "change_type": "emotion",
            "description": "마지막 위치가 바다라는 사실에 수리영이 큰 충격과 공포를 느낀다."
          },
          {
            "after_state": "수리영은 좌표를 확보해 직접 강민숙을 찾아 나서기로 한다.",
            "beat_index": 10,
            "before_state": "수리영은 경찰서에서 혜수를 기다리라는 지시를 받은 상태다.",
            "change_type": "decision",
            "description": "수리영이 좌표를 메모해 주머니에 넣고 몰래 사무실을 빠져나간다."
          }
        ],
        "scene_heading": "S#21. 경찰서 안 / D",
        "scene_index": 21
      },
      {
        "beats": [
          {
            "after_state": "수리영은 자전거를 타고 좌표를 추적하기 위한 다음 장소로 이동한다.",
            "beat_index": 1,
            "before_state": "수리영은 해상 좌표를 챙긴 채 경찰서 사무실을 몰래 빠져나온 상태다.",
            "change_type": "action",
            "description": "수리영이 경찰서 밖의 자전거에 올라 곧바로 달려간다."
          }
        ],
        "scene_heading": "S#22. 경찰서 밖 / D",
        "scene_index": 22
      },
      {
        "beats": [
          {
            "after_state": "수리영은 메모한 좌표가 가리키는 구체적인 위치를 지도에서 확인한다.",
            "beat_index": 1,
            "before_state": "수리영은 숫자로 된 해상 좌표만 갖고 있어 정확한 이동 경로를 모른다.",
            "change_type": "information",
            "description": "수리영이 PC방 컴퓨터에 좌표를 입력해 위치를 조회한다."
          },
          {
            "after_state": "수리영은 현장으로 이동할 수 있도록 여러 장의 지도를 확보한다.",
            "beat_index": 2,
            "before_state": "좌표의 위치는 확인했지만 이동 중 참고할 자료가 없다.",
            "change_type": "action",
            "description": "수리영이 지도를 여러 장 인쇄해 접은 뒤 백팩에 넣는다."
          }
        ],
        "scene_heading": "S#23. 어느 PC방 / 실내",
        "scene_index": 23
      },
      {
        "beats": [
          {
            "after_state": "해안가에 천둥과 번개를 동반한 세찬 소나기가 쏟아져 이동 환경이 악화된다.",
            "beat_index": 1,
            "before_state": "수리영은 지도를 확보하고 해상 좌표로 향하려는 상태다.",
            "change_type": "situation",
            "description": "먹구름이 낀 해안가에 거센 비가 내리기 시작한다."
          },
          {
            "after_state": "수리영은 악천후에도 멈추지 않고 자전거로 강민숙의 마지막 위치를 향한다.",
            "beat_index": 2,
            "before_state": "세찬 비와 천둥·번개가 수리영의 이동을 방해한다.",
            "change_type": "action",
            "description": "강민숙을 찾아야 한다는 생각에 집중한 수리영이 빗속을 계속 달린다."
          }
        ],
        "scene_heading": "S#24. 해안가 / 소나기",
        "scene_index": 24
      },
      {
        "beats": [
          {
            "after_state": "수리영은 누군가 집에 침입해 내부를 뒤졌다고 판단할 만한 물리적 흔적을 발견한다.",
            "beat_index": 1,
            "before_state": "수리영은 해상 좌표를 추적하던 중 집으로 돌아왔지만 내부 상황을 알지 못한다.",
            "change_type": "information",
            "description": "수리영이 발자국, 헤집어진 가재도구, 열린 창문과 쓰러진 의자들을 확인한다."
          },
          {
            "after_state": "수리영은 침입 흔적을 보고 다시 호흡이 가빠질 만큼 불안과 공포에 휩싸인다.",
            "beat_index": 2,
            "before_state": "수리영은 강민숙을 찾아야 한다는 목적에 집중하고 있다.",
            "change_type": "emotion",
            "description": "엉망이 된 집의 상태를 확인한 수리영의 호흡이 가빠진다."
          },
          {
            "after_state": "수리영은 자기 방 벽에 붉은 원과 그 가운데 꽂힌 피 묻은 사진이 실제 흔적으로 남아 있음을 발견한다.",
            "beat_index": 3,
            "before_state": "수리영은 집을 뒤진 침입자의 목적을 알지 못한다.",
            "change_type": "information",
            "description": "열린 방문 너머 벽에 지속적으로 남은 붉은 원과 그 중심의 사진을 발견한다."
          },
          {
            "after_state": "수리영은 사진이 과거 주관적 시신 이미지 속 강민숙의 손에 들려 있던 바로 그 사진이라고 인식한다.",
            "beat_index": 4,
            "before_state": "수리영에게 벽의 사진은 출처를 알 수 없는 물건이다.",
            "change_type": "information",
            "description": "사진을 떼어 자세히 본 수리영이 과거에 보았던 사진과 동일하다고 알아챈다."
          },
          {
            "after_state": "수리영은 사진 속 두 어린 여자아이 중 한 명이 어린 시절의 강민숙임을 알아본다.",
            "beat_index": 5,
            "before_state": "수리영은 오래된 시골 식당과 두 여자아이가 찍힌 사진의 인물 관계를 모른다.",
            "change_type": "information",
            "description": "수리영이 사진 속 아이 한 명을 어린 강민숙으로 식별한다."
          },
          {
            "after_state": "수리영은 연속된 기이한 사건을 감당하지 못하고 정신이 혼미해져 침대에 주저앉는다.",
            "beat_index": 6,
            "before_state": "수리영은 사진을 분석하며 단서를 파악하고 있다.",
            "change_type": "emotion",
            "description": "침입 흔적과 사진의 연결을 깨달은 수리영이 충격으로 주저앉는다."
          },
          {
            "after_state": "수리영은 집에 머무르지 않고 사진이 이끄는 단서를 따라 다시 밖으로 나간다.",
            "beat_index": 7,
            "before_state": "수리영은 혼란 속에서 엉망이 된 집을 둘러보고 있다.",
            "change_type": "decision",
            "description": "수리영이 사진을 꼭 쥐고 백팩을 멘 채 집을 나선다."
          }
        ],
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "scene_index": 25
      },
      {
        "beats": [
          {
            "after_state": "소나기가 멎고 포구 전체가 짙은 안개에 잠겨 배를 찾기 어려운 환경으로 바뀐다.",
            "beat_index": 1,
            "before_state": "해안가에 세찬 소나기가 쏟아지고 있다.",
            "change_type": "situation",
            "description": "비가 그친 뒤 안개가 자욱해져 포구의 배들이 보이지 않는다."
          },
          {
            "after_state": "수리영은 몇 시간의 수색에도 배나 강민숙의 단서를 찾지 못하고 지쳐 갯바위에 앉는다.",
            "beat_index": 2,
            "before_state": "수리영은 포구를 돌아다니며 바다로 나갈 방법을 찾고 있다.",
            "change_type": "action",
            "description": "오랜 시간 포구를 수색한 수리영이 결국 갯바위에 주저앉는다."
          },
          {
            "after_state": "수리영은 혜수가 이미 여러 차례 자신에게 전화했다는 사실을 확인한다.",
            "beat_index": 3,
            "before_state": "수리영은 강민숙 수색에 몰두해 외부 연락을 확인하지 않고 있다.",
            "change_type": "information",
            "description": "진동벨을 확인한 수리영이 혜수의 부재중 전화가 여러 통 쌓여 있음을 본다."
          },
          {
            "after_state": "수리영은 안개 속에서 포구로 접근하는 유일한 배를 발견해 바다로 나갈 가능성을 얻는다.",
            "beat_index": 4,
            "before_state": "안개 낀 빈 포구에는 이용할 수 있는 배가 보이지 않는다.",
            "change_type": "situation",
            "description": "안개를 뚫고 배 한 척이 포구로 들어온다."
          },
          {
            "after_state": "수리영은 배에서 내린 인우에게 바다로 태워 달라고 요청한다.",
            "beat_index": 5,
            "before_state": "수리영과 인우 사이에는 아무런 접점이나 합의가 없다.",
            "change_type": "action",
            "description": "수리영이 인우에게 다시 바다로 나갈 것인지 묻고 승선을 부탁한다."
          },
          {
            "after_state": "인우는 수리영이 강민숙을 찾기 위해 바다로 나가려 한다는 사실을 알게 된다.",
            "beat_index": 6,
            "before_state": "인우는 수리영이 배를 타려는 이유를 모른다.",
            "change_type": "information",
            "description": "수리영이 엄마를 찾아야 한다고 밝힌다."
          },
          {
            "after_state": "인우는 수리영을 배에 태워 함께 돌아가기로 결정한다.",
            "beat_index": 7,
            "before_state": "인우는 낯선 수리영의 승선 요청을 받아들일지 망설인다.",
            "change_type": "decision",
            "description": "인우가 고민 끝에 어차피 돌아가야 한다며 승선을 허락한다."
          },
          {
            "after_state": "혜수가 이후 확인할 수 있도록 수리영의 출발 사실과 안심시키는 말이 음성메시지로 남는다.",
            "beat_index": 8,
            "before_state": "혜수는 연락이 끊긴 수리영의 행방과 의도를 알지 못한다.",
            "change_type": "information",
            "description": "수리영이 떠나기 전 혜수에게 잠시 다녀올 곳이 있다며 음성메시지를 남긴다."
          }
        ],
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "scene_index": 26
      },
      {
        "beats": [
          {
            "after_state": "혜수는 수리영이 어디론가 잠시 다녀오겠다며 떠났다는 사실을 알게 된다.",
            "beat_index": 1,
            "before_state": "혜수는 여러 차례 연락에도 응답하지 않은 수리영의 현재 행동을 알지 못한다.",
            "change_type": "information",
            "description": "혜수가 옥탑방에서 수리영이 남긴 음성메시지를 확인한다."
          }
        ],
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "scene_index": 27
      },
      {
        "beats": [
          {
            "after_state": "수리영이 제시한 목적지가 인근 섬이 아니라 북동쪽 약 70km의, 인우가 아무것도 없다고 말하는 해역임이 드러난다.",
            "beat_index": 1,
            "before_state": "인우는 수리영이 엄마를 찾기 위해 인근 섬으로 가려는 것으로 알고 배를 운항하고 있다.",
            "change_type": "information",
            "description": "수리영이 지도를 내밀어 실제 목적지를 밝히자 인우가 그곳은 섬이 아닌 바다뿐이라고 지적한다."
          },
          {
            "after_state": "인우는 사진 속 장소를 보고 당황하면서도 모른다고 강하게 부인한다.",
            "beat_index": 2,
            "before_state": "수리영은 인우가 사진 속 장소를 식별해 줄 수 있을지 확인하려 한다.",
            "change_type": "reaction",
            "description": "수리영이 사진을 보여주자 인우가 당황한 반응을 보인 뒤 장소를 모른다고 부인한다."
          },
          {
            "after_state": "수리영은 인우의 흔들리는 시선을 근거로 그가 ‘금월’을 안다고 확신하고 추궁한다.",
            "beat_index": 3,
            "before_state": "인우의 부인 때문에 사진 속 장소에 관한 그의 지식은 불확실하다.",
            "change_type": "information",
            "description": "수리영이 사진 속 ‘금월’ 글씨를 짚고 인우의 동요를 포착해 그가 장소를 안다고 판단한다."
          },
          {
            "after_state": "인우는 목적지로 향하는 대신 배를 돌려 돌아가려 한다.",
            "beat_index": 4,
            "before_state": "인우는 수리영이 요청한 방향으로 배를 운항하고 있다.",
            "change_type": "decision",
            "description": "추궁받던 인우가 발작적으로 일어나 조타실로 달려가 뱃머리를 돌리려 한다."
          },
          {
            "after_state": "수리영은 인우의 회항 시도를 저지하기 위해 조타실로 따라 들어간다.",
            "beat_index": 5,
            "before_state": "수리영은 갑판에서 인우를 추궁하고 있으며 인우는 조타실로 달려간 상태다.",
            "change_type": "action",
            "description": "수리영이 인우의 의도를 알아차리고 뒤따라 조타실로 들어가 배를 돌리지 못하게 막는다."
          }
        ],
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "scene_index": 28
      },
      {
        "beats": [
          {
            "after_state": "수리영은 인우가 의도적으로 회항하려 한다는 사실을 직접 확인하며 그와 대치한다.",
            "beat_index": 1,
            "before_state": "앞 씬에서 수리영은 인우의 회항 시도를 눈치채고 조타실까지 따라와 막은 상태다.",
            "change_type": "relationship",
            "description": "수리영이 회항 의도를 추궁하면서 두 사람의 갈등이 직접적인 대치로 전환된다."
          },
          {
            "after_state": "수리영은 자신과 같은 사람은 목적지에 가면 안 된다는 인우의 강한 금지와 경고를 알게 된다.",
            "beat_index": 2,
            "before_state": "수리영은 인우가 왜 갑자기 배를 돌리려는지 이유를 모른다.",
            "change_type": "information",
            "description": "인우가 돌아가야 하며 수리영 같은 사람은 그곳에 갈 수 없다고 경고한다."
          },
          {
            "after_state": "수리영은 따지는 태도에서 인우를 달래며 목적지까지 데려다 달라고 설득하는 태도로 바뀐다.",
            "beat_index": 3,
            "before_state": "수리영은 인우에게 회항 이유를 격앙되게 따지고 있다.",
            "change_type": "action",
            "description": "수리영이 태세를 바꾸어 인우에게 부드럽게 운항을 부탁한다."
          },
          {
            "after_state": "수리영은 분노를 터뜨리며 엄마가 그곳에 잡혀 있다고 주장한다.",
            "beat_index": 4,
            "before_state": "수리영은 인우를 달래 목적지까지 데려가게 하려 한다.",
            "change_type": "emotion",
            "description": "설득이 통하지 않자 수리영이 분노하며 엄마의 억류 가능성을 근거로 목적지행을 요구한다."
          },
          {
            "after_state": "인우는 수리영의 엄마가 그곳에 잡혀 있을 수 있다는 가능성을 처음 인지하고 놀란다.",
            "beat_index": 5,
            "before_state": "인우는 수리영이 왜 위험한 목적지로 가려는지 구체적인 사정을 모른다.",
            "change_type": "information",
            "description": "수리영의 주장에 인우가 놀라 되묻는다."
          },
          {
            "after_state": "인우는 엄마의 억류가 확정된 사실이 아니라 수리영의 추정임을 알게 된다.",
            "beat_index": 6,
            "before_state": "인우는 수리영의 엄마가 실제로 그곳에 붙잡혀 있다는 말로 받아들인다.",
            "change_type": "information",
            "description": "수리영이 엄마가 잡혀 있을 수 있다는 뜻일 뿐 확실하지는 않다고 정정한다."
          },
          {
            "after_state": "인우는 사진 속 여자아이 한 명이 수리영의 엄마라는 사실을 알게 된다.",
            "beat_index": 7,
            "before_state": "인우는 사진과 수리영 엄마의 실종이 어떻게 연결되는지 모른다.",
            "change_type": "information",
            "description": "수리영이 사진 속 아이를 가리키며 자신의 엄마라고 밝힌다."
          },
          {
            "after_state": "인우는 수리영의 엄마가 41세 강민숙이라는 신원 정보를 알게 된다.",
            "beat_index": 8,
            "before_state": "인우는 사진 속 아이가 수리영의 엄마라는 것만 알고 이름과 현재 나이는 모른다.",
            "change_type": "information",
            "description": "수리영이 엄마의 이름과 나이를 밝힌다."
          },
          {
            "after_state": "인우는 ‘강민숙’이라는 이름에 강하게 동요하며 사색이 된다.",
            "beat_index": 9,
            "before_state": "인우는 수리영의 설명을 캐묻고 있지만 표면적으로 감정을 통제하고 있다.",
            "change_type": "reaction",
            "description": "인우가 강민숙의 이름을 되뇌고 얼굴이 창백해져 그 이름을 아는 듯한 반응을 보인다."
          },
          {
            "after_state": "수리영은 의식이 흐려지는 가운데 조타실의 수많은 원이 회전하고 붉은 원이 나타나는 주관적 시각 현상을 지각해 인우를 의심한다.",
            "beat_index": 10,
            "before_state": "수리영은 인우가 강민숙의 이름에 보인 반응을 보고 있으나 그의 정체를 확정하지 못한다.",
            "change_type": "information",
            "description": "수리영의 시야에 원들과 붉은 원이 나타나자 이전의 기이한 표식과 연결해 인우를 위험한 존재로 의심한다."
          },
          {
            "after_state": "인우는 수리영을 노려보며 기존의 방어적 태도에서 노골적인 적대감을 드러낸다.",
            "beat_index": 11,
            "before_state": "인우는 목적지행을 거부하고 동요하고 있지만 수리영을 직접 위협하는 태도는 명확하지 않다.",
            "change_type": "relationship",
            "description": "인우가 의식이 흐려지는 수리영을 노려보면서 두 사람의 관계가 명백한 적대 상태로 바뀐다."
          },
          {
            "after_state": "수리영은 의식을 잃고 인우의 어깨에 쓰러져 더 이상 회항을 저지할 수 없게 된다.",
            "beat_index": 12,
            "before_state": "수리영은 의식이 혼미해지고 있지만 서서 인우를 의심하며 대치하고 있다.",
            "change_type": "situation",
            "description": "수리영이 끝내 몸을 가누지 못하고 인우에게 쓰러져 무력화된다."
          }
        ],
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "scene_index": 29
      },
      {
        "beats": [
          {
            "after_state": "인우의 배가 세상과의 경계를 지우는 듯한 짙은 안개 속으로 들어가 외부 시야에서 가려진다.",
            "beat_index": 1,
            "before_state": "인우의 배는 해질 무렵 황금빛이 드리운 바다 위에서 짙은 안개 띠 바깥을 항해하고 있다.",
            "change_type": "situation",
            "description": "수리영이 의식을 잃은 뒤 인우의 배가 서서히 짙은 안개 안으로 진입한다."
          }
        ],
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "scene_index": 30
      }
    ],
    "total_beats": 155
  },
  "step_id": "beat_extract",
  "run_id": "4870694a-5558-45f3-ae1c-edb7045d003b",
  "resolved_model": "gpt",
  "updated_at": "2026-07-10T09:14:59.400778+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}