{
  "status": "completed",
  "completed_count": 29,
  "applicable_count": 29,
  "failed_count": 0,
  "data": {
    "scenes": [
      {
        "scene_index": 1,
        "scene_heading": "S#1. 숲속 / 해 질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "금월산 피해 남성이 부상을 입은 채 숲속을 헤치며 도망침",
            "after_state": "정체불명의 검은 인영이 튀어나와 남자를 덮쳐 남자가 비명을 지름",
            "description": "다친 채 도망치던 금월산 피해 남성이 정체를 알 수 없는 검은 인영에게 공격을 당한다."
          }
        ]
      },
      {
        "scene_index": 2,
        "scene_heading": "S#2. 도시 뒷골목 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "남녀가 골목길 전봇대에 뒤엉켜 가쁜 숨을 내쉬고 있음",
            "after_state": "남자가 붉은 눈동자를 드러내며 여자의 목을 물어뜯고 여자는 힘없이 쓰러짐",
            "description": "가쁜 숨을 몰아쉬던 남자가 흡혈귀처럼 여자의 목을 물어뜯어 죽게 만든다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "효장동 피해 여성이 쓰러진 적막한 골목",
            "after_state": "기자의 뉴스를 통해 금월산과 효장동에서 변사체가 발견되었다는 사실이 밝혀짐",
            "description": "기자 멘트가 깔리며 이전 씬과 현재 씬의 피해자가 연쇄 살인 사건의 피해자임이 정보로 제시된다."
          }
        ]
      },
      {
        "scene_index": 3,
        "scene_heading": "S#3. 현장 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "잇단 살인 사건이 발생하여 시신이 방치되어 있던 상태",
            "after_state": "경찰이 폴리스 라인을 치고 시신을 수거하며, 수사본부가 차려지고 비상령이 내려짐",
            "description": "혜수의 지휘 아래 현장 감식이 진행되며 경찰이 갑호 비상령을 내리고 본격적인 수사에 돌입한다."
          }
        ]
      },
      {
        "scene_index": 4,
        "scene_heading": "S#4. 옥탑방 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "경찰이 비상령을 내리고 수사를 진행 중인 상황",
            "after_state": "범인의 윤곽을 잡지 못해 지역 주민들 사이에 소문이 돌고 불안감이 증폭됨",
            "description": "기자 멘트를 통해 경찰의 수사 난항과 그로 인한 주민들의 극심한 두려움이 상황적 배경으로 제시된다."
          }
        ]
      },
      {
        "scene_index": 5,
        "scene_heading": "S#5. 옥탑방 안 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "reaction",
            "before_state": "민숙이 어두운 표정으로 심각하게 연쇄 살인 뉴스를 시청하고 있음",
            "after_state": "수리영이 방문을 열고 나오자 민숙이 황급히 TV를 끄고 다정한 말투로 태세를 전환함",
            "description": "딸 수리영이 등장하자 민숙은 뉴스 시청을 숨기기 위해 다급히 TV를 끄고 태연한 척 반응한다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "수리영이 알바 일정을 말하며 일상적인 대화를 나눔",
            "after_state": "수리영이 민숙의 손목에 있는 또렷한 표식을 목격하지만 대수롭지 않게 여김",
            "description": "외출 전 수리영이 민숙 손목의 표식을 확인하지만 익숙한 듯 넘기고 저녁 약속을 잡는다."
          }
        ]
      },
      {
        "scene_index": 6,
        "scene_heading": "S#6. 해안가 도로 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "수리영이 바다 냄새를 즐기며 평화롭게 자전거를 달리고 있음",
            "after_state": "사납게 짖는 개 소리가 들려오며 유기견 보호원에 다가갔음을 암시함",
            "description": "활기차게 자전거를 타던 수리영의 주변으로 개들이 짖는 소리가 들려와 분위기가 환기된다."
          }
        ]
      },
      {
        "scene_index": 7,
        "scene_heading": "S#7. 유기견 보호원 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "reaction",
            "before_state": "로트와일러가 사납게 짖으며 날뛰고 있음",
            "after_state": "수리영이 맹견의 눈을 노려보자 기세가 수그러들고 순해짐",
            "description": "사납게 날뛰던 맹견이 수리영의 강렬한 눈빛 제압에 반응하여 순한 양처럼 얌전해진다."
          },
          {
            "beat_index": 2,
            "change_type": "situation",
            "before_state": "수리영이 보호원 업무를 시작하려 함",
            "after_state": "알바가 늦어질 것 같아 민숙에게 연락하지만 전화를 받지 않아 부재 상태임을 인지함",
            "description": "일이 늦어질 것을 알리려 민숙에게 전화를 걸지만 연결되지 않아 의아한 상황에 놓인다."
          }
        ]
      },
      {
        "scene_index": 8,
        "scene_heading": "S#8. 번화가·대형 마트 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "수리영이 약속대로 민숙과 저녁을 먹기 위해 마트에 찾아옴",
            "after_state": "직원들을 통해 민숙이 낯선 누군가와 대화한 후 일찍 조퇴했다는 엇갈린 행방을 전해 들음",
            "description": "수리영은 마트 직원으로부터 엄마가 누군가를 만나고 이미 조퇴했다는 소식을 듣게 된다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "엄마의 예상 밖 부재에 당황하며 마트 밖에서 다시 전화를 걺",
            "after_state": "연락이 닿지 않자 수리영이 일단 집으로 돌아가기로 결심함",
            "description": "전화를 받지 않는 엄마의 행방을 찾기 위해 수리영은 서둘러 집으로 발길을 돌리기로 결정한다."
          }
        ]
      },
      {
        "scene_index": 9,
        "scene_heading": "S#9. 해안가 / N",
        "beats": []
      },
      {
        "scene_index": 10,
        "scene_heading": "S#10. 옥탑방 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "옥탑방 문이 닫혀 있고 주변이 고요함",
            "after_state": "얼굴이 보이지 않는 낯선 남자가 전단지를 이용해 문틈으로 잠금을 풀고 안으로 침입함",
            "description": "옥탑방으로 다가온 낯선 남자가 잠긴 철문을 따고 몰래 방 안으로 들어간다."
          },
          {
            "beat_index": 2,
            "change_type": "situation",
            "before_state": "낯선 남자가 방 안으로 들어선 상태",
            "after_state": "남자가 민숙을 덮쳐 어깨를 물어뜯고 민숙의 비명이 터져 나옴",
            "description": "창문에 비친 그림자를 통해 남자가 민숙을 기습 공격하여 물어뜯는 끔찍한 상황이 벌어진다."
          }
        ]
      },
      {
        "scene_index": 11,
        "scene_heading": "S#11. 옥탑 방 밖 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "수리영이 서둘러 자전거를 세우고 옥탑방 계단을 오름",
            "after_state": "갑자기 훅 끼치는 역겨운 냄새를 감지하고 심상치 않음을 느낌",
            "description": "급하게 집으로 돌아온 수리영이 계단에서 정체불명의 역겨운 냄새를 맡고 불길한 의문에 휩싸인다."
          },
          {
            "beat_index": 2,
            "change_type": "situation",
            "before_state": "의문을 품고 옥상으로 올라옴",
            "after_state": "현관 철문이 반쯤 열려 있는 것을 발견하고 사건 발생을 직감함",
            "description": "옥상에 다다른 수리영이 평소와 달리 열려 있는 현관문을 목격하며 심각한 상황에 직면한다."
          }
        ]
      },
      {
        "scene_index": 12,
        "scene_heading": "S#12. 옥탑방 안 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "엄마를 찾는 일상적 탐색",
            "after_state": "혈흔과 핏자국을 발견하며 참혹한 사건 현장 인지",
            "description": "수리영이 집안을 살피다 자신의 방 바닥에 흥건한 핏자국과 커튼으로 이어진 발자국을 발견한다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "참혹한 현장을 보고 놀란 상태",
            "after_state": "훼손된 엄마의 시신을 목격하고 극심한 충격에 빠짐",
            "description": "커튼을 젖히고 짐승에게 물어뜯긴 듯한 엄마의 시신을 발견하며 수리영이 공포와 충격으로 얼어붙는다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "충격에 빠져 몸을 가누지 못하는 상태",
            "after_state": "도움을 구하기 위해 다급히 구조를 요청함",
            "description": "수리영이 부들부들 떨면서도 핸드폰으로 이모 혜수에게 전화를 건다."
          },
          {
            "beat_index": 4,
            "change_type": "situation",
            "before_state": "살인 사건의 충격을 겪는 현실적인 공포 상태",
            "after_state": "설명할 수 없는 기이한 현상을 목격하고 극도의 공포 발작을 일으킴",
            "description": "엄마의 손목 문신이 붉게 변하고 벽에 저절로 붉은 원이 그려지는 초자연적 현상을 목격하며 소름끼치는 비명을 지른다."
          }
        ]
      },
      {
        "scene_index": 13,
        "scene_heading": "S#13. 옥탑방 외곽 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "옥탑방에서 극도의 공포에 질려 도망치는 상태",
            "after_state": "출동한 경찰(혜수)과 조우하여 상황을 알릴 수 있는 상태가 됨",
            "description": "비명을 지르며 계단을 허겁지겁 내려온 수리영이 사이렌 소리와 함께 도착한 혜수와 마주친다."
          },
          {
            "beat_index": 2,
            "change_type": "information",
            "before_state": "영문을 모른 채 수리영을 걱정하는 상태 (혜수)",
            "after_state": "엄마가 죽었다는 소식에 충격을 받고 사건 현장으로 진입함",
            "description": "수리영이 엄마가 죽어있다고 말하자, 혜수와 김형사가 크게 놀라며 옥탑방으로 뛰어 올라간다."
          }
        ]
      },
      {
        "scene_index": 14,
        "scene_heading": "S#14. 옥탑방 안 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "끔찍한 살인 사건 현장이 있을 거라 예상함 (혜수와 김형사)",
            "after_state": "시신이나 흔적이 전혀 없는 깨끗한 방을 마주함",
            "description": "혜수와 김형사가 옥탑방을 수색하지만 시신이나 핏자국이 흔적도 없이 사라져 있음을 확인한다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "엄마의 시신을 분명히 보았다는 확신 (수리영)",
            "after_state": "증거가 모두 사라진 깨끗한 방을 보며 겪는 극심한 혼란과 당혹감",
            "description": "수리영이 부리나케 방 안과 식탁을 확인하지만 너무나 정돈된 모습에 자신이 본 것을 의심하며 당황한다."
          },
          {
            "beat_index": 3,
            "change_type": "relationship",
            "before_state": "살인 사건의 가능성을 열어두고 현장을 살피던 태도",
            "after_state": "사건을 장난전화로 치부하며 수리영에게 짜증과 불신을 드러냄",
            "description": "아무런 증거가 나오지 않자 김형사가 수리영에게 장난전화냐며 화를 내고 불평한다."
          },
          {
            "beat_index": 4,
            "change_type": "decision",
            "before_state": "미스터리한 실종이나 범죄 가능성을 의심하던 상태",
            "after_state": "수리영의 과로로 인한 환각(악몽)으로 결론 짓고 밖으로 데리고 나감",
            "description": "혜수가 수리영을 다독이며 악몽을 꾼 것이라 말하고 바람을 쐬러 밖으로 데려간다."
          }
        ]
      },
      {
        "scene_index": 15,
        "scene_heading": "S#15. 해안가. 버스정류장 부근 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "기이한 현상과 사라진 시신에 대해 겪는 혼란",
            "after_state": "엄마가 죽었을 리 없다며 자신이 헛것을 본 것으로 합리화함",
            "description": "수리영이 멍하니 앉아 있다가 자신이 잘못 본 것이라는 혜수의 말을 수긍하며 현실 부정을 시도한다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "혜수 곁에서 안정을 취하며 쉬던 상태",
            "after_state": "직접 집으로 돌아가 엄마를 확인해 보겠다는 결심",
            "description": "수리영이 자리에서 훅 일어나며 혼자서 옥탑방으로 가보겠다고 말하고 달려간다."
          },
          {
            "beat_index": 3,
            "change_type": "situation",
            "before_state": "단순히 이모와 조카가 대화를 나누는 평범한 상황",
            "after_state": "정체불명의 누군가가 두 사람을 감시하는 불길한 상황",
            "description": "수리영과 혜수의 대화를 어딘가에서 지켜보는 듯한 카메라 시선이 등장한다."
          }
        ]
      },
      {
        "scene_index": 16,
        "scene_heading": "S#16. 경찰서 사무실 / N",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "decision",
            "before_state": "민숙이 전화를 받지 않자 일단 기다려보려던 상태",
            "after_state": "연락 두절에 불길함을 느끼고 공식적인 위치 추적을 지시함",
            "description": "혜수가 김형사에게 민숙의 전화번호를 건네주며 즉각적인 위치 추적을 요구한다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "수리영이 과로로 환각을 본 것이라 치부하며 안심하던 상태",
            "after_state": "민숙의 평소 성격과 맞지 않는 상황에 실제 위험이 닥쳤음을 직감하는 불안감",
            "description": "혜수가 민숙은 약속을 어길 사람이 아니라며 불길하고 예감이 안 좋다고 토로한다."
          }
        ]
      },
      {
        "scene_index": 17,
        "scene_heading": "S#17. 옥탑방 / 동틀무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "고요하고 텅 빈 새벽의 옥탑방 외부",
            "after_state": "검은 고양이가 불 켜진 방을 주시하며 조성되는 미스터리한 분위기",
            "description": "새벽녘 고양이 울음소리와 함께 검은 고양이가 불 켜진 옥탑방을 슬쩍 쳐다보고 담을 넘는다."
          }
        ]
      },
      {
        "scene_index": 18,
        "scene_heading": "S#18. 안방 안 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "밤새 기다리다 지쳐 깜빡 잠든 상태",
            "after_state": "고양이 소리에 깨어 실낱같은 희망을 품고 엄마를 찾음",
            "description": "졸던 수리영이 외부 소리에 번쩍 눈을 뜨고 엄마가 왔을지 모른다는 생각에 집안을 살핀다."
          },
          {
            "beat_index": 2,
            "change_type": "emotion",
            "before_state": "자신의 방 커튼 뒤에 시신이 다시 있을지도 모른다는 두려움",
            "after_state": "커튼을 열어 시신이 없음을 재확인하고 안도함",
            "description": "수리영이 심호흡 후 방으로 들어가 커튼을 확 열어젖히고 아무것도 없음을 확인한 뒤 한숨을 쉰다."
          },
          {
            "beat_index": 3,
            "change_type": "information",
            "before_state": "엄마를 찾을 길이 없어 막연하게 불안해하며 기다리던 상태",
            "after_state": "경찰(혜수)이 실종신고와 위치 추적을 진행 중이라는 소식을 전해 들음",
            "description": "전화를 건 혜수가 실종신고를 내고 위치 추적을 하고 있으니 기다려 달라고 알려준다."
          },
          {
            "beat_index": 4,
            "change_type": "emotion",
            "before_state": "이성을 다잡으며 세수와 물을 마시는 등 안정을 찾으려던 상태",
            "after_state": "반복되는 기이한 환영에 극도의 공포를 느끼고 스스로를 통제하려 발버둥침",
            "description": "욕실 벽의 붉은 원과 거실 사진 속 뭉개지는 엄마 얼굴을 본 수리영이 비명을 지르며, 정신을 차리기 위해 스스로 뺨을 친다."
          }
        ]
      },
      {
        "scene_index": 19,
        "scene_heading": "S#19. 마트 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "엄마가 실종 전 누구와 만났는지 전혀 단서가 없는 상태",
            "after_state": "엄마가 낯선 남자와 대화를 나눴다는 사실을 알게 된 상태",
            "description": "수리영은 마트 남자 직원으로부터 엄마가 남자와 이야기했다는 정보를 얻고, 이를 확인하기 위해 CCTV를 보자고 요청한다."
          }
        ]
      },
      {
        "scene_index": 20,
        "scene_heading": "S#20. 마트 총무과 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "CCTV 영상을 통해 엄마와 대화한 남자의 정체를 확인할 수 있을 것이라 기대하는 상태",
            "after_state": "해당 부분만 어두워 식별이 불가해 단서를 놓치자 깊은 불안감에 빠진 상태",
            "description": "보안직원과 CCTV를 돌려보지만, 유독 엄마와 남자가 대화하는 부분만 어두워 식별할 수 없게 되자 수리영의 불안감이 가중된다."
          }
        ]
      },
      {
        "scene_index": 21,
        "scene_heading": "S#21. 경찰서 안 / D",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "엄마 시신의 훼손된 모습을 자신의 단순한 환각으로 여겼던 상태",
            "after_state": "환각 속 시신의 끔찍한 모습이 실제 살인사건 피해자의 사진과 놀랍도록 흡사함을 깨닫고 경악한 상태",
            "description": "수리영은 혜수의 자리에 널브러진 살인사건 피해자 사진을 보고, 자신이 환각 상태에서 본 엄마의 시신과 똑같다는 사실에 충격을 받는다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "경찰서에 앉아 혜수를 기다리며 엄마의 위치에 대해 아무것도 모르던 상태",
            "after_state": "엄마 폰의 GPS 좌표를 몰래 알아낸 뒤, 홀로 추적에 나서기로 결심한 상태",
            "description": "김형사의 모니터에 엄마 폰의 마지막 위치가 바다 좌표로 뜨자, 수리영은 사색이 되어 좌표를 메모하고 몰래 경찰서를 빠져나온다."
          }
        ]
      },
      {
        "scene_index": 22,
        "scene_heading": "S#22. 경찰서 밖 / D, S#23. 어느 PC방 / 실내",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "action",
            "before_state": "머릿속에 위치 좌표만 가지고 무작정 이동하던 상태",
            "after_state": "PC방에서 좌표의 실제 위치를 확인하고 지도를 출력해 본격적인 추적을 준비한 상태",
            "description": "수리영은 자전거를 타고 PC방으로 달려가 확인한 좌표의 위치를 찍고 여러 장의 지도를 인쇄하여 백팩에 챙긴다."
          }
        ]
      },
      {
        "scene_index": 23,
        "scene_heading": "S#24. 해안가 / 소나기",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "추적 준비를 마치고 실내(PC방)에 머물던 상태",
            "after_state": "천둥번개가 치는 폭우 속을 뚫고 목적지를 향해 거침없이 나아가는 상태",
            "description": "세찬 비와 천둥번개가 치는 험악한 날씨 속에서도 수리영은 오로지 엄마를 찾겠다는 일념으로 자전거를 타고 빗속을 달린다."
          }
        ]
      },
      {
        "scene_index": 24,
        "scene_heading": "S#25. 옥탑방 안 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "집안이 예전처럼 깨끗하게 정돈되어 있을 것이라 생각한 상태",
            "after_state": "누군가 집을 뒤집어 놓고 환각 속의 기이한 붉은 원과 옛날 사진을 남겨둔 것을 발견한 상태",
            "description": "수리영은 난장판이 된 집과 벽에 그려진 붉은 원, 그리고 과거 환각 속 죽은 엄마가 쥐고 있던 옛날 사진이 꽂혀 있는 것을 보고 충격에 빠진다."
          },
          {
            "beat_index": 2,
            "change_type": "decision",
            "before_state": "연속되는 기이한 일들에 정신이 혼미해져 주저앉아 있던 상태",
            "after_state": "사진을 움켜쥐고 무언가에 이끌리듯 집 밖으로 향하며 행동을 결행하는 상태",
            "description": "혼란스러움에 빠진 수리영은 엉망이 된 집 안을 훑어본 후, 백팩을 메고 피 묻은 사진을 꼭 쥔 채 이끌리듯 밖으로 나간다."
          }
        ]
      },
      {
        "scene_index": 25,
        "scene_heading": "S#26. 포구 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "비바람이 몰아치고 배가 없어 바다로 나갈 길이 막막했던 상태",
            "after_state": "비가 그치고 안개가 자욱한 가운데 인우의 배가 나타나 희망이 생긴 상태",
            "description": "안개가 자욱한 텅 빈 포구에서 하염없이 바다를 바라보며 지쳐가던 수리영 앞에, 마침내 안개를 뚫고 인우의 배가 다가온다."
          },
          {
            "beat_index": 2,
            "change_type": "relationship",
            "before_state": "인우와 일면식도 없으며 승선을 거절당할 수 있는 불안한 상태",
            "after_state": "간절함과 고집으로 인우를 설득해 배에 동승하게 된 상태",
            "description": "수리영은 목적지도 분명히 말하지 않은 채 무작정 배에 태워달라고 요구하고, 인우는 고민 끝에 어차피 돌아가는 길이라며 승선을 허락한다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "혜수의 여러 통의 부재중 전화를 무시하며 단독 행동 중이던 상태",
            "after_state": "떠나기 직전 혜수에게 안심시키는 음성 메시지를 남겨 연락을 취한 상태",
            "description": "바다로 나가기 전, 수리영은 혜수에게 잠깐 다녀올 곳이 있으니 걱정하지 말라는 메시지를 남긴다."
          }
        ]
      },
      {
        "scene_index": 26,
        "scene_heading": "S#27. 옥탑방 안 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "연락두절된 수리영의 행방을 전혀 몰라 불안해하던 상태",
            "after_state": "수리영의 메시지를 듣고 그녀가 혼자 바다 쪽 좌표를 찾아갔음을 확신한 상태",
            "description": "혜수는 수리영의 음성 메시지를 확인한 후, 그녀가 경찰서에서 몰래 좌표를 보고 망망대해로 떠났을 것이라 직감하며 걱정에 휩싸인다."
          }
        ]
      },
      {
        "scene_index": 27,
        "scene_heading": "S#28. 바다 + 갑판 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "information",
            "before_state": "인근 섬으로 갈 것이라 막연히 짐작함",
            "after_state": "제시된 좌표가 바다 한가운데임을 알고 의문을 제기함",
            "description": "수리영이 지도로 북동쪽 70km 좌표를 알려주자, 인우는 그곳이 아무것도 없는 바다라며 목적지에 대해 의아해한다."
          },
          {
            "beat_index": 2,
            "change_type": "reaction",
            "before_state": "목적지에 대해 단순한 의문을 가짐",
            "after_state": "사진을 보고 크게 당황하며 모른다고 잡아뗌",
            "description": "수리영이 낡은 사진을 보여주자, 인우는 사진 속 장소를 보고 당황한 기색을 보이며 모른다고 강하게 부인한다."
          },
          {
            "beat_index": 3,
            "change_type": "action",
            "before_state": "사진에 대해 모른다고 잡아떼며 불안해함",
            "after_state": "발작적으로 일어나 배를 돌리려 함",
            "description": "수리영이 인우의 흔들리는 시선을 포착하고 계속 추궁하자, 인우는 돌연 조타실로 달려가 뱃머리를 돌리려 한다."
          }
        ]
      },
      {
        "scene_index": 28,
        "scene_heading": "S#29. 조타실 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "emotion",
            "before_state": "수리영을 돌려보내야 한다는 생각에 완강히 거부함",
            "after_state": "수리영의 엄마가 잡혀있을 수 있다는 말에 놀라고 혼란스러워함",
            "description": "수리영이 조타실까지 따라와 엄마가 그곳에 잡혀있다고 분노하며 말하자, 인우는 예상치 못한 이야기에 충격을 받는다."
          },
          {
            "beat_index": 2,
            "change_type": "reaction",
            "before_state": "수리영의 사연을 듣고 의문을 품으며 이름을 물음",
            "after_state": "엄마의 이름이 '강민숙'이라는 말을 듣고 사색이 됨",
            "description": "수리영이 실종된 엄마의 이름과 나이를 밝히자, 인우는 그 이름을 듣고 크게 동요하며 사색이 된다."
          },
          {
            "beat_index": 3,
            "change_type": "information",
            "before_state": "인우의 반응에 집중하며 엄마를 찾으려 함",
            "after_state": "조타실 내부의 수많은 붉은 원을 발견하고 경악함",
            "description": "수리영은 인우 너머로 조타실 안을 가득 채운 붉은 원들을 발견하고, 자신의 집에서 본 표식과 같음에 충격을 받아 인우의 정체를 의심한다."
          },
          {
            "beat_index": 4,
            "change_type": "action",
            "before_state": "인우의 정체를 의심하며 극도의 충격과 공포를 느낌",
            "after_state": "의식을 잃고 인우의 어깨로 쓰러짐",
            "description": "연이어 발견되는 기이한 단서와 충격 속에서 수리영은 혼미해지는 의식을 주체하지 못하고 결국 인우의 어깨에 쓰러진다."
          }
        ]
      },
      {
        "scene_index": 29,
        "scene_heading": "S#30. 바다 / 해질 무렵",
        "beats": [
          {
            "beat_index": 1,
            "change_type": "situation",
            "before_state": "석양이 비치는 바다 위를 운항하는 배",
            "after_state": "짙은 안개 속으로 들어가며 현실 세계와 단절됨",
            "description": "해가지고 황금빛 그림자가 드리워진 바다 위에서, 인우의 배가 세상과의 경계를 지우는 듯한 짙은 안개 띠 속으로 서서히 진입한다."
          }
        ]
      }
    ],
    "total_beats": 56
  },
  "step_id": "beat_extract",
  "run_id": "949e786b-498f-40b7-9267-dc501b197839",
  "resolved_model": "gemini-pro",
  "updated_at": "2026-07-22T01:44:10.405645+00:00",
  "schema_version": 1,
  "config_hash": "99914b932bd37a50",
  "project_config_snapshot": {}
}