{
  "builtAt": "2026-10-18 03:25 UTC",
  "bible": {
    "schemaVersion": "3.0",
    "revision": 3,
    "status": "pilot_development",
    "title": "ЛИРА И УКРАДЕННАЯ ЛУНА",
    "tagline": "Наш дом поместился в его карман. Придётся забрать.",
    "premise": "Коллекционер уменьшает родную луну Лиры до живого стеклянного шара и увозит в корабль-музей. Лира бросается вдогонку, находит союзников среди редких пленников и пытается украсть свой дом обратно до открытия выставки.",
    "characters": [
      {
        "id": "lira",
        "name": "Лира",
        "role": "Картограф и проводник. Показывает родную луну заказчику, не зная, что тот крадёт живые миры.",
        "desire": "Вернуть украденный дом и его настоящий размер.",
        "flaw": "Слишком уверена, что знание маршрута означает контроль над теми, кого она ведёт.",
        "arc": "Выбирает риск, признаёт ошибку конкретным действием и использует свой атлас для освобождения миров.",
        "comicEngine": "Быстро видит диагонали, точки опоры и последовательность перемещения вещей. Может протиснуться туда, где застревает чашечная голова Балерины, но не заменяет силой Лирили или полётом Бомбардиро. Накидка иногда цепляется за тот самый угол, который она объявила свободным.",
        "visual": {
          "id": "lira",
          "name": "Лира",
          "relative_height": 1.0,
          "silhouette": "compact young woman, two spiral copper-brown braided buns held with small brass clips",
          "face": "large brown eyes, heart-shaped face, determined expressive eyebrows",
          "costume": "cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots",
          "signature_prop": "glowing turquoise CYLINDRICAL data cartridge with brass end caps",
          "referenceSheet": "assets/characters/core-cast-r2.png"
        }
      },
      {
        "id": "rin",
        "name": "Рин",
        "role": "Техник Бомбардиро, первый напарник Лиры.",
        "desire": "Вернуть команду живой и сохранить корабль.",
        "flaw": "Пытается спасти каждый дорогой инструмент даже тогда, когда нужно бежать.",
        "arc": "В решающий момент сам жертвует нужным прибором ради выхода для команды.",
        "comicEngine": "Короткий практический жест решает задачу после слишком длинного объяснения.",
        "visual": {
          "id": "rin",
          "name": "Рин",
          "relative_height": 1.1,
          "silhouette": "slender young man, tufted sandy hair",
          "face": "large amber eyes, freckles, rounded nose, open earnest expression",
          "costume": "faded ochre repair overalls over cream shirt, one turquoise patch, red multitool at belt",
          "signature_prop": "red multitool"
        }
      },
      {
        "id": "beep",
        "name": "БИП",
        "role": "Мобильный печатник карт и измеритель Лиры.",
        "desire": "Найти и напечатать рабочий путь наружу.",
        "flaw": "Выдаёт правильные сведения в физически неудобном виде.",
        "arc": "Его бумажные схемы становятся маршрутом побега, но он не знает секретов музея заранее.",
        "comicEngine": "Точность результата против неудобной формы выдачи.",
        "visual": {
          "id": "beep",
          "name": "БИП",
          "relative_height": 0.48,
          "silhouette": "low rounded cuboid receipt-printer robot on two small wheels",
          "face": "two amber LED eyes on turquoise front panel, central receipt-mouth slot",
          "costume": "cream body with rounded faceted bevels, turquoise front panel, red alert dome on top",
          "signature_prop": "paper receipt protruding from front mouth slot; separate brass SIDE input port accepts cylindrical cartridge",
          "constraints": [
            "exactly two small side wheels",
            "no arms",
            "side input port receives cartridge",
            "front mouth prints receipt",
            "other characters or built-in slot manipulate objects"
          ]
        }
      },
      {
        "id": "ballerina-cappuccina",
        "name": "Балерина Капучина",
        "role": "Пленница живой коллекции, умеющая проходить там, где другие теряют равновесие.",
        "desire": "Выйти из навязанного ей бесконечного представления.",
        "flaw": "Старается закончить красивое движение даже после того, как план изменился.",
        "arc": "Сама выбирает момент выступления и использует сценическое внимание как отвлекающий манёвр.",
        "comicEngine": "Удерживает равновесие на узких опорах, достаёт точным пуантом; широкая чашечная голова не проходит в низкие проёмы.",
        "visual": {
          "id": "ballerina-cappuccina",
          "name": "Балерина Капучина",
          "sheet_position": "top row third",
          "locked_design": "White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms",
          "publicDescription": "Балерина с чашкой капучино вместо головы. Держит равновесие и не проливает кофе."
        }
      },
      {
        "id": "cappuccino-assassino",
        "name": "Капучино Ассасино",
        "role": "Стакан-ниндзя и бариста среди пленников музея.",
        "desire": "Вернуть свободу себе и Балерине.",
        "flaw": "Любит эффектный жест больше тихого своевременного действия.",
        "arc": "Меняет красивый одиночный трюк на точную помощь партнёру.",
        "comicEngine": "Две ложки — точные инструменты, а не универсальные мечи. Стакан лёгкий, его сносит сквозняком.",
        "visual": {
          "id": "cappuccino-assassino",
          "name": "Капучино Ассасино",
          "sheet_position": "top-right",
          "locked_design": "Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting",
          "publicDescription": "Стакан кофе в экипировке ниндзя. Любую мелкую задачу выполняет с убийственной серьёзностью."
        }
      },
      {
        "id": "tralalero-tralala",
        "name": "Тралалеро Тралала",
        "role": "Трёхногий акула-курьер, пойманный как редкий живой экспонат.",
        "desire": "Добежать до настоящего выхода.",
        "flaw": "Путает быстрый старт с успешным побегом.",
        "arc": "Остаётся удерживать путь, пока проходят остальные; сохраняет скорость и дерзость.",
        "comicEngine": "Три синих кроссовка дают необычную устойчивость, но третий постоянно цепляется за то, что он уже считает пройденным.",
        "visual": {
          "id": "tralalero-tralala",
          "name": "Тралалеро Тралала",
          "sheet_position": "bottom-left",
          "locked_design": "Horizontal blue-gray shark with white underbelly, dorsal fin/tail/gills, playful toothy grin, exactly three fin-legs wearing exactly three bright blue unbranded sneakers",
          "publicDescription": "Акула на трёх ногах в синих кроссовках. Третья нога то мешает, то спасает положение."
        }
      },
      {
        "id": "bombardiro-crocodilo",
        "name": "Бомбардиро Крокодило",
        "role": "Разумный крокодил-самолёт; везёт Лиру к внешнему маяку и становится её кораблём в погоне.",
        "desire": "Выбраться из охотничьего маршрута с целыми крыльями и всеми пассажирами.",
        "flaw": "Обещает красивый манёвр, не желая признавать собственный размах и инерцию.",
        "arc": "Позволяет команде вести его через тесный путь и возвращается за теми, кому обещал место.",
        "comicEngine": "Длинный крокодилий нос и крылья мешают тесной парковке; лицо показывает стыд прежде, чем он признаёт промах.",
        "visual": {
          "id": "bombardiro-crocodilo",
          "name": "Бомбардиро Крокодило",
          "sheet_position": "bottom-right",
          "locked_design": "Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot",
          "publicDescription": "Крокодил-самолёт с двумя винтами. Выглядит грозно даже с обычным грузом."
        }
      },
      {
        "id": "tung-tung-sahur",
        "name": "Тунг-Тунг Сахур",
        "role": "Живое полено с битой, выставленное как неподвижная скульптура.",
        "desire": "Снова двигаться и шуметь по собственной воле.",
        "flaw": "Выдаёт своё присутствие раньше времени любимым ритмом.",
        "arc": "Использует свой узнаваемый стук намеренно, чтобы увести погоню.",
        "comicEngine": "Деревянный корпус, бита, чёткий ритм; может стать распоркой, но тогда обе руки заняты и ему тоже нужна помощь.",
        "visual": {
          "id": "tung-tung-sahur",
          "name": "Тунг-Тунг Сахур",
          "sheet_position": "top row second",
          "locked_design": "Tall honey-brown wooden log cylinder, carved huge eyes/nose/grin, skinny wooden limbs, broad carved feet, wooden bat, charcoal belt and small amber circular badge",
          "publicDescription": "Ожившее полено с деревянной битой. Его появление обычно слышно раньше, чем видно."
        }
      },
      {
        "id": "lirili-larila",
        "name": "Лирили Ларила",
        "role": "Слон-кактус из ботанической коллекции.",
        "desire": "Унести живые растения из сада, который хотят застеклить.",
        "flaw": "Считает каждый горшок обязательным пассажиром.",
        "arc": "Выбирает живой росток вместо тяжёлой витрины и помогает провести его наружу.",
        "comicEngine": "Слон-кактус, гибкий хобот, огромные сандалии. Тяжёлый, но точный; может удержать вещь, которую другие принимают за конструкцию.",
        "visual": {
          "id": "lirili-larila",
          "name": "Лирили Ларила",
          "sheet_position": "top-left",
          "locked_design": "Deep green ribbed cactus-elephant, ochre elephant head and ears, long trunk, small tusks, sparse spines, two massive brown double-strap sandals, tiny coin pouch; no humanoid arms; trunk manipulates objects",
          "publicDescription": "Слон-кактус в огромных сандалиях. Грубая сила и удивительно ловкий хобот."
        }
      },
      {
        "id": "brr-brr-patapim",
        "name": "Брр Брр Патапим",
        "role": "Древесный великан из одного живого экспоната.",
        "desire": "Вывести из коллекции собственный живой мир.",
        "flaw": "Слишком долго молча удерживает то, что уже нельзя спасти целиком.",
        "arc": "Сам показывает жизнеспособный путь и доверяет другим перенос хрупкого груза.",
        "comicEngine": "Носатый древесный силуэт, огромные стопы и корни. Не мгновенная лоза, а тяжёлая живая опора.",
        "visual": {
          "id": "brr-brr-patapim",
          "name": "Брр Брр Патапим",
          "sheet_position": "bottom-middle",
          "locked_design": "Woody tree merged with proboscis-monkey face, long drooping rounded nose, sleepy eyes, mossy canopy hair/shoulders, root arms and two enormous bare carved feet with rounded toes",
          "publicDescription": "Носатый лесной великан с корнями и огромными ступнями. Двигается медленно, замечает многое."
        }
      },
      {
        "id": "collector",
        "name": "Коллекционер",
        "role": "Владелец корабля-музея. Забирает живые миры и намеренно превращает их в неподвижные идеальные экспонаты.",
        "desire": "Открыть выставку, в которой ничто не изменяется без его разрешения.",
        "flaw": "Не терпит свободного движения в своей композиции; бережёт редкие экспонаты и хочет полный атлас Лиры.",
        "arc": "Оказывается внутри обычной чашки после того, как сам попадает в поле собственного аппарата.",
        "comicEngine": "Поправляет угол таблички посреди погони; обращается к живым как к вещам; огромные после уменьшения героев пальцы двигаются деликатно, но опасно.",
        "visual": {
          "status": "root-approved",
          "relative_height": 1.35,
          "silhouette": "Very tall thin original adult man with long precise fingers and narrow rounded shoulders; short silver hair fanning sideways, no hood or helmet.",
          "face": "Angular stylized face, long straight nose, small alert dark eyes behind two differently sized round gold magnifying lenses; original face, no actor likeness.",
          "costume": "Structured plum-purple museum coat ending at knees, ivory high collar and fitted ivory handling gloves, narrow dark trousers, polished brass-buckled shoes; gold pocket caliper. No military armor, cape, weapons or insignia.",
          "palette": "plum, ivory, muted gold",
          "signature_action": "Two gloved fingertips carefully straightening a tiny display placard while looking at a living specimen.",
          "referenceSheet": "assets/characters/collector-r3-v1.png"
        }
      }
    ],
    "castSheet": "assets/characters/core-cast-r2.png",
    "approvedReferenceSheets": [
      "assets/characters/core-cast-r2.png",
      "assets/characters/brainrot-cameo-sheet-v1.png"
    ],
    "worldRules": [
      "Лира, Рин и БИП на полноразмерном Бомбардиро находятся вне контура первого луча. Только луна уменьшается; герои впервые уменьшаются позднее при попытке захватить аппарат.",
      "У Коллекционера один наружный корабельный аппарат: три такта зарядки и видимый фиксированный контур. Он меняет один полностью обведённый объём; каждое тело внутри должно помещаться целиком. Непрозрачный корпус закрывает воздействие. Внутри музея работают обычные захваты.",
      "Размер сохраняется до обратного импульса того же аппарата. Разбить шар недостаточно: оболочка сохраняет среду живого маленького мира.",
      "Коллекционер намеренно стеклует новые экспонаты к открытию выставки. Процесс действует только на миры в его установке. Украденный шар уже не под дистанционным таймером, но дому ещё нужно вернуть размер.",
      "Увеличивать миры можно последовательно с показанного наружного выпускного места в свободном объёме. Вывести мир из корабля не значит мгновенно вернуть к родной звезде.",
      "Все мемы сохраняют утверждённую анатомию. У БИПа нет рук; у Тралалеро ровно три ноги и никаких человеческих рук; Лирили действует хоботом; Бомбардиро сам самолёт.",
      "Лира сохраняет утверждённые лицо, медные косы-пучки, кремовый костюм и накидку, бирюзовый пояс и бордовые сапоги. При необходимости к ним добавляется прозрачная защита для вакуума; дизайн героини не заменяется.",
      "Ни один человек не стоит без защиты в открытом вакууме. Бомбардиро имеет герметичное пассажирское место; в вакууме движется штатными маневровыми соплами, не винтами.",
      "Отсылки Star Wars редкие и необязательные. Нет копирования фильма, известных реплик, тайного родства, избранного ученика или атаки сверхоружия.",
      "Комедия строится на риске, характере, ловком обмане и последствиях поступка. Не превращать маршрут в длинную последовательность бытовых ремонтных задач.",
      "Возврат мини-команды проводится в герметичной пассажирской кабине Бомбардиро: аппарат восстанавливает самолёт и пассажиров вместе. Рин, удерживающий внутренний переключатель, остаётся последним и выходит в защитном мини-коконе на второй цикл; полноразмерная Лира управляет внешним пультом."
    ],
    "locations": [
      {
        "id": "home-beacon",
        "name": "Родная луна и внешний маяк",
        "look": "Тёплый обитаемый мир с узнаваемым живым объектом у дома Лиры. Маяк и Бомбардиро находятся снаружи захватываемого контура; пустота после исчезновения луны повторяет прежнюю композицию."
      },
      {
        "id": "museum-cargo",
        "name": "Грузовой приёмник музея",
        "look": "Большой внешний карман с обычными захватами и сервисными ушками. Внутренний переход открывается после герметизации. Под самолётом проходит постамент, ошибочно принимающий его за новый экспонат."
      },
      {
        "id": "living-conservatory",
        "name": "Живая оранжерея",
        "look": "Влажный высокий лес, проросшие переходы и хищные приманки среди настоящих растений. Это полноразмерная среда для крупных живых экспонатов; герои не входят внутрь уменьшенной планеты."
      },
      {
        "id": "tidal-habitat",
        "name": "Приливный резервуар",
        "look": "Содержащий воздух морской павильон с настоящей водой, опрокидывающимися лодками и служебной педалью у нижнего выхода. Водный уровень и путь показываются до погони; стеклянные миры здесь не вскрывают."
      },
      {
        "id": "mounting-shafts",
        "name": "Монтажные колодцы",
        "look": "Высокое пространство между ярусами, движущиеся крюки, закрытые футляры и перекрёстные подъёмники. По нему проходят пленники и груз; здесь воздушная среда, падение имеет реальную высоту."
      },
      {
        "id": "moon-gallery",
        "name": "Галерея живых лун",
        "look": "Тёмный просторный зал; метровые прозрачные живые сферы со своими облаками и огнями. Над стендами видны каналы отдельной стеклянной заливки. Уже мёртвый образец отличается неподвижной волной внутри сплошного стекла."
      },
      {
        "id": "service-niche",
        "name": "Ниша у грузового обхода",
        "look": "Конкретная закрываемая ниша со знакомой заметной жёлтой скобой, показанная до кражи. Вмещает метровую сферу, имеет мягкую грузовую опору; находится внутри корпуса, вне позднего наружного захвата команды."
      },
      {
        "id": "external-focus",
        "name": "Наружный фокус и погрузочная площадка",
        "look": "Одна закреплённая снаружи установка, три видимых такта зарядки и отдельный внешний пульт. Площадка с герметичной прозрачной защитой позволяет дышать; наружный луч не проходит через непрозрачный корпус."
      },
      {
        "id": "collector-worktable",
        "name": "Рабочий стол Коллекционера",
        "look": "Чашка, ложка, настольный вентилятор, щётка и запертый живой террариум видны в нормальном масштабе заранее. После уменьшения это те же предметы: кофе становится озером, ложка мостом, вентиляция препятствием."
      },
      {
        "id": "apparatus-service",
        "name": "Сервисный доступ аппарата",
        "look": "За ранее показанной узкой решёткой видна реальная тяга наружного переключателя. После уменьшения герои добираются к ней, затем к герметичному выпускному лотку. Это внутренности прежней установки, не второй излучатель."
      },
      {
        "id": "release-corridor",
        "name": "Внешний выпускной коридор",
        "look": "Открытый космос перед тем же аппаратом. Шар сначала вынесен, затем проверяется свободный объём его исходного мира; музей и остальные капсулы вне объёма. Между возвратами корабль проходит к отмеченным исходным местам, не растит соседние планеты в одной куче."
      }
    ],
    "arcs": [
      {
        "id": 1,
        "episodes": [],
        "title": "Поймать собственную ошибку",
        "objective": "На полноразмерном Бомбардиро Лира видит исчезновение родной луны. БИП всё ещё печатает маршрут оплаченной панорамы; обычный манипулятор забирает живой шар.",
        "turn": "Коллекционер узнаёт своего картографа и разворачивает монтажную линию ей навстречу. Обычный обратный путь закрыт.",
        "mode": "Космическая погоня и абордаж",
        "transition": "Погоня становится побегом через живую коллекцию; Лире нужны освобождённые соседи.",
        "status": "working-five-stage-map-episode-allocation-pending-pilot-review"
      },
      {
        "id": 2,
        "episodes": [],
        "title": "Экспонаты кусаются",
        "objective": "Коллекционер гонит захваты через влажную оранжерею. Лирили отличает хищную приманку от настоящего стебля; Патапим притворяется деревом, пока полировочная щётка не добирается до его носа.",
        "turn": "Охрана перекрывает доступ к постоянным стендам; луну можно перехватить только на движущемся монтажном рейсе.",
        "mode": "Охота, обман и пересечение чужих сред",
        "transition": "Герои превращают изученную транспортную систему в маршрут кражи.",
        "status": "working-five-stage-map-episode-allocation-pending-pilot-review"
      },
      {
        "id": 3,
        "episodes": [],
        "title": "Украсть целый дом",
        "objective": "Лира оставляет на транспортере закрытый пустой футляр. Настоящий метровый шар переходит на соседний подъёмник; на его поверхности продолжает двигаться знакомый домашний объект.",
        "turn": "Лира выбирает возвращение размера. Коллекционер нарочно оставляет выход к аппарату открытым и убирает оттуда захваты.",
        "mode": "Подготовленная кража и преследование",
        "transition": "Команда принимает освобождённую площадку за выигранный проход и входит в подготовленный наружный контур.",
        "status": "working-five-stage-map-episode-allocation-pending-pilot-review"
      },
      {
        "id": 4,
        "episodes": [],
        "title": "Десять сувениров",
        "objective": "Три знакомых такта успевают завершиться: вся собранная команда впервые уменьшена. Манипулятор переносит живую группу в запертый настольный террариум для выбора будущих поз.",
        "turn": "Рин удерживает обратный режим, пока остальные выходят по герметичному лотку в знакомый фокус; нужно вернуть и оставшегося оператора.",
        "mode": "Переворот масштаба и побег",
        "transition": "Первый восстановленный участник получает доступ к внешнему пульту и завершает возврат команды.",
        "status": "working-five-stage-map-episode-allocation-pending-pilot-review"
      },
      {
        "id": 5,
        "episodes": [],
        "title": "Коллекция выходит наружу",
        "objective": "Восстановленная команда перехватывает выпускной лоток. Лира направляет его сначала к оставшимся под заливкой мирам; её собственная сфера уже безопасна.",
        "turn": "У похитителя больше нет ни управления, ни свободного выхода; показанные живые миры восстановлены.",
        "mode": "Захват, космическое освобождение и последняя ловушка",
        "transition": "Лира возвращает Рину рабочую карту с его собственным проложенным участком, затем сама принимает его маршрут домой.",
        "status": "working-five-stage-map-episode-allocation-pending-pilot-review"
      }
    ],
    "presentation": {
      "titleLines": [
        "ЛИРА И",
        "УКРАДЕННАЯ",
        "ЛУНА"
      ],
      "intro": "Её родной мир теперь помещается в чужом кармане. Лира и команда странных беглецов отправляются грабить самый опасный музей в космосе.",
      "note": "Приключенческая редакция: погоня, проникновение, живые миры и побег в новом масштабе.",
      "quoteSpeaker": "Лира",
      "quote": "Это не сувенир. Это наш дом.",
      "tape": "ПОГОНЯ • ЖИВОЙ МУЗЕЙ • УКРАСТЬ ЛУНУ ОБРАТНО",
      "actsHeading": "Пять этапов одной авантюры",
      "castHeading": "Команда, которую нельзя поставить на полку",
      "worldHeading": "Как украсть целую луну"
    },
    "episodeGrammar": {
      "duration": "60–90 секунд, преимущественно60.",
      "cuts": "2–3 секунды на монтажный план.",
      "dialogue": "Короткая реплика меняет действие, а не объясняет уже показанное; оставлять место немой реакции."
    },
    "publicWorldRules": [
      "Коллекционер крадёт целые миры одним наружным аппаратом. Перед импульсом видны контур и три такта зарядки.",
      "В прозрачном шаре продолжается жизнь. Разбить оболочку недостаточно, чтобы вернуть миру размер.",
      "Для обратного превращения нужен тот же аппарат и свободное пространство за пределами корабля.",
      "К открытию выставки Коллекционер собирается навсегда застеклить новые экспонаты. Украденный шар уже вне его установки.",
      "У каждого участника команды свои возможности: три ноги Тралалеро, хобот Лирили, баланс Балерины, точные ложки Капучино и крылья Бомбардиро."
    ],
    "emotionalSpine": "Украсть луну обратно недостаточно: Лире нужно вернуть ей размер. Путь к аппарату проходит через пленников, у каждого из которых есть собственный мир и собственный план побега.",
    "extraCastSheets": [
      {
        "title": "Коллекционер — хозяин живого музея",
        "path": "assets/characters/collector-r3-v1.png",
        "status": "approved"
      }
    ]
  },
  "episodes": [
    {
      "id": 1,
      "number": 1,
      "revision": 3,
      "arc": 1,
      "title": "Вид на исчезнувший дом",
      "duration": 60.0,
      "logline": "Лира уводит экипаж от поля заказчика и видит, как тот похищает её родную луну. Она сама решает зацепиться за корабль вора, но выбранное ушко оказывается частью движущегося погрузчика.",
      "hook": "В резком вираже Лира ловит ботинком укатившегося БИПа, пока он продолжает печатать идеально прямой маршрут.",
      "reversal": "За пределами поля команда остаётся полноразмерной; родная луна сжимается до метровой сферы и попадает в корабельный захват.",
      "payoff": "Лира не теряет похитителя: Рин зацепляет лебёдкой выбранное ею сервисное ушко.",
      "cliffhanger": "Ушко на погрузочной каретке едет внутрь корпуса и тянет самолёт с экипажем под закрывающийся кожух.",
      "synopsis": [
        "Вираж катит БИПа по полу; Лира останавливает его ботинком, а принтер продолжает чертить прямую дорогу. Общий план заранее показывает весь экипаж вне контура. На живом экране знакомый домашний кот тянется к цветку у окна Лиры. Рин видит, что заказчик делает нечто большее, чем обещанный снимок.",
        "Излучатель заряжается тремя видимыми тактами. Лира использует собственную карту и выбирает укрытие за маяком. Самолёт целиком выходит из прямой видимости до импульса; только луна сжимается. Обычный корабельный манипулятор забирает живую сферу.",
        "Лира сразу организует вызов помощи, который нормально отправляется. Коллекционер обращается с целым миром как с декоративным шаром: поворачивает лес к стене и поправляет табличку. На увеличенном изображении кот всё-таки сталкивает горшок: даже похищение мира не прервало знакомую шалость.",
        "Лира выбирает погоню. Бомбардиро справедливо не видит посадочной полосы; Лира находит существующее сервисное ушко и просит зацепиться. Рин стреляет штатным крюком лебёдки, и защёлка действительно замыкается.",
        "Экипаж удерживается рядом с похитителем — решение сработало. Но выбранное ушко оказывается частью каретки, которая уходит в корпус. Натянутый трос втягивает самолёт под закрывающийся кожух. Внешний размер команды не меняется."
      ],
      "parody": "",
      "cast": [
        "lira",
        "rin",
        "beep",
        "bombardiro-crocodilo",
        "collector"
      ],
      "location": [
        "moon-exterior-beacon",
        "bombardiro-cockpit",
        "collector-exterior-loading-bay"
      ],
      "keyframeBeats": [
        {
          "id": "ep01-k01",
          "beat": "hook",
          "action": "В резком вираже Лира останавливает ботинком укатившегося БИПа; из его рта продолжает выходить карта с идеально прямым маршрутом."
        },
        {
          "id": "ep01-k02",
          "beat": "reversal",
          "action": "Луна вместе с тонкой прозрачной живой оболочкой быстро сжимается внутри поля; пустой космос открывается там, где только что был огромный мир."
        },
        {
          "id": "ep01-k03",
          "beat": "punchline",
          "action": "Каретка втягивает за трос целый самолёт носом в тёмный грузовой карман; края кожуха начинают закрываться позади его крыльев."
        }
      ],
      "continuityIn": "Лира нанята провести съёмочный корабль к родной луне ради обещанной оптической панорамы. Она, Рин и БИП уже на Бомбардиро у внешнего маяка, полностью за границей целевой луны. Бомбардиро имеет герметичную пассажирскую кабину и штатную грузовую лебёдку. Остальные6мемов пока не представлены и находятся в коллекции.",
      "continuityOut": "Луна жива в метровой прозрачной оболочке на корабле-музее; домашний кот продолжает двигаться внутри. Команда остаётся полного размера. Сигнал бедствия отправлен. Трос Бомбардиро заперт на ушке движущейся каретки, которая втягивает его в наружный грузовой карман.",
      "causalityNotes": [
        "До сжатия общий план02 ясно показывает весь самолёт, включая хвост и крылья, снаружи светового контура. Уход за маяк в08/09 не пересекает этот контур. Ни один герой не уменьшен.",
        "Зарядка состоит из трёх видимых тактов; корпус маяка даёт Лире понятное укрытие от направленного поля. Аппарат один, снаружи корабля.",
        "Лира знает свою карту подлёта, но не знает внутреннего музея. Её осознанная погоня достигает цели и даёт непредвиденное затягивание кареткой.",
        "Родной мир конкретен: перед захватом показаны знакомый Лире рыжий кот, окно и горшок; после захвата камера подтверждает движение того же кота в сфере.",
        "Нормальная связь работает: сигнал бедствия отправлен без искусственных помех. Действие происходит слишком быстро, чтобы внешняя помощь успела остановить уже совершённый захват.",
        "Кот — обычное маленькое домашнее животное, не новый ведущий говорящий персонаж. У него рыжая полосатая шерсть и белые передние лапы."
      ],
      "shots": [
        {
          "n": 1,
          "start": 0.0,
          "duration": 2.5,
          "framing": "Средний наклонённый план Лиры, робота и прямой линии на бумаге",
          "camera": "Камера закреплена в герметичной кабине",
          "action": "В резком вираже Лира останавливает ботинком укатившегося БИПа; из его рта продолжает выходить карта с идеально прямым маршрутом.",
          "dialogue": [],
          "sound": "Гул виража, ровный невозмутимый треск принтера",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 2,
          "start": 2.5,
          "duration": 2.5,
          "framing": "Общий план ясной геометрии: луна в контуре, самолёт целиком вне его",
          "camera": "Плавный отъезд",
          "action": "Весь Бомбардиро с целыми крыльями и хвостом летит у внешнего маяка, снаружи огромного неподвижного светового контура вокруг луны.",
          "dialogue": [],
          "sound": "Низкий сигнал зарядки через кабину",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 3,
          "start": 5.0,
          "duration": 2.5,
          "framing": "Крупная деталь живого экрана и маленькой фотографии в его рамке",
          "camera": "Статика",
          "action": "На живом экране облёта рыжий кот на знакомом бирюзовом окне тянется лапой к красному цветочному горшку; рядом фотография Лиры у того же окна.",
          "dialogue": [],
          "sound": "Короткое живое мяуканье из канала наблюдения",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 4,
          "start": 7.5,
          "duration": 2.5,
          "framing": "Крупный план лица Лиры и отражения света",
          "camera": "Статика",
          "action": "Лира невольно улыбается коту на экране, затем замечает новый яркий свет на его шерсти.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Рыжий, горшок не трогай."
            }
          ],
          "sound": "Мяуканье сменяется низким гулом",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 5,
          "start": 10.0,
          "duration": 2.5,
          "framing": "Средний план Рина и простой пиктограммы панорамы",
          "camera": "Статика",
          "action": "Рин сверяет мерцающий корабль с открытой заявкой на панорамный облёт.",
          "dialogue": [
            {
              "character": "Рин",
              "text": "Он обещал только снимок."
            }
          ],
          "sound": "Один короткий сигнал несоответствия",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 6,
          "start": 12.5,
          "duration": 2.5,
          "framing": "Крупный внешний план излучателя и трёх простых сегментов",
          "camera": "Статика",
          "action": "На единственном наружном излучателе вспыхивает первый из трёх крупных зарядных сегментов.",
          "dialogue": [],
          "sound": "Первый низкий удар зарядки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 7,
          "start": 15.0,
          "duration": 2.5,
          "framing": "Крупный план пальца Лиры и реального маяка за окном",
          "camera": "Перевод фокуса по указанию",
          "action": "Лира разворачивает свою карту: отмеченный внешний маяк оставляет рядом с контуром свободный коридор.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Бомба, за маяк. Сейчас."
            }
          ],
          "sound": "Резкий шорох карты",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 8,
          "start": 17.5,
          "duration": 2.5,
          "framing": "Общий боковой план полного самолёта и маяка",
          "camera": "Боковое сопровождение",
          "action": "Пока загорается второй сегмент, сопла на гондолах Бомбардиро уводят весь самолёт к обратной стороне маяка.",
          "dialogue": [],
          "sound": "Второй удар и короткий импульс сопел",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 9,
          "start": 20.0,
          "duration": 2.5,
          "framing": "Общий план видимой границы укрытия и уходящего хвоста",
          "camera": "Статика",
          "action": "Третий сегмент вспыхивает, когда хвост Бомбардиро уже полностью скрывается за непрозрачным корпусом маяка.",
          "dialogue": [],
          "sound": "Третий тяжёлый удар",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 10,
          "start": 22.5,
          "duration": 2.5,
          "framing": "Общий вертикальный план сжимающегося мира и неизменного маяка",
          "camera": "Статика без смены масштаба камеры",
          "action": "Луна вместе с тонкой прозрачной живой оболочкой быстро сжимается внутри поля; пустой космос открывается там, где только что был огромный мир.",
          "dialogue": [],
          "sound": "Один плотный низкий импульс, затем обрыв гула",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 11,
          "start": 25.0,
          "duration": 2.5,
          "framing": "Средний внешний план сферы и обычного манипулятора",
          "camera": "Сопровождение шара",
          "action": "Обычный металлический захват корабля подхватывает оставшуюся метровую сферу и увозит её к грузовой щели.",
          "dialogue": [],
          "sound": "Рабочий щелчок захвата по корабельной связи",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 12,
          "start": 27.5,
          "duration": 2.5,
          "framing": "Крупный план решившей действовать Лиры",
          "camera": "Статика",
          "action": "Лира разворачивается от пустого окна к Рину, удерживая карту в кулаке.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Рин. На связь."
            }
          ],
          "sound": "Короткий резкий вдох",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 13,
          "start": 30.0,
          "duration": 2.5,
          "framing": "Крупный план кнопки и лица Рина",
          "camera": "Статика",
          "action": "Рин нажимает аварийную связь; подтверждение отправки загорается сразу.",
          "dialogue": [
            {
              "character": "Рин",
              "text": "Порт, похищена жилая луна!"
            }
          ],
          "sound": "Обычный чистый сигнал отправленного вызова",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 14,
          "start": 32.5,
          "duration": 2.5,
          "framing": "Средний план высокого человека и метровой сферы, без гигантских пальцев",
          "camera": "Статика",
          "action": "В маленькой приёмной за окном Коллекционер бережно поворачивает сферу в роликовой подставке, отворачивая живой лес к стене.",
          "dialogue": [],
          "sound": "Тихий скрип роликов и шорох перчатки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 15,
          "start": 35.0,
          "duration": 2.5,
          "framing": "Крупный план перчаток и неодинаковых увеличительных линз",
          "camera": "Короткий наезд",
          "action": "Коллекционер двумя пальцами выправляет табличку и останавливает шар, когда домики обращены к нему.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "Домики — к зрителю."
            }
          ],
          "sound": "Один аккуратный щелчок таблички",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 16,
          "start": 37.5,
          "duration": 2.5,
          "framing": "Деталь живого окна внутри снятой снаружи сферы",
          "camera": "Статика",
          "action": "Рин увеличивает изображение сферы: тот же рыжий кот невозмутимо сталкивает красный горшок с подоконника, продолжая начатую до похищения шалость.",
          "dialogue": [],
          "sound": "Короткий сигнал увеличения, приглушённый керамический стук из канала наблюдения",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 17,
          "start": 40.0,
          "duration": 2.5,
          "framing": "Средний план Лиры в готовой к манёвру позе",
          "camera": "Статика",
          "action": "Лира крепко затягивает собственный ремень у кресла и смотрит вслед уходящему кораблю.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "За ним."
            }
          ],
          "sound": "Решительный щелчок ремня",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 18,
          "start": 42.5,
          "duration": 2.5,
          "framing": "Крупный план крокодильего лица, корпус музея в глубине",
          "camera": "Плавное сопровождение",
          "action": "Бомбардиро смотрит на гладкий борт корабля-музея, не находя места для посадки.",
          "dialogue": [
            {
              "character": "Бомбардиро",
              "text": "Там нет посадочной полосы."
            }
          ],
          "sound": "Тихое напряжённое ворчание по связи",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 19,
          "start": 45.0,
          "duration": 2.5,
          "framing": "Глубинный план указания и настоящего ушка снаружи",
          "camera": "Короткий наезд на выбранную точку",
          "action": "Лира находит на борту видимое сервисное ушко рядом с погрузочной щелью.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Зато есть буксирное ушко."
            }
          ],
          "sound": "Сухой стук пальца по внутреннему стеклу",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 20,
          "start": 47.5,
          "duration": 2.5,
          "framing": "Средний внешний план лебёдки, троса и летящего крюка",
          "camera": "Сопровождение одного выброса",
          "action": "Рин запускает уже установленную под гондолой грузовую лебёдку; штатный крюк летит к выбранному ушку.",
          "dialogue": [],
          "sound": "Короткий визг барабана",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 21,
          "start": 50.0,
          "duration": 2.5,
          "framing": "Крупная деталь соединения",
          "camera": "Статика",
          "action": "Крюк входит в ушко и закрывает собственную защёлку; трос натягивается.",
          "dialogue": [],
          "sound": "Чёткий щелчок защёлки и короткий гул троса",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 22,
          "start": 52.5,
          "duration": 2.5,
          "framing": "Крупный план ушка и открывшейся под ним каретки",
          "camera": "Короткий перевод вниз",
          "action": "Под ушком включаются ролики: оно закреплено на погрузочной каретке, которая начинает уходить по рельсу внутрь корабля.",
          "dialogue": [],
          "sound": "Неожиданно оживший гул роликов",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 23,
          "start": 55.0,
          "duration": 2.5,
          "framing": "Общий план самолёта, ещё целого троса и захватывающего его кармана",
          "camera": "Плавный отъезд внутрь кармана",
          "action": "Каретка втягивает за трос целый самолёт носом в тёмный грузовой карман; края кожуха начинают закрываться позади его крыльев.",
          "dialogue": [],
          "sound": "Нарастающий гул каретки и створок",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 24,
          "start": 57.5,
          "duration": 2.5,
          "framing": "Крупный план крокодильего лица перед темнотой",
          "camera": "Резкое прекращение движения камеры",
          "action": "Бомбардиро в последний момент поджимает посадочные колёса и испуганно смотрит в темноту впереди.",
          "dialogue": [
            {
              "character": "Бомбардиро",
              "text": "Меня куда?!"
            }
          ],
          "sound": "Глухой удар закрывшегося внешнего кожуха",
          "transition": "Обрыв на конкретном последствии; звук продолжается"
        }
      ],
      "scenes": [
        {
          "title": "За линией",
          "timeRange": "0–12.5 с",
          "setting": "Кабина Бомбардиро у внешнего маяка",
          "action": "Вираж катит БИПа по полу; Лира останавливает его ботинком, а принтер продолжает чертить прямую дорогу. Общий план заранее показывает весь экипаж вне контура. На живом экране знакомый домашний кот тянется к цветку у окна Лиры. Рин видит, что заказчик делает нечто большее, чем обещанный снимок.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Рыжий, горшок не трогай."
            },
            {
              "character": "Рин",
              "text": "Он обещал только снимок."
            }
          ]
        },
        {
          "title": "Пустое небо",
          "timeRange": "12.5–27.5 с",
          "setting": "Внешний маяк и единственный аппарат на борту музея",
          "action": "Излучатель заряжается тремя видимыми тактами. Лира использует собственную карту и выбирает укрытие за маяком. Самолёт целиком выходит из прямой видимости до импульса; только луна сжимается. Обычный корабельный манипулятор забирает живую сферу.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Бомба, за маяк. Сейчас."
            }
          ]
        },
        {
          "title": "Чужая композиция",
          "timeRange": "27.5–40 с",
          "setting": "Кабина самолёта и приёмная Коллекционера",
          "action": "Лира сразу организует вызов помощи, который нормально отправляется. Коллекционер обращается с целым миром как с декоративным шаром: поворачивает лес к стене и поправляет табличку. На увеличенном изображении кот всё-таки сталкивает горшок: даже похищение мира не прервало знакомую шалость.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Рин. На связь."
            },
            {
              "character": "Рин",
              "text": "Порт, похищена жилая луна!"
            },
            {
              "character": "Коллекционер",
              "text": "Домики — к зрителю."
            }
          ]
        },
        {
          "title": "За своим домом",
          "timeRange": "40–52.5 с",
          "setting": "Борт корабля-музея",
          "action": "Лира выбирает погоню. Бомбардиро справедливо не видит посадочной полосы; Лира находит существующее сервисное ушко и просит зацепиться. Рин стреляет штатным крюком лебёдки, и защёлка действительно замыкается.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "За ним."
            },
            {
              "character": "Бомбардиро",
              "text": "Там нет посадочной полосы."
            },
            {
              "character": "Лира",
              "text": "Зато есть буксирное ушко."
            }
          ]
        },
        {
          "title": "Попали внутрь",
          "timeRange": "52.5–60 с",
          "setting": "Движущаяся погрузочная каретка",
          "action": "Экипаж удерживается рядом с похитителем — решение сработало. Но выбранное ушко оказывается частью каретки, которая уходит в корпус. Натянутый трос втягивает самолёт под закрывающийся кожух. Внешний размер команды не меняется.",
          "dialogue": [
            {
              "character": "Бомбардиро",
              "text": "Меня куда?!"
            }
          ]
        }
      ],
      "keyframes": [
        {
          "id": "ep01-k01",
          "path": "assets/episodes-r3/ep01/keyframe-01.webp",
          "status": "approved",
          "root_approval": "approved",
          "root_review": "Фактический визуальный просмотр: Лира и БИП соответствуют утверждённым образам; вираж, остановка ботинком и прямая бумажная карта читаются. Вертикальная композиция и анатомия приняты.",
          "source_script_sha256": "c33aedd2223464c9fa0a43e17f297b7dcdd043f2abea376d5dc539ab84690b26",
          "image_sha256": "a655b8d5b6f8f666c6438f4b1ec1bb8de78cde0d8ac37940c782f1aad02edd8d",
          "source_shot": 1,
          "shot": 1,
          "role": "hook",
          "beat": "В резком вираже Лира останавливает ботинком укатившегося БИПа; из его рта продолжает выходить карта с идеально прямым маршрутом.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Inside the clear SEALED passenger cockpit of a banking crocodile cargo aircraft, Lira braces one burgundy boot against the low wheeled body of BEEP to stop him rolling across the tilted floor. BEEP continues printing a paper route with one absurdly perfectly straight line. Lira holds a seat edge with one hand; the robot has no hands. Outside the cockpit a vast glowing fixed circle surrounds a distant moon, entirely separate from this aircraft. Funny physical control inside a real sudden maneuver, no objects floating freely. Exact stable identities: Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. БИП: low rounded cuboid receipt-printer robot on two small wheels; two amber LED eyes on turquoise front panel, central receipt-mouth slot; cream body with rounded faceted bevels, turquoise front panel, red alert dome on top; paper receipt protruding from front mouth slot; separate brass SIDE input port accepts cylindrical cartridge. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots. BEEP has NO ARMS or hands, exactly TWO side wheels; paper exits FRONT mouth, cylindrical cartridge enters separate SIDE port.",
          "asset": "assets/episodes-r3/ep01/keyframe-01.png",
          "original": "assets/episodes-r3/ep01/keyframe-01.png",
          "available": true
        },
        {
          "id": "ep01-k02",
          "path": "assets/episodes-r3/ep01/keyframe-02.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 10,
          "role": "reversal",
          "beat": "Луна вместе с тонкой прозрачной живой оболочкой быстро сжимается внутри поля; пустой космос открывается там, где только что был огромный мир.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Wide exterior instant of the inhabited MOON visibly contracting inside a closed luminous capture contour, its intact transparent living envelope shrinking with it. Fixed navigation beacon in foreground gives a stable size reference; full-size Bombardiro is sheltered entirely BEHIND and OUTSIDE the beacon on the near side, with all wings and tail still full sized, nowhere inside the capture contour. Deep space is opening where the large moon was. One exterior emitter on the museum ship is visible at distance. No giant human hand, no exploding world, no people exposed to vacuum. Exact stable identities: Бомбардиро Крокодило: Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot. Bombardiro is the entire crocodile aircraft, NOT a pilot. Preserve complete wings and tail. Three passengers use his transparent sealed cockpit behind his brow. In vacuum propellers are folded and still; small maneuvering nozzles on ENGINE GONDOLAS give thrust.",
          "asset": "assets/episodes-r3/ep01/keyframe-02.png",
          "original": "assets/episodes-r3/ep01/keyframe-02.png",
          "available": false
        },
        {
          "id": "ep01-k03",
          "path": "assets/episodes-r3/ep01/keyframe-03.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 23,
          "role": "punchline",
          "beat": "Каретка втягивает за трос целый самолёт носом в тёмный грузовой карман; края кожуха начинают закрываться позади его крыльев.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. A full-size Bombardiro is being pulled nose-first into a dark external cargo pocket of a MUCH larger museum ship. One taut cable from his visible under-gondola cargo winch ends at a metal hook latched to an eye on a small motorized rail carriage already moving inward. The closing outer hood edges remain clear of his complete wings, not cutting them. Through his sealed cockpit Lira, Rin and arm-less BEEP realize the unexpected consequence. The craft is not miniaturized, no giant human fingers, no atmospheric wind outside. Exact stable identities: Бомбардиро Крокодило: Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot. Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. Рин: slender young man, tufted sandy hair; large amber eyes, freckles, rounded nose, open earnest expression; faded ochre repair overalls over cream shirt, one turquoise patch, red multitool at belt; red multitool. БИП: low rounded cuboid receipt-printer robot on two small wheels; two amber LED eyes on turquoise front panel, central receipt-mouth slot; cream body with rounded faceted bevels, turquoise front panel, red alert dome on top; paper receipt protruding from front mouth slot; separate brass SIDE input port accepts cylindrical cartridge. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots. BEEP has NO ARMS or hands, exactly TWO side wheels; paper exits FRONT mouth, cylindrical cartridge enters separate SIDE port. Bombardiro is the entire crocodile aircraft, NOT a pilot. Preserve complete wings and tail. Three passengers use his transparent sealed cockpit behind his brow. In vacuum propellers are folded and still; small maneuvering nozzles on ENGINE GONDOLAS give thrust.",
          "asset": "assets/episodes-r3/ep01/keyframe-03.png",
          "original": "assets/episodes-r3/ep01/keyframe-03.png",
          "available": false
        }
      ],
      "schemaVersion": "3.0",
      "seriesTitle": "Лира и украденная луна",
      "status": "draft-for-independent-adventure-pilot-review",
      "memeCast": [
        "bombardiro-crocodilo"
      ],
      "reviewScope": "Полный R3 сценарий и монтажные планы, отдельная независимая сюжетная читка ещё не завершена. Не относится к принятой ранееR2. Изображений по этому сценарию ещё нет.",
      "scaleBlocking": {
        "bombardiro": "Полноразмерный транспорт: рабочая блокировка длина около9м, размах около10м. Это масштаб постановки, не новый дизайн или обязательная техническая характеристика. Сохранять утверждённые пропорции целого крокодила-самолёта.",
        "passengers": "Лира около1.6м, Рин немного выше. Прозрачная герметичная кабина позади бровей самолёта имеет два человеческих кресла рядом и низкий напольный проход для БИПа. В кадре показывать хотя бы одно кресло и полный торс Лиры для масштаба.",
        "carriage": "Грузовой карман рассчитан на обычный самолёт такого размера, а не на игрушечный экспонат. Обычный человеческий Коллекционер меньше самолёта; в пилоте его пальцы не гигантские.",
        "moonSphere": "После уменьшения лунная сфера около1м в диаметре. Коллекционер поворачивает её в роликовой подставке, не поднимает пальцами как бусину."
      },
      "scriptReady": true
    },
    {
      "id": 2,
      "number": 2,
      "revision": 3,
      "arc": 1,
      "title": "Не трогайте экспонат",
      "duration": 60.0,
      "logline": "Грузовой карман доставляет экипаж в живую коллекцию. Лира освобождает выставленную Балерину, которая помогает снять захват с самолёта; пустой постамент поднимает тревогу и закрывает прямой путь к луне.",
      "hook": "Музейный захват пытается выставить живого Бомбардиро в красивой позе; самолёт упирается посадочными колёсами и возражает против выворачивания крыла.",
      "reversal": "Освобождённая Балерина добирается до педали и снимает захват, но её опустевший постамент запускает сигнал пропажи.",
      "payoff": "Бомбардиро освобождён, Лира получает самостоятельную союзницу; обе успевают перейти в соседнюю галерею.",
      "cliffhanger": "Перегородка отрезает их от самолёта. На другой стороне их встречают две ложки запертого кофейного ниндзя.",
      "synopsis": [
        "Внутренняя дверь открывается после выравнивания давления. Обычный выставочный захват пытается выставить живой самолёт красиво, но сгибать его крыло нельзя. Рин отдельно сбрасывает буксирный крюк. Лира замечает живую Балерину, противящуюся механической постановке локтя, и выходит из кабины по ступеньке.",
        "Лира открывает видимый замок на голени пленницы. Балерину больше всего раздражает навязанный ритм. Захват продолжает давить на Бомбардиро; узкая сервисная балка ведёт от подиума к обслуживающей педали за его корпусом.",
        "Балерина переносит вес на балку. Пустой подиум немедленно поднимает тревогу, и тяжёлая перегородка начинает закрываться. Балерина успевает нажать педаль, захват отпускает самолёт. Бомбардиро выходит из его губок до того, как балерина убирает ногу.",
        "Балерина сама выбирает ещё открытый боковой зазор и проводит туда Лиру, повернув чашечную ручку вдоль стены. Лира по действующей связи поручает Рину искать другой вход с самолётом. Дверь закрывается; две ложки ещё одного запертого пленника встречают их с другой стороны."
      ],
      "parody": "",
      "cast": [
        "lira",
        "rin",
        "beep",
        "bombardiro-crocodilo",
        "ballerina-cappuccina",
        "cappuccino-assassino"
      ],
      "location": [
        "museum-pressure-cargo-bay",
        "museum-live-specimen-hall",
        "museum-rotating-partition"
      ],
      "keyframeBeats": [
        {
          "id": "ep02-k01",
          "beat": "hook",
          "action": "На соседнем вращающемся подиуме Балерина стоит в позе; корректирующая планка подталкивает её локоть, а она раздражённо возвращает его обратно."
        },
        {
          "id": "ep02-k02",
          "beat": "reversal",
          "action": "Балерина дотягивается свободным пуантом до педали и прижимает её, стоя другой ногой на сервисной балке."
        },
        {
          "id": "ep02-k03",
          "beat": "punchline",
          "action": "На уровне груди Лиры скрещиваются две ложки Капучино; короткая лента за жёсткой выставочной спинкой удерживает заднее монтажное ушко его кофейной муфты, вне досягаемости коротких рук."
        }
      ],
      "continuityIn": "Самолёт полного размера втянут штатной кареткой под наружный кожух музея. Лира, Рин и БИП в его герметичной кабине. Трос ещё соединён с кареткой; луна уже увезена внутрь. Коллекционер не устраивал этот первоначальный абордаж специально.",
      "continuityOut": "Бомбардиро свободен от буксирного крюка и выставочного захвата; Рин и БИП остаются при нём в большом герметичном зале. Лира и освобождённая Балерина прошли через вращающуюся перегородку в следующий зал. Сигнал пропажи поднят, прежний прямой маршрут к сфере закрыт. Капучино удерживает короткая лента за широкой жёсткой спинкой: она соединяет заднее монтажное ушко кофейной муфты с основанием. Короткие руки не достигают крепления, пока спинку не наклонить.",
      "causalityNotes": [
        "Кожух кармана закрылся в конце01. В02 внутренние ворота открываются после штатного выравнивания давления; зелёный индикатор у пассажирской дверцы виден до выхода Лиры. Люди не выходят в вакуум.",
        "Штатный сброс электрозатвора буксирного крюка показан отдельно в03. Последующая свобода самолёта не требует забыть всё ещё соединённый трос.",
        "Балерина прикреплена к постаменту мягкой фиксирующей манжетой на голени; Лира открывает обычный видимый ручной замок. Две руки Балерины остаются её единственными руками.",
        "За выставочным захватом есть обслуживающая педаль механического размыкания. Узкая сервисная балка идёт от соседнего подиума к этой педали; геометрия показана до шага Балерины.",
        "Сход Балерины снимает вес с датчика постамента и сразу вызывает тревогу. Она успевает нажать педаль до закрытия тяжёлой перегородки; Бомбардиро уже выкатился из захвата к её отпусканию.",
        "Никакого уменьшения или излучателя внутри зала нет: здесь действуют обычные захваты и перегородки.",
        "Капучино не связан доступной лентой поперёк живота. Мягкое крепление скрыто за широкой жёсткой спинкой и её задним нижним краем; в03 Лира наклоняет спинку, открывая доступ его ложке."
      ],
      "shots": [
        {
          "n": 1,
          "start": 0.0,
          "duration": 2.5,
          "framing": "Общий план большого самолёта, захвата и открытого атмосферного зала",
          "camera": "Плавный выезд из кармана",
          "action": "Внутренние ворота кармана открываются в большой герметичный зал; мягкие губки выставочного захвата пытаются повернуть целого Бомбардиро боком на подиум.",
          "dialogue": [],
          "sound": "Гул внутренней двери, скрип резиновых губок",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 2,
          "start": 2.5,
          "duration": 2.5,
          "framing": "Средний план крокодильего лица и зажатого основания целого крыла",
          "camera": "Статика",
          "action": "Бомбардиро упирается посадочными колёсами и косится на зажатый корень крыла.",
          "dialogue": [
            {
              "character": "Бомбардиро",
              "text": "Крыло туда не гнётся."
            }
          ],
          "sound": "Скрип колёсных шин по полу",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 3,
          "start": 5.0,
          "duration": 2.5,
          "framing": "Крупная деталь освобождённого ушка",
          "camera": "Статика",
          "action": "По команде Рина штатный электрозатвор буксирного крюка раскрывается и трос сматывается с каретки.",
          "dialogue": [],
          "sound": "Щелчок затвора и короткое жужжание лебёдки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 4,
          "start": 7.5,
          "duration": 2.5,
          "framing": "Средний план всей чашечной балерины, манжеты на голени и планки",
          "camera": "Статика на маленьком сопротивлении",
          "action": "На соседнем вращающемся подиуме Балерина стоит в позе; корректирующая планка подталкивает её локоть, а она раздражённо возвращает его обратно.",
          "dialogue": [],
          "sound": "Навязчивый трёхдольный механический метроном",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 5,
          "start": 10.0,
          "duration": 2.5,
          "framing": "Крупный план глаз Балерины, открытого кофе и боковой ручки",
          "camera": "Статика",
          "action": "Лира замечает, как живой кофе в чашечной голове Балерины дрожит в такт её злому взгляду.",
          "dialogue": [],
          "sound": "Тихий плеск кофе под метроном",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 6,
          "start": 12.5,
          "duration": 2.5,
          "framing": "Средний план кабины, индикатора и выхода на пол",
          "camera": "Короткое сопровождение",
          "action": "У зелёного индикатора давления Лира открывает пассажирскую дверцу и спускается по штатной короткой ступеньке к подиуму.",
          "dialogue": [],
          "sound": "Щелчок дверцы и два быстрых шага",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 7,
          "start": 15.0,
          "duration": 2.5,
          "framing": "Крупный план руки Лиры и манжеты",
          "camera": "Статика",
          "action": "Лира приседает у видимого замка мягкой манжеты на голени Балерины.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Сейчас сниму."
            }
          ],
          "sound": "Шорох пальцев по тканевой манжете",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 8,
          "start": 17.5,
          "duration": 2.5,
          "framing": "Средний план чашечного лица и механического маятника",
          "camera": "Статика",
          "action": "Балерина с отвращением смотрит на качающийся рядом метроном.",
          "dialogue": [
            {
              "character": "Балерина",
              "text": "И этот противный метроном."
            }
          ],
          "sound": "Очередные три слишком бодрых щелчка",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 9,
          "start": 20.0,
          "duration": 2.5,
          "framing": "Крупная деталь открытой манжеты и целого пуанта",
          "camera": "Статика",
          "action": "Лира отводит ручную защёлку, и мягкая манжета раскрывается вокруг голени.",
          "dialogue": [],
          "sound": "Чёткий небольшой щелчок",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 10,
          "start": 22.5,
          "duration": 2.5,
          "framing": "Крупный план целого крыла и давящей мягкой губки",
          "camera": "Статика",
          "action": "У Бомбардиро резиновая губка захвата продолжает медленно сжиматься у основания крыла; он удерживает корпус на колёсах.",
          "dialogue": [],
          "sound": "Нарастающий резиновый скрип",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 11,
          "start": 25.0,
          "duration": 2.5,
          "framing": "Общий план понятного пути от подиума к педали",
          "camera": "Боковой перевод вдоль балки",
          "action": "Между подиумом Балерины и педалью за захватом видна узкая сервисная балка над неглубоким каналом; сам захват перекрывает широкий обход.",
          "dialogue": [],
          "sound": "Метроном ускоряется на фоне натяжения",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 12,
          "start": 27.5,
          "duration": 2.5,
          "framing": "Средний план Лиры и дальней педали",
          "camera": "Перевод фокуса к цели",
          "action": "Лира показывает на большую обслуживающую педаль за захватом.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Под ним педаль."
            }
          ],
          "sound": "Один стук пальца по краю подиума",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 13,
          "start": 30.0,
          "duration": 2.5,
          "framing": "Средний план всего тела на узкой опоре",
          "camera": "Короткое сопровождение шага",
          "action": "Балерина легко переносит пуант с подиума на узкую балку, удерживая чашку ровно.",
          "dialogue": [],
          "sound": "Один точный пуантный стук",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 14,
          "start": 32.5,
          "duration": 2.5,
          "framing": "Крупная деталь пустого круга и механически связанного датчика",
          "camera": "Статика",
          "action": "Освободившийся весовой круг подиума поднимается; рядом загорается красный сигнал отсутствующего экспоната.",
          "dialogue": [],
          "sound": "Новый короткий тревожный звон поверх метронома",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 15,
          "start": 35.0,
          "duration": 2.5,
          "framing": "Средний план Рина в кабине и сужающегося прохода",
          "camera": "Перевод фокуса через стекло",
          "action": "Рин видит, как вращающаяся перегородка начинает закрывать прежний проход за лунной сферой.",
          "dialogue": [
            {
              "character": "Рин",
              "text": "Лира, закрывают проход!"
            }
          ],
          "sound": "Глубокий гул большой перегородки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 16,
          "start": 37.5,
          "duration": 2.5,
          "framing": "Общий план двух ног, узкой балки и настоящей педали",
          "camera": "Статика",
          "action": "Балерина дотягивается свободным пуантом до педали и прижимает её, стоя другой ногой на сервисной балке.",
          "dialogue": [],
          "sound": "Щелчок педали под розовым пуантом",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 17,
          "start": 40.0,
          "duration": 2.5,
          "framing": "Средний план открывшихся губок и освобождённого крыла",
          "camera": "Статика",
          "action": "Обе губки захвата расходятся, освобождая целое крыло и корпус Бомбардиро.",
          "dialogue": [],
          "sound": "Двойной щелчок разомкнутого захвата",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 18,
          "start": 42.5,
          "duration": 2.5,
          "framing": "Общий план свободного самолёта рядом с пустым захватом",
          "camera": "Боковое сопровождение",
          "action": "Бомбардиро сразу выкатывается на свободный пол, мотнув носом в сторону навязчивого подиума.",
          "dialogue": [],
          "sound": "Короткий смешной фырк и качение шин",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 19,
          "start": 45.0,
          "duration": 2.5,
          "framing": "Средний план героинь, свободного самолёта и закрывающегося пустого захвата",
          "camera": "Статика",
          "action": "Балерина убирает пуант с педали и сходит с низкой балки к Лире; захват закрывается уже за выехавшим самолётом.",
          "dialogue": [],
          "sound": "Лёгкий прыжок и пустой щелчок губок",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 20,
          "start": 47.5,
          "duration": 2.5,
          "framing": "Средний план указания и доступного зазора",
          "camera": "Короткий наезд",
          "action": "Балерина показывает Лире ещё открытый боковой зазор движущейся перегородки.",
          "dialogue": [
            {
              "character": "Балерина",
              "text": "Сюда. Пока не сомкнулось."
            }
          ],
          "sound": "Ровный гул поворота стены",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 21,
          "start": 50.0,
          "duration": 2.5,
          "framing": "Общий план читаемого бокового прохода двух героинь",
          "camera": "Короткое сопровождение",
          "action": "Балерина проходит в зазор боком, точно повернув чашечную ручку вдоль стены; Лира следует за ней одним коротким шагом.",
          "dialogue": [],
          "sound": "Два быстрых шага без фарфорового удара",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 22,
          "start": 52.5,
          "duration": 2.5,
          "framing": "Средний план разделённой, но координирующейся команды",
          "camera": "Статика",
          "action": "Лира нажимает переговорную кнопку на поясе, пока Рин с БИПом видны по другую сторону сужающейся щели.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Ищите другой вход. Мы внутри."
            }
          ],
          "sound": "Чистый короткий голос связи",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 23,
          "start": 55.0,
          "duration": 2.5,
          "framing": "Общий план двух героинь у закрывшейся стены",
          "camera": "Статика",
          "action": "Перегородка смыкается за спинами Лиры и Балерины, отрезая большой самолёт от узкой соседней галереи.",
          "dialogue": [],
          "sound": "Один тяжёлый глухой стук",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 24,
          "start": 57.5,
          "duration": 2.5,
          "framing": "Средний план Лиры, кофейного ниндзя и недоступного заднего крепления в три четверти",
          "camera": "Быстрый перевод к встречному персонажу",
          "action": "На уровне груди Лиры скрещиваются две ложки Капучино; короткая лента за жёсткой выставочной спинкой удерживает заднее монтажное ушко его кофейной муфты, вне досягаемости коротких рук.",
          "dialogue": [],
          "sound": "Короткий звон скрещённых ложек",
          "transition": "Обрыв на конкретном последствии; звук продолжается"
        }
      ],
      "scenes": [
        {
          "title": "Самолёт на витрину",
          "timeRange": "0–15 с",
          "setting": "Большой герметичный приёмный зал музея",
          "action": "Внутренняя дверь открывается после выравнивания давления. Обычный выставочный захват пытается выставить живой самолёт красиво, но сгибать его крыло нельзя. Рин отдельно сбрасывает буксирный крюк. Лира замечает живую Балерину, противящуюся механической постановке локтя, и выходит из кабины по ступеньке.",
          "dialogue": [
            {
              "character": "Бомбардиро",
              "text": "Крыло туда не гнётся."
            }
          ]
        },
        {
          "title": "Можно сойти",
          "timeRange": "15–30 с",
          "setting": "Вращающийся подиум Балерины и обслуживающий проход",
          "action": "Лира открывает видимый замок на голени пленницы. Балерину больше всего раздражает навязанный ритм. Захват продолжает давить на Бомбардиро; узкая сервисная балка ведёт от подиума к обслуживающей педали за его корпусом.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Сейчас сниму."
            },
            {
              "character": "Балерина",
              "text": "И этот противный метроном."
            },
            {
              "character": "Лира",
              "text": "Под ним педаль."
            }
          ]
        },
        {
          "title": "Удачный шаг с последствием",
          "timeRange": "30–47.5 с",
          "setting": "Узкая балка между подиумом и захватом",
          "action": "Балерина переносит вес на балку. Пустой подиум немедленно поднимает тревогу, и тяжёлая перегородка начинает закрываться. Балерина успевает нажать педаль, захват отпускает самолёт. Бомбардиро выходит из его губок до того, как балерина убирает ногу.",
          "dialogue": [
            {
              "character": "Рин",
              "text": "Лира, закрывают проход!"
            }
          ]
        },
        {
          "title": "С другой стороны",
          "timeRange": "47.5–60 с",
          "setting": "Вращающаяся перегородка и соседняя галерея",
          "action": "Балерина сама выбирает ещё открытый боковой зазор и проводит туда Лиру, повернув чашечную ручку вдоль стены. Лира по действующей связи поручает Рину искать другой вход с самолётом. Дверь закрывается; две ложки ещё одного запертого пленника встречают их с другой стороны.",
          "dialogue": [
            {
              "character": "Балерина",
              "text": "Сюда. Пока не сомкнулось."
            },
            {
              "character": "Лира",
              "text": "Ищите другой вход. Мы внутри."
            }
          ]
        }
      ],
      "keyframes": [
        {
          "id": "ep02-k01",
          "path": "assets/episodes-r3/ep02/keyframe-01.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 4,
          "role": "hook",
          "beat": "На соседнем вращающемся подиуме Балерина стоит в позе; корректирующая планка подталкивает её локоть, а она раздражённо возвращает его обратно.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Inside the airy ivory museum hall, full-size living Ballerina Cappuccina stands on a low slowly rotating plum display base. A small padded posing bar nudges her elbow toward a prescribed elegant pose, and she irritatedly pushes her elbow BACK against it. A clearly visible soft cuff holds one lower leg to the base. Two arms only, open coffee cup-head with latte heart and side handle, pink pointe shoes. A mechanical metronome beside the platform. The comedy is her small stubborn resistance, not injury. Exact stable identities: Балерина Капучина: White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms.",
          "asset": "assets/episodes-r3/ep02/keyframe-01.png",
          "original": "assets/episodes-r3/ep02/keyframe-01.png",
          "available": false
        },
        {
          "id": "ep02-k02",
          "path": "assets/episodes-r3/ep02/keyframe-02.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 16,
          "role": "reversal",
          "beat": "Балерина дотягивается свободным пуантом до педали и прижимает её, стоя другой ногой на сервисной балке.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Ballerina balances one pointe shoe on a NARROW low maintenance beam across a shallow service channel and presses a large real mechanical release pedal with her other pointe shoe. The two feet, beam and pedal form a readable supported pose. In background Bombardiro is still full-size in padded display clamps around the wing root; wings intact. The empty dance pedestal behind her shows a small red absence lamp and the large wall partition has begun turning. No force power, no invisible extra limb. Exact stable identities: Балерина Капучина: White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms. Бомбардиро Крокодило: Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot. Bombardiro is the entire crocodile aircraft, NOT a pilot. Preserve complete wings and tail. Three passengers use his transparent sealed cockpit behind his brow. In vacuum propellers are folded and still; small maneuvering nozzles on ENGINE GONDOLAS give thrust.",
          "asset": "assets/episodes-r3/ep02/keyframe-02.png",
          "original": "assets/episodes-r3/ep02/keyframe-02.png",
          "available": false
        },
        {
          "id": "ep02-k03",
          "path": "assets/episodes-r3/ep02/keyframe-03.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 24,
          "role": "punchline",
          "beat": "На уровне груди Лиры скрещиваются две ложки Капучино; короткая лента за жёсткой выставочной спинкой удерживает заднее монтажное ушко его кофейной муфты, вне досягаемости коротких рук.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Inside the next museum gallery, Lira has just stepped through a now closed rotating wall with Ballerina behind her. Two SILVER SPOONS are crossed at LIRA CHEST LEVEL by the recognizable paper-coffee-cup ninja Cappuccino Assassino. His TWO short arms are free and hold the spoons. His corrugated cup sleeve has a rigid REAR mounting tab fixed to a display backboard by a SHORT fabric tether on the BACK side, below the rear edge. The wide rigid backboard blocks both short arms from reaching this tether; it is glimpsed in three-quarter view BEHIND the mount. There is NO soft strap across his front, belly or waist. He cannot cut the tether while the board remains upright; Lira must tilt the board in the next episode to expose the rear connection. He has narrowed amber eyes, black ninja wrap and corrugated sleeve; no swords. Lira is alert, not helpless or kneeling. One clear wary meeting, no attack impact. Exact stable identities: Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. Балерина Капучина: White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms. Капучино Ассасино: Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots.",
          "asset": "assets/episodes-r3/ep02/keyframe-03.png",
          "original": "assets/episodes-r3/ep02/keyframe-03.png",
          "available": false
        }
      ],
      "schemaVersion": "3.0",
      "seriesTitle": "Лира и украденная луна",
      "status": "draft-for-independent-adventure-pilot-review",
      "memeCast": [
        "bombardiro-crocodilo",
        "ballerina-cappuccina",
        "cappuccino-assassino"
      ],
      "reviewScope": "Полный R3 сценарий и монтажные планы, отдельная независимая сюжетная читка ещё не завершена. Не относится к принятой ранееR2. Изображений по этому сценарию ещё нет.",
      "scriptReady": true
    },
    {
      "id": 3,
      "number": 3,
      "revision": 3,
      "arc": 1,
      "title": "К открытию всё замрёт",
      "duration": 65.0,
      "logline": "Лира освобождает Капучино и с его помощью перекрывает путь охранному захвату. В галерее она видит будущую судьбу дома; попытка попасть к сфере на монтажной тележке выдаёт её Коллекционеру.",
      "hook": "Капучино держит грозно скрещённые ложки, но вращающийся постамент разворачивает его лицом к стене посреди угрозы.",
      "reversal": "Вместо широкого замаха Капучино делает точный разрез ремня пустого футляра, который перекрывает охранному захвату проход.",
      "payoff": "Трое добираются до галереи лун и находят живой дом Лиры; она видит намеренную стеклянную консервацию и узнаёт срок открытия.",
      "cliffhanger": "Лира садится на монтажную тележку, чтобы добраться до дома. Коллекционер замечает её в отражении и переводит стрелку, направляя живых беглецов на собственную пустую витрину.",
      "synopsis": [
        "Постамент разворачивает ниндзя посреди грозной позы к стене. Пока он спорит с вещью, Лира наклоняет жёсткую выставочную спинку и открывает доступ к задней удерживающей ленте. Капучино сам перерезает её ложкой и выходит, пытаясь сохранить достоинство.",
        "Охранный захват настигает троих. Лира выбирает уже стоящий над проходом пустой футляр, который удерживает обычный ремень. Балерина придерживает лишнюю занесённую руку Капучино; точный разрез второй ложкой освобождает футляр. Тот с грохотом физически блокирует захват и даёт реальный проход: скрытность не является целью этого трюка.",
        "Через линзу на зрительском ограждении Лира находит свой мир за грузовым зазором и видит знакомого кота с упавшим горшком. Коллекционера раздражает, что облако портит вид домиков. Рядом застывшая волна в твёрдом прозрачном массиве нравится ему больше; глядя на живые сферы, он прямо обещает привести их к такому же состоянию к открытию. Объявление называет три часа, над новыми стендами видны каналы заливки.",
        "Между пешей зрительской галереей и подставкой луны есть грузовой зазор. Лира видит, что его пересекает рельс пустой монтажной тележки, и выбирает этот путь. Соседи следуют за ней. Балерина старается изобразить композицию из двух экспонатов, но это не всесильная маскировка.",
        "Выбранный маршрут проходит вдоль отражающей сферы. Коллекционер узнаёт нанятого им проводника и без речи меняет реальную стрелку рельса. Тележка уходит к свободному удерживающему стенду. Лира не ждёт, пока её выставят: она готовит прыжок вместе с союзниками."
      ],
      "parody": "",
      "cast": [
        "lira",
        "ballerina-cappuccina",
        "cappuccino-assassino",
        "collector"
      ],
      "location": [
        "museum-coffee-specimen-gallery",
        "museum-lunar-gallery",
        "museum-installation-track"
      ],
      "keyframeBeats": [
        {
          "id": "ep03-k01",
          "beat": "hook",
          "action": "Основание разворачивает весь грозный силуэт Капучино к пустой стене; Лира остаётся сбоку от его ложек."
        },
        {
          "id": "ep03-k02",
          "beat": "reversal",
          "action": "Пустой футляр скатывается на роликах поперёк прохода и останавливает захват широкой боковой стенкой."
        },
        {
          "id": "ep03-k03",
          "beat": "punchline",
          "action": "Тележка с троими поворачивает прочь от домашней сферы к пустой витрине с раскрытым мягким удерживающим обручем."
        }
      ],
      "continuityIn": "Лира и Балерина прошли из большого зала за вращающуюся перегородку. Капучино стоит на вращающемся основании; короткая лента за широкой жёсткой спинкой удерживает заднее монтажное ушко его кофейной муфты вне досягаемости рук. Рин и БИП при свободном Бомбардиро ищут другой вход.",
      "continuityOut": "Капучино освобождён. Пустой футляр блокирует охранный захват позади. Лира знает, где живой домашний шар, и видела мёртвый застеклованный мир; открытие объявлено через3часа. Коллекционер узнал своего проводника. Трое стоят на перенаправленной монтажной тележке, уходящей от домашней сферы к пустой витрине.",
      "causalityNotes": [
        "В02 нет доступной мягкой ленты на животе ниндзя. Здесь Лира наклоняет всю жёсткую спинку и открывает снизу именно задний скрытый крепёж; только после этого короткая рука Капучино достаёт до него ложкой.",
        "Мягкий упаковочный ремень пустого футляра — другой предмет. Он показан на наклонном монтажном лотке до перерезания. После разреза футляр скатывается на роликах поперёк прохода и мешает захвату физически.",
        "Капучино режет ткань, не металл и не сферу с миром. Лира не приобретает его способность, а открывает ему доступ к креплению.",
        "Срок один: намеренная подготовка постоянной экспозиции к объявленному открытию. Живые сферы не разряжаются. Образец мёртвого мира уже залит прозрачным массивом; новые ещё движутся.",
        "Лира в этой серии выбирает добраться до домашней сферы. Она ещё не выдаёт лекцию об обратном режиме аппарата, которого не изучила; цель его захвата появится после конкретного знания.",
        "Коллекционер замечает Лиру не случайно: её выбранная монтажная тележка проезжает вдоль отражающей поверхности той самой домашней сферы, которую он расставляет. Он переводит реальную стрелку рельса обычным рабочим рычагом.",
        "Тревога уже поднята в02. Первоначальный абордаж был удачей Лиры, а эта реакция — противодействие Коллекционера обнаруженным беглецам, не объяснение, что он заранее спланировал всё.",
        "Увеличительная линза14 расположена на ближнем зрительском ограждении; сама сфера стоит за грузовым зазором. Общий план20 показывает рельс, пересекающий зазор: тележка даёт доступ, которого у пешей Лиры ещё не было."
      ],
      "shots": [
        {
          "n": 1,
          "start": 0.0,
          "duration": 2.5,
          "framing": "Средний план кофейного ниндзя и настороженной Лиры",
          "camera": "Статика",
          "action": "Капучино грозно скрещивает две ложки на уровне груди Лиры, не замечая начавшегося поворота собственного основания.",
          "dialogue": [],
          "sound": "Тихий звон ложек и рабочий гул подиума",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 2,
          "start": 2.5,
          "duration": 2.5,
          "framing": "Общий план сорванной угрозы и равнодушной стены",
          "camera": "Короткое сопровождение поворота",
          "action": "Основание разворачивает весь грозный силуэт Капучино к пустой стене; Лира остаётся сбоку от его ложек.",
          "dialogue": [],
          "sound": "Тот же невозмутимый гул поворотного основания",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 3,
          "start": 5.0,
          "duration": 2.5,
          "framing": "Крупный план ниндзя боком к Лире",
          "camera": "Статика",
          "action": "Капучино продолжает держать ложки поднятыми, сердито обращаясь к движущему его стенду.",
          "dialogue": [
            {
              "character": "Капучино",
              "text": "Стой! Я не закончил!"
            }
          ],
          "sound": "Один запоздалый звон ложек",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 4,
          "start": 7.5,
          "duration": 2.5,
          "framing": "Средний план Лиры и появившегося доступа за спинкой",
          "camera": "Короткое снижение камеры",
          "action": "Лира наклоняет широкую выставочную спинку на её опорном шарнире; под задним краем впервые открывается скрытая удерживающая лента.",
          "dialogue": [],
          "sound": "Небольшой скрип опорного шарнира",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 5,
          "start": 10.0,
          "duration": 2.5,
          "framing": "Крупная деталь серебряной ложки и единственной задней ленты",
          "camera": "Статика",
          "action": "Через открывшийся зазор Капучино достаёт ложкой до ленты и одним движением перерезает её.",
          "dialogue": [],
          "sound": "Тихий короткий звук разрезанной ткани",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 6,
          "start": 12.5,
          "duration": 2.5,
          "framing": "Средний план двух кофейных соседей с разными заботами",
          "camera": "Статика",
          "action": "Капучино сходит с освобождённого основания и делает торжественный выпад перед Балериной, которая уже смотрит ему за спину.",
          "dialogue": [],
          "sound": "Один звонкий маленький шаг ниндзя",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 7,
          "start": 15.0,
          "duration": 2.5,
          "framing": "Низкий общий план захвата и героев в глубине",
          "camera": "Сопровождение наступления",
          "action": "Из бокового прохода появляется охранный захват, двигаясь к троим по открытому полу.",
          "dialogue": [],
          "sound": "Ускоряющиеся короткие шаги сервоприводов",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 8,
          "start": 17.5,
          "duration": 2.5,
          "framing": "Глубинный план ремня, футляра и приближающегося захвата",
          "camera": "Короткий перевод по взгляду",
          "action": "Лира замечает пустой футляр на наклонном роликовом лотке: мягкий упаковочный ремень держит его прямо над путём захвата.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Вот этот ремень."
            }
          ],
          "sound": "Скрип натянутой упаковки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 9,
          "start": 20.0,
          "duration": 2.5,
          "framing": "Средний план раздутой подготовки к маленькому действию",
          "camera": "Короткий наезд",
          "action": "Капучино замахивается обеими ложками для широкого эффектного разреза.",
          "dialogue": [],
          "sound": "Шелест чёрной повязки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 10,
          "start": 22.5,
          "duration": 2.5,
          "framing": "Крупный план двух рук и сердитых глаз ниндзя",
          "camera": "Статика",
          "action": "Балерина придерживает одну занесённую руку Капучино, оставляя второй ложке точный доступ к ремню.",
          "dialogue": [
            {
              "character": "Балерина",
              "text": "Одной."
            }
          ],
          "sound": "Один тихий стук серебра о её пальцы на фоне приближающегося захвата",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 11,
          "start": 25.0,
          "duration": 2.5,
          "framing": "Крупная деталь малого движения вместо замаха",
          "camera": "Статика",
          "action": "Капучино освобождённой ложкой делает один короткий точный разрез упаковочного ремня.",
          "dialogue": [],
          "sound": "Почти неслышный сухой щелчок ткани",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 12,
          "start": 27.5,
          "duration": 2.5,
          "framing": "Общий план реального препятствия между захватом и троими",
          "camera": "Короткое сопровождение скольжения",
          "action": "Пустой футляр скатывается на роликах поперёк прохода и останавливает захват широкой боковой стенкой.",
          "dialogue": [],
          "sound": "Грохот пустого футляра и глухой толчок захвата",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 13,
          "start": 30.0,
          "duration": 2.5,
          "framing": "Общий план успешного прохода за настоящим укрытием",
          "camera": "Сопровождение группы",
          "action": "Лира, Балерина и Капучино пробегают за упавшим футляром в следующую открытую арку.",
          "dialogue": [],
          "sound": "Три разных ритма шагов",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 14,
          "start": 32.5,
          "duration": 2.5,
          "framing": "Средний глубинный план Лиры у линзы на ограждении; грузовой зазор отделяет её от дальней подставки",
          "camera": "Перевод фокуса через увеличительную линзу к узнаваемому окну",
          "action": "У ближнего зрительского ограждения Лира смотрит в увеличительную линзу через грузовой зазор: на недоступной отсюда подставке её сферы видны рыжий кот и упавший красный горшок.",
          "dialogue": [],
          "sound": "Тихое живое мяуканье в близком канале стенда",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 15,
          "start": 35.0,
          "duration": 2.5,
          "framing": "Средний план Коллекционера и неслушающейся живой композиции",
          "camera": "Статика",
          "action": "У соседнего края стенда Коллекционер поворачивает домашнюю сферу, но бегущее облако снова закрывает выбранные им домики.",
          "dialogue": [],
          "sound": "Мягкое движение роликов и лёгкое постукивание перчатки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 16,
          "start": 37.5,
          "duration": 2.5,
          "framing": "Крупный план двух разных линз и сжатых губ",
          "camera": "Статика",
          "action": "Он раздражённо снимает с линзы невидимую соринку, глядя на движущееся облако.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "Ветер опять всё испортил."
            }
          ],
          "sound": "Сухой шорох ткани по увеличительной линзе",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 17,
          "start": 40.0,
          "duration": 2.5,
          "framing": "Крупный план явного отличия твёрдого экспоната от живой оболочки",
          "camera": "Медленный наезд",
          "action": "Рядом в прозрачном сплошном массиве виден уже мёртвый чужой мир: застывшая волна нависла над неподвижной птицей.",
          "dialogue": [],
          "sound": "Вместо живого звука — только сухой стук ногтя по массиву",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 18,
          "start": 42.5,
          "duration": 2.5,
          "framing": "Средний план Коллекционера между готовым твёрдым экспонатом и живыми сферами",
          "camera": "Статика",
          "action": "Коллекционер проводит перчаткой по готовому мёртвому экспонату и переводит довольный взгляд на ещё живые сферы под каналами заливки.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "К открытию все будут такими."
            }
          ],
          "sound": "Мягкое скольжение перчатки по твёрдой поверхности",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 19,
          "start": 45.0,
          "duration": 2.5,
          "framing": "Общий план живых сфер, каналов и одного простого отсчёта",
          "camera": "Плавный наклон вверх",
          "action": "Над ещё живыми стендами зажигается табло времени открытия; рядом видны пустые прозрачные каналы будущей стеклянной заливки.",
          "dialogue": [
            {
              "character": "Голос музея",
              "text": "До открытия — три часа."
            }
          ],
          "sound": "Короткий праздничный сигнал, неприятно спокойный после увиденного",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 20,
          "start": 47.5,
          "duration": 2.5,
          "framing": "Общий план ограждения, грузового зазора и рельсового пути к дальней подставке",
          "camera": "Плавный перевод от ног Лиры к рельсу через зазор",
          "action": "Лира замечает пустую монтажную тележку: её рельс пересекает грузовой зазор между зрительским ограждением и недоступной пешком подставкой луны.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "На ней доберёмся до шара."
            }
          ],
          "sound": "Тихий решительный голос и качение тележки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 21,
          "start": 50.0,
          "duration": 2.5,
          "framing": "Средний план осознанного шага на движущийся путь",
          "camera": "Боковое сопровождение",
          "action": "Лира шагает на медленно движущуюся низкую тележку, придерживая её поручень.",
          "dialogue": [],
          "sound": "Один уверенный стук сапога",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 22,
          "start": 52.5,
          "duration": 2.5,
          "framing": "Средний план двух необычно правдоподобных экспонатов позади Лиры",
          "camera": "Статика относительно тележки",
          "action": "Балерина втягивает Капучино следом на тележку и выпрямляется с ним в безупречную выставочную позу.",
          "dialogue": [],
          "sound": "Лёгкий пуантный стук и недовольный шелест ниндзя",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 23,
          "start": 55.0,
          "duration": 2.5,
          "framing": "Крупный план отражения и узнавших глаз",
          "camera": "Перевод фокуса с отражения на лицо",
          "action": "В отражении сферы Коллекционер замечает медные косы и карту знакомой Лиры на проезжающей тележке.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "Мой проводник."
            }
          ],
          "sound": "Тихий поворот увеличительной линзы",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 24,
          "start": 57.5,
          "duration": 2.5,
          "framing": "Крупная деталь перчатки и связанного с ней перевода рельса",
          "camera": "Статика",
          "action": "Коллекционер молча переводит рабочий рычаг, и видимая рельсовая стрелка меняет направление перед тележкой.",
          "dialogue": [],
          "sound": "Один отчётливый щелчок стрелки",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 25,
          "start": 60.0,
          "duration": 2.5,
          "framing": "Общий план изменившегося пути, героев и ожидающей витрины",
          "camera": "Сопровождение поворота",
          "action": "Тележка с троими поворачивает прочь от домашней сферы к пустой витрине с раскрытым мягким удерживающим обручем.",
          "dialogue": [],
          "sound": "Скрип колёс на повороте и тихое раскрытие обруча",
          "transition": "Прямая склейка по действию"
        },
        {
          "n": 26,
          "start": 62.5,
          "duration": 2.5,
          "framing": "Средний план активного решения Лиры перед подступающим обручем",
          "camera": "Короткий наезд",
          "action": "Лира ставит сапог на край тележки и тянет соседей за собой, готовясь прыгнуть до захвата.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Прыгай!"
            }
          ],
          "sound": "Резкий шорох одежды на краю движения",
          "transition": "Обрыв на конкретном последствии; звук продолжается"
        }
      ],
      "scenes": [
        {
          "title": "Доиграть угрозу",
          "timeRange": "0–15 с",
          "setting": "Вращающийся стенд Капучино",
          "action": "Постамент разворачивает ниндзя посреди грозной позы к стене. Пока он спорит с вещью, Лира наклоняет жёсткую выставочную спинку и открывает доступ к задней удерживающей ленте. Капучино сам перерезает её ложкой и выходит, пытаясь сохранить достоинство.",
          "dialogue": [
            {
              "character": "Капучино",
              "text": "Стой! Я не закончил!"
            }
          ]
        },
        {
          "title": "Маленький разрез",
          "timeRange": "15–32.5 с",
          "setting": "Проход между стендами и наклонный монтажный лоток",
          "action": "Охранный захват настигает троих. Лира выбирает уже стоящий над проходом пустой футляр, который удерживает обычный ремень. Балерина придерживает лишнюю занесённую руку Капучино; точный разрез второй ложкой освобождает футляр. Тот с грохотом физически блокирует захват и даёт реальный проход: скрытность не является целью этого трюка.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "Вот этот ремень."
            },
            {
              "character": "Балерина",
              "text": "Одной."
            }
          ]
        },
        {
          "title": "Идеально неподвижно",
          "timeRange": "32.5–47.5 с",
          "setting": "Галерея живых лун и готовых мёртвых экспонатов",
          "action": "Через линзу на зрительском ограждении Лира находит свой мир за грузовым зазором и видит знакомого кота с упавшим горшком. Коллекционера раздражает, что облако портит вид домиков. Рядом застывшая волна в твёрдом прозрачном массиве нравится ему больше; глядя на живые сферы, он прямо обещает привести их к такому же состоянию к открытию. Объявление называет три часа, над новыми стендами видны каналы заливки.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "Ветер опять всё испортил."
            },
            {
              "character": "Коллекционер",
              "text": "К открытию все будут такими."
            },
            {
              "character": "Голос музея",
              "text": "До открытия — три часа."
            }
          ]
        },
        {
          "title": "Ближе к дому",
          "timeRange": "47.5–55 с",
          "setting": "Монтажный рельс галереи",
          "action": "Между пешей зрительской галереей и подставкой луны есть грузовой зазор. Лира видит, что его пересекает рельс пустой монтажной тележки, и выбирает этот путь. Соседи следуют за ней. Балерина старается изобразить композицию из двух экспонатов, но это не всесильная маскировка.",
          "dialogue": [
            {
              "character": "Лира",
              "text": "На ней доберёмся до шара."
            }
          ]
        },
        {
          "title": "Хозяин переставляет",
          "timeRange": "55–65 с",
          "setting": "Рельсовая развилка у рабочей витрины",
          "action": "Выбранный маршрут проходит вдоль отражающей сферы. Коллекционер узнаёт нанятого им проводника и без речи меняет реальную стрелку рельса. Тележка уходит к свободному удерживающему стенду. Лира не ждёт, пока её выставят: она готовит прыжок вместе с союзниками.",
          "dialogue": [
            {
              "character": "Коллекционер",
              "text": "Мой проводник."
            },
            {
              "character": "Лира",
              "text": "Прыгай!"
            }
          ]
        }
      ],
      "keyframes": [
        {
          "id": "ep03-k01",
          "path": "assets/episodes-r3/ep03/keyframe-01.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 2,
          "role": "hook",
          "beat": "Основание разворачивает весь грозный силуэт Капучино к пустой стене; Лира остаётся сбоку от его ложек.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. A rotating museum plinth has turned the coffee-cup ninja Cappuccino Assassino away from Lira to face a completely blank wall while he still holds TWO spoons theatrically crossed in threat. Lira stands safely at his side, slightly baffled. A wide rigid display backboard is attached to the rotating base behind his body, with the short inaccessible rear tether behind its lower edge; NO fabric strap across the ninja belly. Readable comic loss of intimidation, not humiliation by injury. Exact stable identities: Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. Капучино Ассасино: Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots.",
          "asset": "assets/episodes-r3/ep03/keyframe-01.png",
          "original": "assets/episodes-r3/ep03/keyframe-01.png",
          "available": false
        },
        {
          "id": "ep03-k02",
          "path": "assets/episodes-r3/ep03/keyframe-02.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 12,
          "role": "reversal",
          "beat": "Пустой футляр скатывается на роликах поперёк прохода и останавливает захват широкой боковой стенкой.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. A large EMPTY padded exhibit case has just rolled DOWN a visible short sloped roller track and now lies crosswise across the passage, physically blocking a small pursuing mechanical capture gripper. A severed ordinary fabric packing strap hangs from the roller stop above. Beyond the case Lira and Ballerina are ready to run through the open arch; Cappuccino holds ONE spoon lowered after a tiny precise cut, his other spoon safely at his side. No cut steel, no damaged living sphere, no invisible force. Exact stable identities: Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. Балерина Капучина: White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms. Капучино Ассасино: Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots.",
          "asset": "assets/episodes-r3/ep03/keyframe-02.png",
          "original": "assets/episodes-r3/ep03/keyframe-02.png",
          "available": false
        },
        {
          "id": "ep03-k03",
          "path": "assets/episodes-r3/ep03/keyframe-03.png",
          "status": "planned",
          "root_approval": "pending",
          "shot": 25,
          "role": "punchline",
          "beat": "Тележка с троими поворачивает прочь от домашней сферы к пустой витрине с раскрытым мягким удерживающим обручем.",
          "prompt": "One finished 1080x1920 vertical 9:16 cinematic storyboard keyframe for the original space adventure comedy LIRA AND THE STOLEN MOON. Premium stylized faceted 3D, tactile matte surfaces, softly beveled forms, expressive faces, warm cream and copper highlights against teal and deep indigo space. The museum has curved ivory architecture, plum velvet display bases, muted gold rails, clear cases, no military styling. Keep decisive gesture and faces in central80 percent width and above bottom20 percent. One readable frozen instant, not multiple panels. No watermark, captions, logos or actor likenesses. Wide vertical three-quarter view of a low moving installation trolley carrying Lira, Ballerina and the coffee ninja. The public viewing walkway is separated from the sphere pedestals by a clear cargo gap; the trolley rail crosses that gap. The visible rail SWITCH now leads away from Lira living moon sphere in the background and toward an EMPTY display bay with an open soft padded restraint hoop. At one side the tall thin plum-coated Collector holds the ordinary route lever and studies his newly arranged living composition through mismatched round magnifying lenses. Lira recognizes the wrong direction and braces at the trolley edge. Characters still full-size, trolley motion and new route obvious, no shrinking beam in this indoor scene. Exact stable identities: Лира: compact young woman, two spiral copper-brown braided buns held with small brass clips; large brown eyes, heart-shaped face, determined expressive eyebrows; cream high-neck jumpsuit, short asymmetric cream cape, turquoise belt, burgundy boots; glowing turquoise CYLINDRICAL data cartridge with brass end caps. Балерина Капучина: White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms. Капучино Ассасино: Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting. Коллекционер: Very tall thin original adult man with long precise fingers and narrow rounded shoulders; short silver hair fanning sideways, no hood or helmet.; Angular stylized face, long straight nose, small alert dark eyes behind two differently sized round gold magnifying lenses; original face, no actor likeness.; Structured plum-purple museum coat ending at knees, ivory high collar and fitted ivory handling gloves, narrow dark trousers, polished brass-buckled shoes; gold pocket caliper. No military armor, cape, weapons or insignia.. Preserve assets/characters/lira/character.json exactly: copper spiral buns, cream costume/cape, turquoise belt, burgundy boots.",
          "asset": "assets/episodes-r3/ep03/keyframe-03.png",
          "original": "assets/episodes-r3/ep03/keyframe-03.png",
          "available": false
        }
      ],
      "schemaVersion": "3.0",
      "seriesTitle": "Лира и украденная луна",
      "status": "draft-for-independent-adventure-pilot-review",
      "memeCast": [
        "ballerina-cappuccina",
        "cappuccino-assassino"
      ],
      "reviewScope": "Полный R3 сценарий и монтажные планы, отдельная независимая сюжетная читка ещё не завершена. Не относится к принятой ранееR2. Изображений по этому сценарию ещё нет.",
      "scriptReady": true
    }
  ],
  "castSheet": "assets/characters/core-cast-r2.webp",
  "pilot": "assets/episodes-r3/ep01/keyframe-01.webp",
  "reviews": [
    {
      "revision": 3,
      "episode": "ep01",
      "source_script": "production/revision3/episodes/ep01.json",
      "source_sha256": "c33aedd2223464c9fa0a43e17f297b7dcdd043f2abea376d5dc539ab84690b26",
      "status": "in_art_production",
      "generation": "built-in imagegen",
      "root_approval": "pending",
      "images": [
        {
          "id": "ep01-k01",
          "source_shot": 1,
          "path": "assets/episodes-r3/ep01/keyframe-01.png",
          "prompt_path": "production/prompts/r3-ep01-k01.txt",
          "status": "artist_reviewed",
          "root_approval": "pending",
          "references": [
            "assets/characters/core-cast-r2.png",
            "assets/characters/lira/approved-fullbody-reference.png"
          ],
          "self_review": {
            "lira_identity": "pass",
            "protective_boot_contact": "pass; toe to low side wheel housing, no stomp",
            "beep_two_wheels_zero_arms_one_port": "pass",
            "human_cockpit_scale": "pass; complete seat and torso visible",
            "map_single_straight_route": "pass",
            "sealed_cockpit": "pass",
            "geometry_for_next_frames": "cream/brass ribbed clear canopy; two teal seats and low robot aisle",
            "note": "BEEP near right edge; face, wheels and action remain readable"
          }
        },
        {
          "id": "ep01-k02",
          "source_shot": 10,
          "path": "assets/episodes-r3/ep01/keyframe-02.png",
          "prompt_path": "production/prompts/r3-ep01-k02.txt",
          "status": "planned",
          "root_approval": "pending"
        },
        {
          "id": "ep01-k03",
          "source_shot": 23,
          "path": "assets/episodes-r3/ep01/keyframe-03.png",
          "prompt_path": "production/prompts/r3-ep01-k03.txt",
          "status": "planned",
          "root_approval": "pending"
        }
      ]
    },
    {
      "revision": 3,
      "character_id": "collector",
      "asset": "assets/characters/collector-r3-v1.png",
      "dimensions": [
        1536,
        1024
      ],
      "status": "artist_reviewed",
      "root_approval": "approved",
      "generation": "built-in imagegen",
      "prompt_path": "production/prompts/collector-r3-v1.txt",
      "input_evidence": [
        {
          "path": "production/revision3/collector-visual-brief.json",
          "sha256": "71ba159dc1d63e35e8d1dec5a6a8a2d92b8706e8475c09a74071924110d3ad12"
        },
        {
          "path": "production/revision3/bible.json",
          "sha256": "854d164c0b89ba6933f300b5e0551bca370581de426119ba61eee395848468d1"
        },
        {
          "path": "assets/characters/core-cast-r2.png",
          "sha256": "a20e3195078412b7f16dcd2eb64081478dedca5bcc196fe63c1e7c6fe4cc2aae"
        }
      ],
      "views": [
        "complete three-quarter body",
        "complete side profile",
        "face/lenses detail",
        "gloved-hand/placard detail"
      ],
      "qa": {
        "single_consistent_character": "pass",
        "tall_thin_silhouette": "pass",
        "plum_structured_coat_ivory_gloves_gold_details": "pass",
        "two_differently_sized_round_gold_lenses": "pass",
        "silver_side_fanning_hair": "pass",
        "polite_pedantic_expression": "pass",
        "delicate_living_specimen_handling_gesture": "pass",
        "visible_anatomy": "pass; fingers partially occluded naturally by grip",
        "full_figures_with_shoes": "pass",
        "tactile_faceted_show_style": "pass",
        "actor_likeness_or_franchise_villain_mapping": "none intended or apparent",
        "prohibited_armor_hood_cape_weapon": "absent",
        "words_watermarks_logos": "absent"
      },
      "acceptance_scope": "one antagonist reference sheet only; no episode art or story acceptance implied",
      "locked_existing_assets": "Lira packet and all previous character sheets untouched",
      "root_reviewed_at": "2026-10-18T03:16:19.610297+00:00",
      "root_notes": "Root inspected the actual1536×1024 image: consistent figure/profile/face, two arms and coherent gloved hands, readable asymmetric lenses, original plum/ivory silhouette, appropriate faceted materials. Character design approved; this is not episode-art acceptance.",
      "title": "Коллекционер: утверждённый облик",
      "summary": "Утверждён лист нового антагониста: полный рост, профиль, лицо и работа рук. Лира и существующие персонажи не изменены."
    },
    {
      "revision": 2,
      "asset": "assets/characters/core-cast-r2.png",
      "status": "artist_reviewed",
      "root_approval": "approved",
      "character_ids": [
        "lira",
        "rin",
        "beep"
      ],
      "dimensions": [
        1536,
        1024
      ],
      "generation": "built-in imagegen",
      "prompt": "production/prompts/core-cast-r2.txt",
      "identity_references": [
        "assets/characters/cast-sheet-v1.png",
        "assets/characters/lira/approved-fullbody-reference.png",
        "assets/characters/lira/approved-corridor-reference.png"
      ],
      "qa": {
        "exactly_three_full_silhouettes": "pass",
        "lira_approved_face_hair_costume_identity": "pass",
        "rin_original_repairman_identity": "pass",
        "beep_two_wheels_no_arms": "pass",
        "beep_one_functional_side_port": "pass",
        "neutral_warm_studio_background": "pass",
        "retired_roles_absent": "pass",
        "anatomy": "pass",
        "no_story_scene_or_collage": "pass"
      },
      "lira_permanent_package_hash_checks": [
        {
          "path": "assets/characters/lira/approved-corridor-reference.png",
          "sha256": "d3e3d64315e7c02c55af80c3e748fdd32c6b7c40cbb15a014b8857fb368aac4b",
          "matches_locked_packet": true
        },
        {
          "path": "assets/characters/lira/approved-fullbody-reference.png",
          "sha256": "a2fd128b759d2c0e58ce90cc79da2a7049f9717a9da2328ba899732e0e2f0216",
          "matches_locked_packet": true
        },
        {
          "path": "assets/characters/lira/approved-cast-reference.png",
          "sha256": "110a027ef4b054383a1b534c830a7d71b030f46e2b3b9d6b6010309a1313040b",
          "matches_locked_packet": true
        }
      ],
      "acceptance_scope": "master character art only; pilot scripts and episode images remain gated",
      "title": "Лира, Рин и БИП: эталон новой редакции",
      "displayStatus": "Внешность принята арт-директором",
      "summary": "Три основных персонажа сохраняют утверждённые лица и костюмы. Лира узнаваема; у БИПа два колеса, нет рук и один функциональный боковой порт. Исходный отдельный пакет Лиры проверен по контрольным суммам и не изменён."
    },
    {
      "schema_version": "1.0",
      "revision": 3,
      "reviewed_at_utc": "2026-10-18T03:24:32.547429+00:00",
      "title": "Приключенческие пилоты: отдельная читка сценариев, речи и логики",
      "status": "three_pilot_scripts_and_briefs_accepted_outline_development_allowed",
      "displayStatus": "Три пилотных сценария приняты после правок",
      "summary": "Все три полных сценария прочитаны отдельно и как непрерывная завязка: 60, 60 и 65 секунд. После точечных правок понятны выборы Лиры, помощь пленников, угроза стеклования и ответ Коллекционера; реплики короткие, моральных объяснений и пересказа Star Wars нет. Можно разрабатывать дальнейший outline; 50 сценариев, окончательный сезон и ещё не проверенные изображения не приняты.",
      "publicFindings": [
        "01: похищение дома вызывает погоню; успешный зацеп приводит к новой опасности, а гэг с котом получает завершение.",
        "02: освобождённая Балерина спасает самолёт; тревога меняет маршрут. Недоступное заднее крепление объясняет, почему Капучино нужна помощь.",
        "03: срок стеклования прямо связан с открытием; грузовой зазор объясняет рискованный выбор тележки; Коллекционер замечает и перенаправляет беглецов.",
        "Нейрослоп, причинность и произносимость проверены отдельно. Все девять выбранных image beats точно совпадают с действиями соответствующих планов.",
        "Поздние сюжетные условия проверяются по мере outline; приёмка завязки не означает приёмку всех 50 серий."
      ],
      "reviewerRoles": [
        "Независимая драматургическая и комедийная читка",
        "Отдельная проверка нейрослопа и повторов",
        "Отдельная проверка причинности, масштаба и монтажной читаемости"
      ],
      "scope": {
        "fullyReadEpisodes": [
          1,
          2,
          3
        ],
        "unreviewedEpisodes": [],
        "sourceDocuments": [
          "Фактический R3 proposal целиком",
          "Фактическая пятиэтапная структура целиком",
          "Черновая R3 bible целиком в указанной версии"
        ],
        "notPerformed": [
          "Не прослушивалась актёрская запись",
          "Не просмотрен готовый монтаж",
          "Не проверены новые изображения",
          "Не принят полный план 50 серий"
        ],
        "continuousOpening": "Повторно сопоставлены переходы01→02→03, предметные состояния, местонахождение героев, доступное знание и последовательность реакций противника."
      },
      "evidence": [
        {
          "path": "production/revision3/episodes/ep01.json",
          "sha256": "c33aedd2223464c9fa0a43e17f297b7dcdd043f2abea376d5dc539ab84690b26",
          "coverage": "Все 24 плана после правки; сцены, continuity, causalityNotes, три выбранных image beats и prompts."
        },
        {
          "path": "production/revision3/episodes/ep02.json",
          "sha256": "c60ca8660f2cdd1ebeb5bf6614fa685de047a4f31976504df31b4b62ab9a5c20",
          "coverage": "Все 24 плана, сцены, continuity, causalityNotes и три prompts. После исправления повторно прочитаны К24, k03 prompt/beat, continuityOut, causalityNotes и последняя сцена.",
          "previousReviewedSha256": "4b64b4f928547e300d464e4a082249a1d0321933ace8e0f5ed6bebf8de40c137"
        },
        {
          "path": "production/revision3-adventure-proposal.json",
          "sha256": "1019019951f9b1f8d84fdbbce8c6e069588e29c94e4da1f58439df61a940762e",
          "coverage": "Весь документ; три кратких синопсиса не равны трём прочитанным полным сценариям."
        },
        {
          "path": "production/revision3-adventure-structure.json",
          "sha256": "7b1778bb4100e5754cf8782b9f10292d92fadfafc86c1f100bb2ca814a2658c0",
          "coverage": "Все пять этапов, функции мемов и посевы."
        },
        {
          "path": "production/revision3/bible.json",
          "sha256": "854d164c0b89ba6933f300b5e0551bca370581de426119ba61eee395848468d1",
          "coverage": "Прочитанная версия. Файл изменился во время аудита; позднейшая версия не считается автоматически принятой."
        },
        {
          "path": "production/revision3/episodes/ep03.json",
          "sha256": "6db202473a26a735adfe1270b1cf6dbbbfa4556851bbc31de51563b07bac5306",
          "previousReviewedSha256": "97a040632d4ef02666d402cc8beaaee38ae11194d1df33019ba3f5f904c60a55",
          "coverage": "Первоначально прочитан весь файл:26планов, метаданные, сцены, causalityNotes и все3prompts. После исправлений повторно прочитаны все26планов, сцены, notes и изменённый k03 prompt."
        },
        {
          "path": "production/revision3-adventure-structure.json",
          "sha256": "9543f4822d2e957a889d6640940eb271eac4509391d006f7dc6aed2cc66b2f07",
          "coverage": "Дополнительная ограниченная проверка обновлённых locks и этапов1/4/5. Это не принятие всей новой карты или поэпизодного outline."
        }
      ],
      "coverage": [
        {
          "episode": 1,
          "verdict": "accepted_script_and_keyframe_briefs",
          "metrics": {
            "seconds": 60,
            "shots": 24,
            "cutsSeconds": [
              2.5
            ],
            "silentShots": 14,
            "spokenWords": 35
          },
          "concreteEvidence": [
            "К01: физическое действие с БИПом начинается сразу, невозмутимая печать даёт комический контрапункт.",
            "К03–04 → К16: знакомый кот и запрет трогать горшок; после похищения кот всё-таки сталкивает его. Это посев и самостоятельный визуальный payoff.",
            "К02/08/09 → К10: самолёт показан снаружи поля, прячется за маяк, уменьшается только луна. Геометрия не требует будущего объяснения.",
            "К12–13: обычная помощь вызвана; её отсутствие в следующие секунды не превращено в искусственный запрет.",
            "К17–21: Лира выбирает преследование, находит реальное ушко; Рин достигает локальной цели закрывшимся крюком.",
            "К22–24: ушко движется вместе с погрузчиком и втягивает самолёт. Клиффхэнгер следует из выбранного способа погони, а не стирает её успех."
          ],
          "separateChecks": {
            "adventure": "Принято на уровне сценария: событие меняет мир героини, её решение меняет положение команды; конец обещает конкретное продолжение.",
            "comedy": "Принято: невозмутимый принтер, кот с горшком, деликатное обращение коллекционера с украденным домом, испуг самолёта. Разные механизмы, а не четыре одинаковые поломки.",
            "antiSlop": "Искусственных моральных реплик не найдено. «Он обещал только снимок» даёт недостающее условие сделки; «Домики — к зрителю» раскрывает отношение злодея конкретным действием.",
            "causalityAndKnowledge": "Лира знает свою карту и видимые элементы борта, не устройство музея. Самолёт герметичен, крылья и хвост не уменьшаются частично, старый трос переносится в следующую серию.",
            "speakability": "35 слов в 10 коротких репликах, максимум 4 слова в реплике; каждый разговорный план 2.5 секунды. По длине и синтаксису произносимо; актёрская запись не проверялась.",
            "originality": "Нет чужой известной реплики, одноимённого драматического двойника или цепочки событий Star Wars.",
            "visualReadability": "К03 требует крупного читаемого экрана: кот/красный горшок и фото у того же окна. В К10 неподвижный маяк обязателен как масштабный ориентир. Это требования постановки, не обнаруженная сюжетная ошибка."
          }
        },
        {
          "episode": 2,
          "verdict": "accepted_script_and_keyframe_briefs",
          "metrics": {
            "seconds": 60.0,
            "shots": 24,
            "cutsSeconds": [
              2.5
            ],
            "silentShots": 17,
            "spokenWords": 25
          },
          "concreteEvidence": [
            "К01–04: механизм действительно пытается превратить живой самолёт и живую танцовщицу в удобные экспонаты; это продолжает характер музея.",
            "К03 снимает прошлый буксирный крюк. К06 показывает разрешённый выход из кабины после давления; важные состояния не забыты.",
            "К13–19: сход с подиума вызывает тревогу, Балерина нажимает педаль, самолёт выходит до отпускания. Последовательность причинна.",
            "К20–23: Балерина сама выбирает боковой проход; Лира оставляет Рину действующую связь и другую задачу.",
            "К24 и ep02-k03 после правки: лента соединяет заднее монтажное ушко муфты с основанием за широкой жёсткой спинкой; короткие руки не достают. Ложки находятся на одной выбранной высоте — уровне груди Лиры."
          ],
          "separateChecks": {
            "adventure": "Есть спасение, цена успеха и новое разделение команды. Риск — слишком подробное подтверждение каждого состояния педали; после причинной ясности следует играть скорость и характер.",
            "comedy": "Непокорный локоть Балерины и возражение крыла работают. Жалоба на метроном характерна; её можно завершить действием при уходе, но это не обязательный дополнительный гэг.",
            "antiSlop": "Морализаторства не найдено. Реплики обращены к партнёрам и задаче; «И этот противный метроном» — естественная раздражённая добавка к обещанию снять фиксатор.",
            "causalityAndKnowledge": "Основная цепь освобождения самолёта понятна. Недоступное заднее крепление Капучино согласовано с фактическим освобождением в03 К04–05: Лира меняет угол спинки, после чего он сам режет ленту.",
            "speakability": "Короткие реплики помещаются в планы по текстовой оценке; последняя фраза Лиры из 5 слов требует делового темпа. Звуковая запись не проверялась.",
            "originality": "Продолжение собственного конфликта с живой коллекцией, без заметного копирования Star Wars."
          }
        },
        {
          "episode": 3,
          "verdict": "accepted_script_and_keyframe_briefs",
          "metrics": {
            "seconds": 65,
            "shots": 26,
            "cutsSeconds": [
              2.5
            ],
            "silentShots": 17,
            "spokenWords": 30
          },
          "concreteEvidence": [
            "К01–03: вращающийся стенд отворачивает угрожающего ниндзя к стене; «Стой! Я не закончил!» адресовано механизму и раскрывает характер.",
            "К04–05: Лира наклоняет существующую спинку, открывая недоступную прежде заднюю ленту; Капучино сам режет её. Помощь меняет доступ, а не отменяет его умение.",
            "К08–12: отдельный упаковочный ремень показан до разреза; тяжёлый пустой футляр скатывается по наклонному лотку и физически закрывает путь захвату.",
            "К14/20: линза расположена у ближнего ограждения; домашняя сфера за грузовым зазором. Рельс тележки даёт новый доступ, которого у Лиры пешком не было.",
            "К15–19: раздражающий ветер → застывший мир → «К открытию все будут такими» → три часа. Лира и зритель получают одну конкретную угрозу из наблюдения.",
            "К21–26: выбор тележки выдаёт Лиру в отражении сферы. Коллекционер узнаёт её и переводит видимую стрелку; Лира готовит прыжок, не ждёт пассивного пленения."
          ],
          "separateChecks": {
            "adventure": "Принято: освобождение союзника, преодоление погони, обнаружение угрозы и сознательный риск объединены в одну причинную цепь. Противник отвечает действием на обнаружение.",
            "comedy": "Принято: неудавшаяся угроза ниндзя, чрезмерный замах против маленького точного действия, облако, мешающее композиции злодея, и попытка кофейных героев изобразить экспонаты. Шутки не отменяют последствий.",
            "antiSlop": "После правки нет бессмысленного требования тишины перед намеренным грохотом. «Одной» относится к лишней ложке; речь злодея сообщает план, не общую мораль. Лира не произносит лекцию о доме или свободе.",
            "causalityAndKnowledge": "Лира видит местный путь и срок, но ещё не знает обратного режима. Злодей замечает знакомые косы/карту через установленное отражение и пользуется реальным рычагом. Два разрезанных ремня — разные заранее показанные предметы.",
            "speakability": "30 слов в9репликах, максимум5слов в одной; каждый план2.5секунды. Реплики имеют простой синтаксис и помещаются по текстовой оценке. Актёрское исполнение не проверено.",
            "timing": "65секунд оправданы четырьмя разными событиями и реакциями. Нет необходимости удалять причинный показ ради ровно60; формат допускает60–90.",
            "originality": "Самостоятельная космическая комедия: музей, ложки, стеклование, узнавание проводника и монтажная тележка развивают собственный конфликт, без чужой цитаты или повторения известной сцены Star Wars.",
            "visualReadability": "К14 связывает узнаваемый дом с дальним стендом, К20 отдельно закрепляет грузовой зазор и путь. К24–25 показывают один перевод стрелки и его результат. В изображениях проверять, что отражение и рельс читаются, а широкая спинка действительно закрывает доступ к ленте."
          }
        }
      ],
      "findings": [
        {
          "id": "R3-E01-F1",
          "episode": 1,
          "severity": "editorial_recommendation",
          "status": "resolved_and_reread",
          "shot": "Прежние К10/23; текущие К02/08/09/21–23",
          "evidence": "Два отдельных подтверждения безопасного положения и уже достигнутого зацепа повторяли соседние планы.",
          "resolution": "Автор удалил их; эпизод стал 60 секунд/24 плана. Повторно прочитаны все планы и синхронизированные сцены."
        },
        {
          "id": "R3-E01-F2",
          "episode": 1,
          "severity": "comedy_recommendation",
          "status": "resolved_and_reread",
          "shot": "К03–04/16",
          "evidence": "Первоначально кот после захвата лишь отдёргивал лапу.",
          "resolution": "Теперь кот сталкивает тот же красный горшок, завершая начатую шалость. Сюжетная ставка и немой гэг совмещены."
        },
        {
          "id": "R3-E02-F1",
          "episode": 2,
          "severity": "must_fix_before_art",
          "status": "resolved_and_reread",
          "shot": "К24, ep02-k03; переход к ep03",
          "quote": "His central takeaway cup body is still held to a display base by a visible SOFT fabric restraint band, his TWO arms free and holding the spoons.",
          "finding": "Ниндзя умеет резать мягкие крепления, но его руки с ложками свободны и лента не обозначена как недоступная. Художник может буквально нарисовать легко разрезаемую ленту на животе.",
          "fix": "Указать реальную недоступную точку за спиной/под задним краем основания; короткие руки не дотягиваются. Помощь Лиры в03 меняет доступ к этой точке. Синхронизировать action, continuity и prompt.",
          "resolution": "В action и prompt указан короткий задний тросик за широкой жёсткой спинкой, закрывающей доступ коротким рукам. Передней ленты нет. ContinuityOut и causalityNotes согласованы. Будущая помощь Лиры не считается проверенной до чтения03. Фактические03 К04–05 теперь прочитаны: наклон спинки открывает нужный зазор, после чего Капучино сам режет крепление."
        },
        {
          "id": "R3-E02-F2",
          "episode": 2,
          "severity": "brief_consistency",
          "status": "resolved_and_reread",
          "shot": "К24, ep02-k03",
          "quote": "Перед лицом Лиры / at chest level",
          "finding": "Сценарий и image prompt выбирают разные высоты встречи ложек.",
          "fix": "Зафиксировать одну высоту с учётом размеров чашки, её основания и роста Лиры.",
          "resolution": "К24 и prompt теперь оба задают уровень груди Лиры; выбран один кадр в три четверти."
        },
        {
          "id": "R3-S-F1",
          "severity": "must_fix_structure",
          "status": "open",
          "source": "structure.stages[0].beats[1]",
          "quote": "Лира выбрасывает крепление съёмочного оборудования, чтобы освободить грузовую лебёдку.",
          "finding": "В фактическом принятом ep01 лебёдка штатная и уже доступная; выбрасывания нет.",
          "fix": "Удалить устаревшее событие из карты. Не добавлять ещё одну процедуру в пилот."
        },
        {
          "id": "R3-S-F2",
          "severity": "must_resolve_before_act4_scripts",
          "status": "resolved_at_structure_level_not_script_review",
          "source": "structure.stages[3].beats[0]",
          "quote": "Три знакомых такта успевают завершиться",
          "finding": "В пилоте герои умеют уйти за время зарядки. Повторное попадание нельзя объяснить только тем, что они почему-то ждут.",
          "fix": "Коллекционер физически перекрывает путь после входа команды; неуспешная попытка выхода видна во время знакомой зарядки. Это его ловушка, а не внезапная потеря компетентности героев.",
          "resolution": "В структуре9543f482 с первым тактом закрывается обратная створка; Бомбардиро пытается вырваться, но поперечная рама перекрывает путь. Команда остаётся целиком внутри поля. Будущие реальные планы ещё не прочитаны."
        },
        {
          "id": "R3-S-F3",
          "severity": "must_resolve_before_act4_and5_scripts",
          "status": "partly_resolved_new_capacity_issue",
          "source": "structure.stages[3].turn; bible.locations external-focus/apparatus-service",
          "finding": "В карте команда выходит из герметичного лотка в «фокус», но воздух в точке восстановления не назван. Bible уже предлагает герметичную прозрачную площадку; нужно использовать именно её, не голый космос.",
          "fix": "Показать переход из лотка внутрь защищённой площадки с объёмом для полноразмерного самолёта. Для лун отдельно использовать дальний свободный участок наружного рабочего коридора. Излучатель неподвижен, дистанция фокуса выбирается по цели.",
          "resolution": "Обновлённая карта использует герметичную кабину и отдельный мини-кокон Рина, сохраняя воздух. Но вместимость общей кабины не доказана: см.R3-S-F4. Эти поздние условия не блокируют принятые пилоты."
        },
        {
          "id": "R3-E03-F1",
          "episode": 3,
          "severity": "must_fix_information_causality",
          "status": "resolved_and_reread",
          "shot": "К17–19",
          "quoteBefore": "Эта уже не шевелится.",
          "finding": "Мёртвый образец, пустые каналы и время открытия сами по себе не сообщали намерение застеклить ещё живые миры к этому сроку. Угроза оставалась преимущественно в авторских notes.",
          "resolution": "К18: взгляд с готового экспоната на живые сферы и реплика «К открытию все будут такими». Следующий кадр называет три часа. Нового объясняющего плана не добавлено."
        },
        {
          "id": "R3-E03-F2",
          "episode": 3,
          "severity": "dialogue_motivation",
          "status": "resolved_and_reread",
          "shot": "К07–12",
          "quoteBefore": "Тихо.",
          "finding": "Захват уже преследует группу, а выбранное падение футляра намеренно грохочет; требование скрытности не имело причины.",
          "resolution": "Балерина удерживает лишнюю руку ради точного разреза и говорит «Одной». Поступок и реплика теперь решают одну задачу."
        },
        {
          "id": "R3-E03-F3",
          "episode": 3,
          "severity": "must_fix_spatial_causality",
          "status": "resolved_and_reread",
          "shot": "К14/20–25, ep03-k03",
          "finding": "Лира сначала казалась находящейся прямо у стенда своей сферы, затем садилась на тележку, чтобы только добраться до него. Реплика также называла несуществующую ленту вместо рельсовой тележки.",
          "resolution": "Линза поставлена на ближнее ограждение; подставка луны находится за грузовым зазором. К20 показывает пересекающий его рельс, реплика «На ней доберёмся до шара» точно обозначает выбор. Пространство перенесено в k03 prompt."
        },
        {
          "id": "R3-S-F4",
          "severity": "must_resolve_before_late_outline_lock",
          "status": "open",
          "source": "Updated structure9543f482 stage4.turn versus accepted ep01.scaleBlocking",
          "finding": "В обновлённой карте все девять пассажиров возвращают размер в кабине Бомбардиро. В принятом ep01 там два человеческих кресла и низкий проход для БИПа; Лирили, Патапим и остальные не могут молча поместиться в ту же кабину.",
          "fix": "Заранее показать отдельный герметичный грузовой контейнер/защищённую групповую площадку либо другой согласованный способ переноса воздуха. Не увеличивать утверждённую кабину задним числом и не вводить средство спасения только в момент использования."
        }
      ],
      "artRelease": {
        "ep01": {
          "eligible": true,
          "limit": "Только три кадра ep01 после отдельного указания root художнику gpt-6.1-sol/high.",
          "acceptedSourceHash": "c33aedd2223464c9fa0a43e17f297b7dcdd043f2abea376d5dc539ab84690b26",
          "shots": [
            1,
            10,
            23
          ],
          "beatEqualsShotAction": [
            true,
            true,
            true
          ]
        },
        "ep02": {
          "eligible": false,
          "scriptAccepted": true,
          "acceptedSourceHash": "c60ca8660f2cdd1ebeb5bf6614fa685de047a4f31976504df31b4b62ab9a5c20",
          "shots": [
            4,
            16,
            24
          ],
          "reason": "Сценарий и бриф содержательно приняты. По текущему указанию root производственный пакет ограниченep01; следующие изображения требуют его отдельного назначения художнику."
        },
        "ep03": {
          "eligible": false,
          "scriptAccepted": true,
          "acceptedSourceHash": "6db202473a26a735adfe1270b1cf6dbbbfa4556851bbc31de51563b07bac5306",
          "shots": [
            2,
            12,
            25
          ],
          "beatEqualsShotAction": [
            true,
            true,
            true
          ],
          "reason": "Сценарий и бриф содержательно приняты. Root пока дал только содержательное разрешение02–03; изображения не создавались и не проверялись."
        }
      },
      "limits": [
        "Приёмка относится к трём полным сценариям и соответствующим image briefs на указанных hashes.",
        "Готовый монтаж и актёрская запись не проверены; текстовый хронометраж не выдаётся за просмотр фильма.",
        "После изменения принятого сценария проверяется новый hash и затронутые планы.",
        "Сюжетные ограничения поздней структуры не считаются закрытыми приёмкой завязки.",
        "Приёмка изображений проводится отдельно по фактическим файлам.",
        "Ни50сценариев, ни150изображений, ни окончательный сезон не приняты."
      ],
      "continuousOpeningReview": {
        "verdict": "accepted_as_three_episode_opening",
        "durationSeconds": 185,
        "causalChain": "Украденная луна → выбранный зацеп за корабль → непредвиденный погрузчик → освобождение Балерины ради выхода самолёта → тревога и боковой путь → освобождение Капучино → препятствие охране → обнаружение срока и цели злодея → тележка через реальный зазор → узнавание и изменённый маршрут.",
        "stateContinuity": [
          "01 оставляет трос на каретке;02 К03 явно сбрасывает его. Самолёт не получает необъяснимой свободы.",
          "01 сохраняет самолёт полноразмерным и пассажиров в герметичной кабине;02 показывает разрешённый выход. Внутри музея никто неожиданно не уменьшается.",
          "01 кот сталкивает горшок;03 показывает тот же упавший горшок. Дом остаётся живым после первичного захвата.",
          "02 разделяет команду: Рин/БИП с самолётом, Лира/Балерина за перегородкой.03 продолжает именно эту группу, добавляя освобождённого Капучино.",
          "Тревога возникает в02 от пустого подиума;03 охрана преследует героев, а Коллекционер узнаёт Лиру только после конкретного наблюдения. Начальный абордаж не превращён задним числом в его всезнающий план."
        ],
        "remainingOutlineObligations": [
          "Сигнал бедствия из01 уже отправлен: дальнейший outline должен учитывать возможную помощь и её время, не забыть посев или необъяснимо отключить связь.",
          "После03 авторы должны сообщить Лире способ восстановления размера конкретным наблюдением/добытым знанием, прежде чем она поставит цель захватить аппарат.",
          "Следующие серии должны расширить приключение новыми действиями и средами: три пилота не доказывают, что50серий рельсов, ремней и педалей будут разнообразны.",
          "Сохранить успехи: самолёт и два пленника действительно освобождены, дом остаётся живым, а противник теперь знает о группе."
        ]
      },
      "developmentGate": {
        "threePilots": "passed_after_independent_content_review_and_reread",
        "nextAllowed": "Разработка дальнейшего связанного outline с отдельной проверкой разнообразия, причинности и поздних открытых условий.",
        "notGranted": "Приёмка50полных сценариев или их автоматический запуск в производство изображений."
      }
    },
    {
      "schema_version": "1.0",
      "revision": 3,
      "reviewed_at_utc": "2026-10-18T03:03:50.065916+00:00",
      "title": "«Лира и украденная луна»: приёмка приключенческой основы",
      "status": "recommended_b_for_three_pilot_scripts_only",
      "displayStatus": "Основа допущена к трём пилотным сценариям",
      "summary": "Вариант B даёт Лире личную цель и пять разных форм приключения: погоню, проникновение, экспедицию, кражу и побег в новом масштабе. Три главных причинных условия уточнены с автором: герои вне первого луча, аппарат один и снаружи, срок задаёт сознательная консервация миров. Это допуск к разработке трёх пилотов, а не приёмка готовых сценариев, 50 серий или изображений.",
      "publicFindings": [
        "Луна украдена, но Лира и её первая команда остаются полноразмерными: последующее уменьшение действительно меняет приключение.",
        "После кражи шара остаётся конкретная цель — захватить управление внешним аппаратом и вернуть дому размер.",
        "Коллекционер хочет навсегда остановить изменение своих экспонатов; консервация заменяет необъяснимый разряд живых капсул.",
        "Вторая половина должна менять действия и союзы, а не повторять бегство между витринами.",
        "Отдельная проверка живого диалога, причинности и комедии состоится по реальным пилотным сценариям."
      ],
      "reviewerRoles": [
        "Независимый редактор драматургии и комедии",
        "Редактор причинности и оригинальности",
        "Режиссёрский просмотр замысла: читаемость действия в коротких планах"
      ],
      "scope": {
        "inspected": "Два исходных pitch из задания шоураннера; пять этапов каждого; adventure-brief-r3.json; уточнения screenwriter_b и root в сообщениях текущего задания.",
        "notInspected": "Полные пилотные сценарии, полный поэпизодный план 50 серий, устное исполнение, покадровые раскадровки и новые изображения R3 ещё не представлены к этой приёмке.",
        "sourceLimit": "Уточнения автора ниже получены в переписке. Отдельный сохранённый pitch автора на момент проверки ещё не прочитан; нельзя считать его файл автоматически проверенным."
      },
      "evidence": [
        {
          "path": "production/adventure-brief-r3.json",
          "sha256": "da50b2a4ad8df038cfe7222f52a630c0fd820a340ac5cd5959cdf40ba02fca81"
        },
        {
          "source": "parent_task_message",
          "description": "Исходные A «Лира и пасть космоса» и B «Нас взяли на сувениры», по пять этапов; предпочтение B не является требованием одобрить."
        },
        {
          "source": "screenwriter_b_message",
          "description": "Лира/Рин/БИП на полномасштабном Бомбардиро у внешнего маяка; луна сжимается позади, шар забирает обычный манипулятор; остальные шесть мемов — пленники музея."
        },
        {
          "source": "screenwriter_b_message",
          "quote": "Коллекционер сознательно запускает на рассвете консервацию завершённой композиции, чтобы ни один живой мир больше не менял выбранный им идеальный вид."
        },
        {
          "source": "screenwriter_b_message",
          "description": "После кражи шара герои захватывают управление корабельным внешним излучателем, используют показанный выпускной лоток и свободный внешний объём; уменьшение команды происходит на наружной погрузочной площадке. Маскировка знакомых беглецов отменена: проникновение через техход."
        },
        {
          "source": "parent_followup_message",
          "description": "Срок уточнён как открытие выставки: коллекционер намеренно стеклует живые миры ради неизменной композиции. Обычный живой шар обратим. Техход или сознательная ловушка будут выбраны в дальнейшей разработке."
        }
      ],
      "comparison": {
        "A": {
          "strengths": "Самая быстрая эмоциональная завязка: Лира отказывается от добычи и ныряет за Рином. Живой скат, моря кораблей и перевёрнутые леса обещают выразительное исследование.",
          "problems": [
            "Выброшенный двигатель нельзя использовать в финале без показанного возвращения. Заменить приманку заранее посеянным предметом или действием.",
            "Проглатывание Рина ещё не объясняет его плен у Веспы и необходимость именно его ремонта. Нужен один конкретный причинный переход.",
            "После спасения Рина потеря Бомбардиро рискует повторить тот же двигатель «теперь спасаем другого». Цена первого спасения должна менять способ действия.",
            "Ложный маршрут работает только через ранее показанное свойство тела ската, а не новое знание Лиры в финале."
          ],
          "verdict": "Пригодный самостоятельный запасной вариант; пока менее собранная причинная цепь."
        },
        "B": {
          "strengths": "Кража собственного дома лично связывает Лиру с опасностью. Музей даёт чужие живые миры и союзников, ограбление меняет владельца шара, уменьшение меняет возможности героев, аппарат связывает завязку и финал.",
          "originality": "Уменьшение и живой музей — знакомые фантастические мотивы, не заявление о беспрецедентности. Их причинная комбинация не нуждается в фабуле Star Wars, родстве со злодеем, наставнике или атаке боевой станции.",
          "verdict": "Рекомендован для трёх пилотных сценариев при сохранении согласованных ограничений."
        }
      },
      "threeCausalConditions": [
        {
          "id": "R3-C1",
          "status": "resolved_at_pitch_level",
          "condition": "Первый захват и новый масштаб",
          "evidence": "Первичная четвёрка уже вне контура у маяка; уменьшена только луна. Манипулятор вместо гигантских пальцев. Остальные мемы встречаются позднее.",
          "pilotProof": "Показать положение команды относительно поля одним ясным общим планом до сжатия; не объяснять его задним числом."
        },
        {
          "id": "R3-C2",
          "status": "resolved_at_pitch_level",
          "condition": "Ограниченная сила противника и цель после кражи",
          "evidence": "Единственный наружный аппарат с фиксированным фокусом; после кражи шара нужны его управление и выпускной лоток. Уменьшение героев происходит при попытке захватить аппарат на наружной площадке.",
          "pilotProof": "Зритель видит зарядку/контур и возможность выйти из поля; аппарат не начинает стрелять сквозь галереи."
        },
        {
          "id": "R3-C3",
          "status": "resolved_at_pitch_level",
          "condition": "Один осмысленный срок",
          "evidence": "Искусственный разряд отменён. К открытию выставки коллекционер намеренно стеклует миры ради неизменного идеального вида. Короткий показ застывшего чужого мира и времени открытия объясняет цену и срок.",
          "pilotProof": "Показать намерение противника и конкретное изменение живого объекта. После кражи шара срок угрожает оставшимся в установке мирам; не возвращать дистанционную гибель украденного шара без нового захвата."
        }
      ],
      "recommendedTechnologyRules": [
        {
          "rule": "Один корабельный наружный излучатель захватывает целиком видимую цель после короткой зарядки в фиксированном контуре.",
          "purpose": "Можно выйти из поля, закрыть обзор или сорвать удержание; у злодея нет мгновенного карманного решения.",
          "status": "Согласовано на уровне pitch; требуется показ."
        },
        {
          "rule": "Размер сохраняется до обратного импульса того же аппарата; разбитое стекло не возвращает размер. Оболочка сохраняет среду маленького мира.",
          "purpose": "Разбить шар или вынести его из музея недостаточно для спасения дома.",
          "status": "Рекомендуемое уточнение перед сценарным использованием; не вводить новые силы оболочки по ходу погони."
        },
        {
          "rule": "Живой мир не умирает от произвольного таймера. Необратимую консервацию запускает коллекционер в своей установке над находящимися там экспонатами.",
          "purpose": "Срок выражает действие и характер противника, а успешная кража честно меняет риск.",
          "status": "Консервация согласована; её локальность должна сохраниться в дальнейшей арке."
        },
        {
          "rule": "Обратный импульс требует показанного внешнего выпускного места и достаточного свободного объёма; миры восстанавливаются последовательно.",
          "purpose": "Нельзя увеличить луну в кармане или всю коллекцию внутри корабля. Навык картографа получает конкретную работу.",
          "status": "Согласовано на уровне pitch; не обещать возврат каждого мира к родной звезде без отдельно установленного способа перемещения."
        }
      ],
      "fiveStageStressTest": [
        {
          "stage": 1,
          "mode": "Погоня после кражи луны",
          "mustKeep": "Лира принимает решение преследовать похитителя; её навык помогает выбрать опасный маршрут.",
          "risk": "Не растягивать одну погоню на десять одинаковых уклонений. Поменять маршрут, доступную помощь или цену преследования."
        },
        {
          "stage": 2,
          "mode": "Проникновение в музей и встреча пленников",
          "mustKeep": "Союзники имеют собственные планы побега и помогают действиями.",
          "risk": "Шесть одинаковых освобождений ради шести очередных ключей превратят приключение в обход пунктов. Техход или сознательная ловушка ещё выбираются авторами; ни один путь не должен давать доступ к цели бесплатно."
        },
        {
          "stage": 3,
          "mode": "Экспедиция среди живых экспонатов и кража шара",
          "mustKeep": "Чужие миры заставляют выбирать маршрут и союз, а кража действительно меняет владельца и безопасность дома.",
          "risk": "Не делать экскурсию с шестью поясняющими проводниками; не отнимать шар заново в каждой серии."
        },
        {
          "stage": 4,
          "mode": "Попытка захватить внешний аппарат проваливается: команда уменьшена",
          "mustKeep": "Ложка, вода и рука становятся новыми физическими препятствиями; прежние знания маршрута помогают при иных размерах. Цель остаётся — управление аппаратом.",
          "risk": "Не полагаться только на эффект больших бытовых предметов. Каждая сцена должна приближать к управлению или менять план."
        },
        {
          "stage": 5,
          "mode": "Захват аппарата, восстановление и освобождение миров",
          "mustKeep": "Победа собирает известный маршрут Лиры, умения мемов и ограничение фокуса. Коллекционера заманивают в то же показанное поле, затем ловят чашкой.",
          "risk": "Не вводить отражающий луч предмет, новый пульт или мгновенный массовый возврат миров. Реплика Балерины о сервизе возможна после видимого спасения, как короткая заключительная шутка."
        }
      ],
      "characterAndComedy": [
        "Лира приводит коллекционера к луне по убедительной сделке: например, он обещает оплатить атлас и показать мир исследователям. Она ошибается в доверии, а не игнорирует явную угрозу. Внешность и пакет assets/characters/lira/ неизменны.",
        "Прежде чем дом станет шаром, нужен один узнаваемый живой объект или близкий житель, за которым зритель сможет следить; одного слова «дом» недостаточно для ставки.",
        "Лира ищет маршрут, принимает риск и меняет план; Рин, БИП и пленники имеют компетенции, которых у неё нет. Она не должна одновременно знать всю технологию и весь музей.",
        "Форма мема должна влиять на действие: деревянный Тунг может сойти за постамент, Лирили — за ботанический экспонат, Тралалеро цепляется обувью за стекло, Бомбардиро ограничен размахом. Это варианты, не обязанность вставить всех в каждую серию.",
        "Не давать каждому освобождённому одинаковую благодарность, мораль или монолог о свободе. Собственное желание, действие и короткая реакция полезнее объяснения темы.",
        "Не делать все шутки одинаковым застреванием большого тела. Нужны также обман ожидания, дерзкая импровизация, спор интересов и неприятное последствие удачного трюка."
      ],
      "nextGate": {
        "authorizedByThisReview": "Разработать три пилотных сценария и коротко закрепить пять этапов. Уровень pitch достаточен для этой ограниченной работы.",
        "requiredChecks": [
          "Первые 60–90 секунд показывают опасное событие, понятное решение Лиры и полноценный визуальный гэг; действие не заменено объяснением правил.",
          "Планы по 2–3 секунды успевают показывать одну главную причинную перемену; реплики проверяются по реальному времени произнесения и оставляют место реакции.",
          "Отдельно прочитать каждый из трёх сценариев на искусственную речь, повтор шуток, знание персонажей, состояние предметов и незаслуженное спасение.",
          "Сохранённый pitch должен соответствовать уточнениям этой рецензии. Только после чтения пилотов решать вопрос о следующем объёме сценариев и изображениях."
        ],
        "notAccepted": [
          "Ни один полный сценарий R3 этим отчётом не принят.",
          "50 серий ещё не доказаны по разнообразию и причинности.",
          "Новые изображения, сайт и окончательный сезон не приняты.",
          "Приёмка старых пилотов R2 не переносится на R3."
        ]
      }
    }
  ],
  "revision": {
    "status": "story_rewrite_in_progress",
    "revision": 3,
    "title": "«Лира и украденная луна» — приключенческая редакция",
    "message": "Три первые серии приключения прошли отдельную проверку сценариев и логики. Иллюстрации принимаются по одному кадру; полный сезон из50серий в разработке. Предыдущие версии сохранены в архиве."
  },
  "cameos": {
    "schemaVersion": "3.0",
    "revision": 3,
    "title": "Беглецы из живой коллекции",
    "userPreference": "Italian brainrot",
    "principles": [
      "Герои действуют в приключении, а не появляются по квоте.",
      "Утверждённая анатомия и образы сохраняются."
    ],
    "characters": [
      {
        "id": "ballerina-cappuccina",
        "name": "Балерина Капучина",
        "role": "Пленница живой коллекции, умеющая проходить там, где другие теряют равновесие.",
        "desire": "Выйти из навязанного ей бесконечного представления.",
        "flaw": "Старается закончить красивое движение даже после того, как план изменился.",
        "arc": "Сама выбирает момент выступления и использует сценическое внимание как отвлекающий манёвр.",
        "comicEngine": "Удерживает равновесие на узких опорах, достаёт точным пуантом; широкая чашечная голова не проходит в низкие проёмы.",
        "visual": {
          "id": "ballerina-cappuccina",
          "name": "Балерина Капучина",
          "sheet_position": "top row third",
          "locked_design": "White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms",
          "publicDescription": "Балерина с чашкой капучино вместо головы. Держит равновесие и не проливает кофе."
        }
      },
      {
        "id": "cappuccino-assassino",
        "name": "Капучино Ассасино",
        "role": "Стакан-ниндзя и бариста среди пленников музея.",
        "desire": "Вернуть свободу себе и Балерине.",
        "flaw": "Любит эффектный жест больше тихого своевременного действия.",
        "arc": "Меняет красивый одиночный трюк на точную помощь партнёру.",
        "comicEngine": "Две ложки — точные инструменты, а не универсальные мечи. Стакан лёгкий, его сносит сквозняком.",
        "visual": {
          "id": "cappuccino-assassino",
          "name": "Капучино Ассасино",
          "sheet_position": "top-right",
          "locked_design": "Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting",
          "publicDescription": "Стакан кофе в экипировке ниндзя. Любую мелкую задачу выполняет с убийственной серьёзностью."
        }
      },
      {
        "id": "tralalero-tralala",
        "name": "Тралалеро Тралала",
        "role": "Трёхногий акула-курьер, пойманный как редкий живой экспонат.",
        "desire": "Добежать до настоящего выхода.",
        "flaw": "Путает быстрый старт с успешным побегом.",
        "arc": "Остаётся удерживать путь, пока проходят остальные; сохраняет скорость и дерзость.",
        "comicEngine": "Три синих кроссовка дают необычную устойчивость, но третий постоянно цепляется за то, что он уже считает пройденным.",
        "visual": {
          "id": "tralalero-tralala",
          "name": "Тралалеро Тралала",
          "sheet_position": "bottom-left",
          "locked_design": "Horizontal blue-gray shark with white underbelly, dorsal fin/tail/gills, playful toothy grin, exactly three fin-legs wearing exactly three bright blue unbranded sneakers",
          "publicDescription": "Акула на трёх ногах в синих кроссовках. Третья нога то мешает, то спасает положение."
        }
      },
      {
        "id": "bombardiro-crocodilo",
        "name": "Бомбардиро Крокодило",
        "role": "Разумный крокодил-самолёт; везёт Лиру к внешнему маяку и становится её кораблём в погоне.",
        "desire": "Выбраться из охотничьего маршрута с целыми крыльями и всеми пассажирами.",
        "flaw": "Обещает красивый манёвр, не желая признавать собственный размах и инерцию.",
        "arc": "Позволяет команде вести его через тесный путь и возвращается за теми, кому обещал место.",
        "comicEngine": "Длинный крокодилий нос и крылья мешают тесной парковке; лицо показывает стыд прежде, чем он признаёт промах.",
        "visual": {
          "id": "bombardiro-crocodilo",
          "name": "Бомбардиро Крокодило",
          "sheet_position": "bottom-right",
          "locked_design": "Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot",
          "publicDescription": "Крокодил-самолёт с двумя винтами. Выглядит грозно даже с обычным грузом."
        }
      },
      {
        "id": "tung-tung-sahur",
        "name": "Тунг-Тунг Сахур",
        "role": "Живое полено с битой, выставленное как неподвижная скульптура.",
        "desire": "Снова двигаться и шуметь по собственной воле.",
        "flaw": "Выдаёт своё присутствие раньше времени любимым ритмом.",
        "arc": "Использует свой узнаваемый стук намеренно, чтобы увести погоню.",
        "comicEngine": "Деревянный корпус, бита, чёткий ритм; может стать распоркой, но тогда обе руки заняты и ему тоже нужна помощь.",
        "visual": {
          "id": "tung-tung-sahur",
          "name": "Тунг-Тунг Сахур",
          "sheet_position": "top row second",
          "locked_design": "Tall honey-brown wooden log cylinder, carved huge eyes/nose/grin, skinny wooden limbs, broad carved feet, wooden bat, charcoal belt and small amber circular badge",
          "publicDescription": "Ожившее полено с деревянной битой. Его появление обычно слышно раньше, чем видно."
        }
      },
      {
        "id": "lirili-larila",
        "name": "Лирили Ларила",
        "role": "Слон-кактус из ботанической коллекции.",
        "desire": "Унести живые растения из сада, который хотят застеклить.",
        "flaw": "Считает каждый горшок обязательным пассажиром.",
        "arc": "Выбирает живой росток вместо тяжёлой витрины и помогает провести его наружу.",
        "comicEngine": "Слон-кактус, гибкий хобот, огромные сандалии. Тяжёлый, но точный; может удержать вещь, которую другие принимают за конструкцию.",
        "visual": {
          "id": "lirili-larila",
          "name": "Лирили Ларила",
          "sheet_position": "top-left",
          "locked_design": "Deep green ribbed cactus-elephant, ochre elephant head and ears, long trunk, small tusks, sparse spines, two massive brown double-strap sandals, tiny coin pouch; no humanoid arms; trunk manipulates objects",
          "publicDescription": "Слон-кактус в огромных сандалиях. Грубая сила и удивительно ловкий хобот."
        }
      },
      {
        "id": "brr-brr-patapim",
        "name": "Брр Брр Патапим",
        "role": "Древесный великан из одного живого экспоната.",
        "desire": "Вывести из коллекции собственный живой мир.",
        "flaw": "Слишком долго молча удерживает то, что уже нельзя спасти целиком.",
        "arc": "Сам показывает жизнеспособный путь и доверяет другим перенос хрупкого груза.",
        "comicEngine": "Носатый древесный силуэт, огромные стопы и корни. Не мгновенная лоза, а тяжёлая живая опора.",
        "visual": {
          "id": "brr-brr-patapim",
          "name": "Брр Брр Патапим",
          "sheet_position": "bottom-middle",
          "locked_design": "Woody tree merged with proboscis-monkey face, long drooping rounded nose, sleepy eyes, mossy canopy hair/shoulders, root arms and two enormous bare carved feet with rounded toes",
          "publicDescription": "Носатый лесной великан с корнями и огромными ступнями. Двигается медленно, замечает многое."
        }
      }
    ],
    "cast": [
      {
        "id": "ballerina-cappuccina",
        "name": "Балерина Капучина",
        "role": "Пленница живой коллекции, умеющая проходить там, где другие теряют равновесие.",
        "desire": "Выйти из навязанного ей бесконечного представления.",
        "flaw": "Старается закончить красивое движение даже после того, как план изменился.",
        "arc": "Сама выбирает момент выступления и использует сценическое внимание как отвлекающий манёвр.",
        "comicEngine": "Удерживает равновесие на узких опорах, достаёт точным пуантом; широкая чашечная голова не проходит в низкие проёмы.",
        "visual": {
          "id": "ballerina-cappuccina",
          "name": "Балерина Капучина",
          "sheet_position": "top row third",
          "locked_design": "White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms",
          "publicDescription": "Балерина с чашкой капучино вместо головы. Держит равновесие и не проливает кофе."
        }
      },
      {
        "id": "cappuccino-assassino",
        "name": "Капучино Ассасино",
        "role": "Стакан-ниндзя и бариста среди пленников музея.",
        "desire": "Вернуть свободу себе и Балерине.",
        "flaw": "Любит эффектный жест больше тихого своевременного действия.",
        "arc": "Меняет красивый одиночный трюк на точную помощь партнёру.",
        "comicEngine": "Две ложки — точные инструменты, а не универсальные мечи. Стакан лёгкий, его сносит сквозняком.",
        "visual": {
          "id": "cappuccino-assassino",
          "name": "Капучино Ассасино",
          "sheet_position": "top-right",
          "locked_design": "Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting",
          "publicDescription": "Стакан кофе в экипировке ниндзя. Любую мелкую задачу выполняет с убийственной серьёзностью."
        }
      },
      {
        "id": "tralalero-tralala",
        "name": "Тралалеро Тралала",
        "role": "Трёхногий акула-курьер, пойманный как редкий живой экспонат.",
        "desire": "Добежать до настоящего выхода.",
        "flaw": "Путает быстрый старт с успешным побегом.",
        "arc": "Остаётся удерживать путь, пока проходят остальные; сохраняет скорость и дерзость.",
        "comicEngine": "Три синих кроссовка дают необычную устойчивость, но третий постоянно цепляется за то, что он уже считает пройденным.",
        "visual": {
          "id": "tralalero-tralala",
          "name": "Тралалеро Тралала",
          "sheet_position": "bottom-left",
          "locked_design": "Horizontal blue-gray shark with white underbelly, dorsal fin/tail/gills, playful toothy grin, exactly three fin-legs wearing exactly three bright blue unbranded sneakers",
          "publicDescription": "Акула на трёх ногах в синих кроссовках. Третья нога то мешает, то спасает положение."
        }
      },
      {
        "id": "bombardiro-crocodilo",
        "name": "Бомбардиро Крокодило",
        "role": "Разумный крокодил-самолёт; везёт Лиру к внешнему маяку и становится её кораблём в погоне.",
        "desire": "Выбраться из охотничьего маршрута с целыми крыльями и всеми пассажирами.",
        "flaw": "Обещает красивый манёвр, не желая признавать собственный размах и инерцию.",
        "arc": "Позволяет команде вести его через тесный путь и возвращается за теми, кому обещал место.",
        "comicEngine": "Длинный крокодилий нос и крылья мешают тесной парковке; лицо показывает стыд прежде, чем он признаёт промах.",
        "visual": {
          "id": "bombardiro-crocodilo",
          "name": "Бомбардиро Крокодило",
          "sheet_position": "bottom-right",
          "locked_design": "Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot",
          "publicDescription": "Крокодил-самолёт с двумя винтами. Выглядит грозно даже с обычным грузом."
        }
      },
      {
        "id": "tung-tung-sahur",
        "name": "Тунг-Тунг Сахур",
        "role": "Живое полено с битой, выставленное как неподвижная скульптура.",
        "desire": "Снова двигаться и шуметь по собственной воле.",
        "flaw": "Выдаёт своё присутствие раньше времени любимым ритмом.",
        "arc": "Использует свой узнаваемый стук намеренно, чтобы увести погоню.",
        "comicEngine": "Деревянный корпус, бита, чёткий ритм; может стать распоркой, но тогда обе руки заняты и ему тоже нужна помощь.",
        "visual": {
          "id": "tung-tung-sahur",
          "name": "Тунг-Тунг Сахур",
          "sheet_position": "top row second",
          "locked_design": "Tall honey-brown wooden log cylinder, carved huge eyes/nose/grin, skinny wooden limbs, broad carved feet, wooden bat, charcoal belt and small amber circular badge",
          "publicDescription": "Ожившее полено с деревянной битой. Его появление обычно слышно раньше, чем видно."
        }
      },
      {
        "id": "lirili-larila",
        "name": "Лирили Ларила",
        "role": "Слон-кактус из ботанической коллекции.",
        "desire": "Унести живые растения из сада, который хотят застеклить.",
        "flaw": "Считает каждый горшок обязательным пассажиром.",
        "arc": "Выбирает живой росток вместо тяжёлой витрины и помогает провести его наружу.",
        "comicEngine": "Слон-кактус, гибкий хобот, огромные сандалии. Тяжёлый, но точный; может удержать вещь, которую другие принимают за конструкцию.",
        "visual": {
          "id": "lirili-larila",
          "name": "Лирили Ларила",
          "sheet_position": "top-left",
          "locked_design": "Deep green ribbed cactus-elephant, ochre elephant head and ears, long trunk, small tusks, sparse spines, two massive brown double-strap sandals, tiny coin pouch; no humanoid arms; trunk manipulates objects",
          "publicDescription": "Слон-кактус в огромных сандалиях. Грубая сила и удивительно ловкий хобот."
        }
      },
      {
        "id": "brr-brr-patapim",
        "name": "Брр Брр Патапим",
        "role": "Древесный великан из одного живого экспоната.",
        "desire": "Вывести из коллекции собственный живой мир.",
        "flaw": "Слишком долго молча удерживает то, что уже нельзя спасти целиком.",
        "arc": "Сам показывает жизнеспособный путь и доверяет другим перенос хрупкого груза.",
        "comicEngine": "Носатый древесный силуэт, огромные стопы и корни. Не мгновенная лоза, а тяжёлая живая опора.",
        "visual": {
          "id": "brr-brr-patapim",
          "name": "Брр Брр Патапим",
          "sheet_position": "bottom-middle",
          "locked_design": "Woody tree merged with proboscis-monkey face, long drooping rounded nose, sleepy eyes, mossy canopy hair/shoulders, root arms and two enormous bare carved feet with rounded toes",
          "publicDescription": "Носатый лесной великан с корнями и огромными ступнями. Двигается медленно, замечает многое."
        }
      }
    ],
    "episodeMap": [],
    "appearances": [],
    "sheet": "assets/characters/brainrot-cameo-sheet-v1.png"
  },
  "cameoSheet": "assets/characters/brainrot-cameo-sheet-v1.webp",
  "cameoDesigns": [
    {
      "id": "lirili-larila",
      "name": "Лирили Ларила",
      "sheet_position": "top-left",
      "locked_design": "Deep green ribbed cactus-elephant, ochre elephant head and ears, long trunk, small tusks, sparse spines, two massive brown double-strap sandals, tiny coin pouch; no humanoid arms; trunk manipulates objects",
      "publicDescription": "Слон-кактус в огромных сандалиях. Грубая сила и удивительно ловкий хобот."
    },
    {
      "id": "tung-tung-sahur",
      "name": "Тунг-Тунг Сахур",
      "sheet_position": "top row second",
      "locked_design": "Tall honey-brown wooden log cylinder, carved huge eyes/nose/grin, skinny wooden limbs, broad carved feet, wooden bat, charcoal belt and small amber circular badge",
      "publicDescription": "Ожившее полено с деревянной битой. Его появление обычно слышно раньше, чем видно."
    },
    {
      "id": "ballerina-cappuccina",
      "name": "Балерина Капучина",
      "sheet_position": "top row third",
      "locked_design": "White ceramic cup-head with open cappuccino and latte heart, side handle, large brown eyes, slender dancer body, dusty rose tutu/leotard, turquoise tool belt, pink pointe shoes, brass tray; exactly two arms",
      "publicDescription": "Балерина с чашкой капучино вместо головы. Держит равновесие и не проливает кофе."
    },
    {
      "id": "cappuccino-assassino",
      "name": "Капучино Ассасино",
      "sheet_position": "top-right",
      "locked_design": "Takeaway paper coffee cup as central body, brown corrugated sleeve, dark plastic lid, black ninja headband and face wrap, narrowed amber eyes, short black limbs, two silver spoon-blades for package/cable cutting",
      "publicDescription": "Стакан кофе в экипировке ниндзя. Любую мелкую задачу выполняет с убийственной серьёзностью."
    },
    {
      "id": "tralalero-tralala",
      "name": "Тралалеро Тралала",
      "sheet_position": "bottom-left",
      "locked_design": "Horizontal blue-gray shark with white underbelly, dorsal fin/tail/gills, playful toothy grin, exactly three fin-legs wearing exactly three bright blue unbranded sneakers",
      "publicDescription": "Акула на трёх ногах в синих кроссовках. Третья нога то мешает, то спасает положение."
    },
    {
      "id": "brr-brr-patapim",
      "name": "Брр Брр Патапим",
      "sheet_position": "bottom-middle",
      "locked_design": "Woody tree merged with proboscis-monkey face, long drooping rounded nose, sleepy eyes, mossy canopy hair/shoulders, root arms and two enormous bare carved feet with rounded toes",
      "publicDescription": "Носатый лесной великан с корнями и огромными ступнями. Двигается медленно, замечает многое."
    },
    {
      "id": "bombardiro-crocodilo",
      "name": "Бомбардиро Крокодило",
      "sheet_position": "bottom-right",
      "locked_design": "Crocodile head fused into olive twin-propeller cargo plane fuselage, scaly long snout and yellow eyes, cockpit behind brow, complete wings/tail, landing wheels, freight crate; not a crocodile pilot",
      "publicDescription": "Крокодил-самолёт с двумя винтами. Выглядит грозно даже с обычным грузом."
    }
  ],
  "liraReference": "assets/characters/lira/approved-fullbody-reference.webp",
  "extraCastSheets": [
    {
      "title": "Коллекционер — хозяин живого музея",
      "path": "assets/characters/collector-r3-v1.webp"
    }
  ],
  "stats": {
    "scripts": 3,
    "boards": 3,
    "shots": 74,
    "images": 1
  }
}
