{
 "title": "Вниз по кроличьей норе",
 "description": "Алиса скучает на берегу реки, когда мимо пробегает Белый Кролик с карманными часами. Бросившись за ним, она падает в колодец и оказывается в зале с запертыми дверями, где её рост всё время меняется: то десять дюймов, то девять футов. Ключ остаётся на столике, дверца слишком мала, а пол вскоре заливает лужа её собственных слёз.",
 "quest_concept": "Алиса скучает на берегу реки, когда мимо пробегает Белый Кролик с карманными часами. Бросившись за ним, она падает в колодец и оказывается в зале с запертыми дверями, где её рост всё время меняется: то десять дюймов, то девять футов. Ключ остаётся на столике, дверца слишком мала, а пол вскоре заливает лужа её собственных слёз.",
 "story_description": "Алиса сидит на берегу реки рядом со скучающей сестрой и не знает, чем себя занять. Вдруг мимо пробегает Белый Кролик с карманными часами, бормоча, что опаздывает. Алиса бросается за ним, падает в колодец и оказывается в зале со множеством запертых дверей. Её рост постоянно меняется, а пол вскоре заливает лужа её собственных слёз. Алиса хочет выбраться из зала, попасть в чудесный сад и понять, что с ней происходит.",
 "player": {
  "start_location": "bereg_reki",
  "start_position": {
   "x": 3,
   "y": 0
  }
 },
 "characters": [
  {
   "name": "Алиса",
   "role": "protagonist",
   "archetype": "human_child_girl",
   "personality": "Любопытная и смелая девочка, которая не боится задавать вопросы и следовать за мечтой.",
   "speech_style": "Говорит прямо и наивно, часто удивляется и переспрашивает.",
   "description": "Девочка, главная героиня. Любопытная, благоразумная, склонна к размышлениям."
  },
  {
   "name": "Белый Кролик",
   "role": "npc",
   "archetype": "animal_mammal_rabbit",
   "personality": "Вечно опаздывающий и суетливый, но не злой; готов помочь, если его хорошо попросить.",
   "speech_style": "Бормочет под нос, часто повторяет «Ах, Боже мой! Я опаздываю!»"
  },
  {
   "name": "Мышь",
   "role": "npc",
   "archetype": "animal_mammal_mouse",
   "personality": "Обидчивая и серьёзная, не любит кошек и собак, но ценит внимание к своей персоне.",
   "speech_style": "Говорит с достоинством, любит рассказывать длинные истории и обижается на грубые слова."
  },
  {
   "name": "Сестра",
   "role": "npc",
   "archetype": "human_adult_female",
   "personality": "Спокойная и погружённая в чтение, не замечает скуки Алисы.",
   "speech_style": "Отвечает рассеянно и односложно, не отрываясь от книги."
  }
 ],
 "locations": [
  {
   "name": "Берег реки",
   "description": "Травяной берег реки, где Алиса сидит с сестрой и её книгой без картинок и разговоров.",
   "area": "зона",
   "entities": [
    {
     "name": "Сестра",
     "is_agent": true,
     "description": "Сестра Алисы, читающая скучную книгу и не замечающая её скуки.",
     "interact_hint": "Сестра — поговорить",
     "dialogues": [
      13,
      9,
      10,
      11,
      12,
      6,
      7,
      8
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": 23,
        "not": {
         "objective_completed": 2
        }
       },
       "dialogues": [
        13
       ]
      },
      {
       "conditions": {
        "objective_completed": 1,
        "not": {
         "objective_completed": 2
        }
       },
       "dialogues": [
        9,
        10,
        11,
        12
       ]
      }
     ],
     "character": "Сестра",
     "archetype": "human_adult_female",
     "id": "bereg_reki_sestra",
     "on_interact": {}
    },
    {
     "name": "Книга сестры",
     "is_agent": false,
     "description": "Книга без картинок и разговоров, которую читает сестра.",
     "inspect_text": "Ты открываешь книгу, но там нет ни картинок, ни разговоров. Скучно!",
     "interact_hint": "Книга сестры — осмотреть",
     "dialogues": [
      14,
      15,
      16,
      17
     ],
     "type": "decor_book",
     "id": "bereg_reki_kniga_sestry",
     "conditional_dialogues": [],
     "on_interact": {}
    },
    {
     "id": "atm_bereg_reki_travyanoy_bereg",
     "name": "Травяной берег",
     "type": "tall_grass",
     "is_agent": false,
     "description": "Мягкая зелёная трава на берегу реки.",
     "inspect_text": "Трава мягкая и зелёная, по ней приятно бегать босиком.",
     "action_description": "",
     "interact_hint": "Травяной берег — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Мягкая зелёная трава на берегу реки."
     }
    },
    {
     "id": "atm_bereg_reki_reka",
     "name": "Река",
     "type": "forest_river",
     "is_agent": false,
     "description": "Спокойная река, текущая мимо берега.",
     "inspect_text": "Вода в реке тихо журчит и блестит на солнце.",
     "action_description": "",
     "interact_hint": "Река — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Спокойная река, текущая мимо берега."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "clearing",
    "setting": "outdoor_natural",
    "style": "rustic",
    "mood": "peaceful"
   },
   "id": "bereg_reki",
   "exits": [
    {
     "to": "nora_pod_izgorodyu",
     "direction": "forward",
     "exit_type": "path",
     "label": "-> Нора под изгородью",
     "action_label": "Побежать за Кроликом через поле к норе под изгородью",
     "pass_condition": {
      "objective_completed": [
       1
      ]
     },
     "fail_dialogues": [
      1
     ],
     "visual_variant": "hedge_tunnel",
     "pass_refusals": [
      {
       "text": "Бежать за Кроликом рано: сначала стоит избавиться от скуки и заглянуть в книгу сестры.",
       "conditions": {
        "not": {
         "objective_completed": 1
        }
       }
      }
     ]
    }
   ],
   "triggers": [],
   "loc_type": "outdoor",
   "rooms_layout": {
    "vibe": "тихий скучный полдень",
    "description": "Солнечная поляна с мягкой травой и цветами",
    "view_type": "side",
    "wall_theme": "dirt",
    "floor_theme": "grass",
    "wall_decor": [],
    "ceiling_decor": [],
    "floor_items": [
     {
      "type": "tall_grass",
      "name": "Высокая трава",
      "x": 18
     },
     {
      "type": "wildflower_patch",
      "name": "Цветы",
      "x": 28
     },
     {
      "type": "willow_tree",
      "name": "Ива",
      "x": 38
     },
     {
      "type": "park_bench",
      "name": "Скамья",
      "x": 48
     },
     {
      "type": "dirt_path",
      "name": "Тропинка",
      "x": 58
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "grass",
      "wall_theme": "dirt",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_items": [
     {
      "type": "forest_river",
      "name": "Река",
      "x": 8
     },
     {
      "type": "tall_grass",
      "name": "Высокая трава",
      "x": 18
     },
     {
      "type": "wildflower_patch",
      "name": "Цветы",
      "x": 28
     },
     {
      "type": "willow_tree",
      "name": "Ива",
      "x": 38
     },
     {
      "type": "park_bench",
      "name": "Скамья",
      "x": 48
     },
     {
      "type": "dirt_path",
      "name": "Тропинка",
      "x": 58
     }
    ],
    "decor_pool": [
     "forest_river",
     "tall_grass",
     "wildflower_patch",
     "willow_tree",
     "park_bench",
     "dirt_path"
    ]
   },
   "bg_color": "#6a9a5a",
   "wall_theme": "dirt",
   "floor_theme": "grass"
  },
  {
   "name": "Нора под изгородью",
   "description": "Подземный ход под изгородью: сначала ровный, как туннель, а потом круто обрывающийся вниз.",
   "area": "нора",
   "entities": [
    {
     "id": "atm_nora_pod_izgorodyu_kucha_sukhikh_listev",
     "name": "Куча сухих листьев",
     "type": "autumn_leaves",
     "is_agent": false,
     "description": "Мягкая куча листьев и хвороста на дне колодца.",
     "inspect_text": "Алиса приземлилась на кучу сухих листьев и хвороста.",
     "action_description": "",
     "interact_hint": "Куча сухих листьев — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Мягкая куча листьев и хвороста на дне колодца."
     }
    },
    {
     "id": "atm_nora_pod_izgorodyu_lampy_pod_potolkom",
     "name": "Лампы под потолком",
     "type": "corridor_lamp",
     "is_agent": false,
     "description": "Ряд ламп, освещающих длинный зал.",
     "inspect_text": "Длинный низкий зал освещён рядом ламп, висящих под потолком.",
     "action_description": "",
     "interact_hint": "Лампы под потолком — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Ряд ламп, освещающих длинный зал."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "setting": "underground",
    "style": "rustic",
    "mood": "mysterious",
    "function": "other"
   },
   "id": "nora_pod_izgorodyu",
   "exits": [
    {
     "to": "bereg_reki",
     "direction": "back",
     "exit_type": "passage",
     "label": "-> Берег реки",
     "action_label": "Выбраться назад на берег реки",
     "visual_variant": "cave_passage"
    },
    {
     "to": "kolodets",
     "direction": "forward",
     "exit_type": "hole",
     "label": "-> Колодец",
     "action_label": "Сорваться в обрыв норы и полететь вниз",
     "pass_condition": {
      "objective_completed": [
       3
      ]
     },
     "fail_dialogues": [
      2
     ],
     "visual_variant": "sinkhole",
     "pass_refusals": [
      {
       "text": "В тёмный провал лучше не соваться, не разобравшись, куда он ведёт.",
       "conditions": {
        "not": {
         "objective_completed": 3
        }
       }
      }
     ]
    }
   ],
   "triggers": [
    {
     "id": "build_trigger_3",
     "type": "enter_location",
     "target": "nora_pod_izgorodyu",
     "objective_id": 3,
     "conditions": {
      "objective_completed": [
       1
      ]
     }
    }
   ],
   "loc_type": "cave",
   "rooms_layout": {
    "vibe": "тёмный земляной ход",
    "description": "Сырое подземелье с тусклым светом факелов",
    "view_type": "side",
    "wall_theme": "dirt",
    "floor_theme": "dirt",
    "wall_decor": [],
    "ceiling_decor": [
     "spider_cobwebs"
    ],
    "floor_items": [
     {
      "type": "roots",
      "name": "Корни",
      "x": 8
     },
     {
      "type": "puddle",
      "name": "Лужа",
      "x": 18
     },
     {
      "type": "fallen_log",
      "name": "Бревно",
      "x": 28
     },
     {
      "type": "mossy_stump",
      "name": "Пень",
      "x": 38
     },
     {
      "type": "dirt_path",
      "name": "Тропинка",
      "x": 48
     },
     {
      "type": "tall_grass",
      "name": "Высокая трава",
      "x": 58
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "dirt",
      "wall_theme": "dirt",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_pool": [
     "roots",
     "puddle",
     "fallen_log",
     "mossy_stump",
     "dirt_path",
     "tall_grass"
    ]
   },
   "bg_color": "#3a3020",
   "wall_theme": "dirt",
   "floor_theme": "dirt"
  },
  {
   "name": "Колодец",
   "description": "Глубокий колодец, стены которого уставлены шкафами, книжными полками, картами и картинами.",
   "area": "колодец",
   "entities": [
    {
     "name": "Книжные полки",
     "is_agent": false,
     "description": "Полки и шкафы вдоль стен колодца, кое-где с картами и картинами.",
     "interact_hint": "Книжные полки — осмотреть",
     "dialogues": [
      20,
      21,
      18,
      19
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": 4
       },
       "dialogues": [
        20,
        21
       ]
      }
     ],
     "on_interact": {
      "type": "spawn_item",
      "item_id": "kolodets_banka_s_varenem",
      "item_name": "Банка с вареньем",
      "item_description": "Банка с надписью «АПЕЛЬСИНОВОЕ», но внутри пусто.",
      "item_type": "honey_jar",
      "use_effect": {
       "type": "complete_objective",
       "objective_id": 6,
       "target_type": "global",
       "apply_to": "self",
       "conditions": {
        "objective_completed": [
         4
        ]
       }
      },
      "conditions": {
       "objective_completed": [
        4
       ]
      }
     },
     "type": "oak_bookshelf",
     "id": "kolodets_knizhnye_polki"
    },
    {
     "id": "atm_kolodets_karty_i_kartiny",
     "name": "Карты и картины",
     "type": "wall_map",
     "is_agent": false,
     "description": "На стенах колодца висят карты и картины.",
     "inspect_text": "На стенах колодца висят карты и картины.",
     "action_description": "",
     "interact_hint": "Карты и картины — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "На стенах колодца висят карты и картины."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "other",
    "setting": "underground",
    "style": "victorian",
    "mood": "mysterious"
   },
   "id": "kolodets",
   "exits": [
    {
     "to": "nora_pod_izgorodyu",
     "direction": "back",
     "exit_type": "hole",
     "label": "-> Нора под изгородью",
     "action_label": "Подняться обратно к норе под изгородью",
     "visual_variant": "sinkhole"
    },
    {
     "to": "zal_so_mnozhestvom_dverey",
     "direction": "forward",
     "exit_type": "door",
     "label": "-> Зал со множеством дверей",
     "action_label": "Упасть на кучу сухих листьев и хвороста",
     "pass_condition": {
      "objective_completed": [
       6
      ]
     },
     "fail_dialogues": [
      3
     ],
     "visual_variant": "iron_door",
     "pass_refusals": [
      {
       "text": "Вниз лететь пока нельзя: банка с вареньем всё ещё на полке.",
       "conditions": {
        "not": {
         "objective_completed": 6
        }
       }
      }
     ]
    }
   ],
   "triggers": [
    {
     "id": "build_trigger_4",
     "type": "enter_location",
     "target": "kolodets",
     "objective_id": 4,
     "conditions": {
      "objective_completed": [
       3
      ]
     }
    },
    {
     "id": "build_trigger_6",
     "type": "use_item",
     "target": "kolodets_banka_s_varenem",
     "objective_id": 6,
     "conditions": {}
    }
   ],
   "loc_type": "cave",
   "rooms_layout": {
    "vibe": "глубокий странный колодец",
    "description": "Роскошный викторианский зал с тяжёлыми портьерами",
    "view_type": "side",
    "wall_theme": "wood",
    "floor_theme": "dirt",
    "wall_decor": [
     {
      "type": "wall_map",
      "name": "Карта на стене",
      "x": 7
     },
     {
      "type": "landscape_painting",
      "name": "Картина",
      "x": 19
     },
     {
      "type": "wooden_shelf",
      "name": "Полка",
      "x": 31
     },
     {
      "type": "picture_frame",
      "name": "Фоторамка",
      "x": 43
     }
    ],
    "ceiling_decor": [
     "chandelier"
    ],
    "floor_items": [
     {
      "type": "oak_bookshelf",
      "name": "Книжный шкаф",
      "x": 10
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "dirt",
      "wall_theme": "wood",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_pool": [
     "oak_bookshelf",
     "wall_map",
     "landscape_painting",
     "wooden_shelf",
     "picture_frame"
    ]
   },
   "bg_color": "#8B0000",
   "wall_theme": "wood",
   "floor_theme": "dirt"
  },
  {
   "name": "Зал со множеством дверей",
   "description": "Просторный зал с низким потолком, кучей сухих листьев и множеством запертых дверей по стенам.",
   "area": "здание",
   "entities": [
    {
     "id": "atm_zal_so_mnozhestvom_dverey_kucha_sukhikh_listev",
     "name": "Куча сухих листьев",
     "type": "autumn_leaves",
     "is_agent": false,
     "description": "Мягкая куча сухих листьев и хвороста на полу.",
     "inspect_text": "Алиса приземлилась на кучу сухих листьев и хвороста.",
     "action_description": "",
     "interact_hint": "Куча сухих листьев — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Мягкая куча сухих листьев и хвороста на полу."
     }
    },
    {
     "id": "atm_zal_so_mnozhestvom_dverey_ryad_lamp_pod_potolkom",
     "name": "Ряд ламп под потолком",
     "type": "chandelier",
     "is_agent": false,
     "description": "Лампы, освещающие длинный низкий зал.",
     "inspect_text": "Зал освещён рядом ламп, висящих под потолком.",
     "action_description": "",
     "interact_hint": "Ряд ламп под потолком — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Лампы, освещающие длинный низкий зал."
     }
    },
    {
     "id": "atm_zal_so_mnozhestvom_dverey_zanaveska",
     "name": "Занавеска",
     "type": "window_curtain",
     "is_agent": false,
     "description": "Занавеска, скрывающая маленькую дверцу.",
     "inspect_text": "За занавеской видна маленькая дверца высотой около пятнадцати дюймов.",
     "action_description": "",
     "interact_hint": "Занавеска — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Занавеска, скрывающая маленькую дверцу."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "corridor",
    "setting": "interior",
    "style": "victorian",
    "mood": "tense"
   },
   "id": "zal_so_mnozhestvom_dverey",
   "exits": [
    {
     "to": "kolodets",
     "direction": "back",
     "exit_type": "door",
     "label": "-> Колодец",
     "action_label": "Заглянуть вверх, в тёмный провал колодца",
     "visual_variant": "wooden_door"
    },
    {
     "to": "dlinnyy_zal_s_lampami",
     "direction": "forward",
     "exit_type": "door",
     "label": "-> Длинный зал с лампами",
     "action_label": "Броситься за Кроликом по коридору",
     "pass_condition": {
      "objective_completed": [
       7
      ]
     },
     "fail_dialogues": [
      4
     ],
     "visual_variant": "wooden_door",
     "pass_refusals": [
      {
       "text": "За Кроликом по коридору — но сначала надо осмотреться в этом зале.",
       "conditions": {
        "not": {
         "objective_completed": 7
        }
       }
      }
     ]
    }
   ],
   "triggers": [
    {
     "id": "build_trigger_7",
     "type": "enter_location",
     "target": "zal_so_mnozhestvom_dverey",
     "objective_id": 7,
     "conditions": {
      "objective_completed": [
       6
      ]
     }
    }
   ],
   "loc_type": "indoor",
   "rooms_layout": {
    "vibe": "запертый зал с дверями",
    "description": "Тёмный коридор викторианского особняка с портретами на стенах",
    "view_type": "side",
    "wall_theme": "wallpaper",
    "floor_theme": "wooden",
    "wall_decor": [
     {
      "type": "wall_mirror",
      "name": "Зеркало",
      "x": 5
     },
     {
      "type": "crack",
      "name": "Трещина",
      "x": 21
     },
     {
      "type": "spider_cobwebs",
      "name": "Паутина",
      "x": 37
     }
    ],
    "ceiling_decor": [
     "chandelier"
    ],
    "floor_items": [
     {
      "type": "wooden_cabinet",
      "name": "Шкафчик",
      "x": 23
     },
     {
      "type": "stone_column",
      "name": "Каменная колонна",
      "x": 38
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "wooden",
      "wall_theme": "wallpaper",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_items": [
     {
      "type": "autumn_leaves",
      "name": "Листья",
      "x": 8
     },
     {
      "type": "wooden_cabinet",
      "name": "Шкафчик",
      "x": 23
     },
     {
      "type": "stone_column",
      "name": "Каменная колонна",
      "x": 38
     },
     {
      "type": "wall_mirror",
      "name": "Зеркало",
      "x": 5
     },
     {
      "type": "crack",
      "name": "Трещина",
      "x": 21
     },
     {
      "type": "spider_cobwebs",
      "name": "Паутина",
      "x": 37
     }
    ],
    "decor_pool": [
     "autumn_leaves",
     "wooden_cabinet",
     "stone_column",
     "wall_mirror",
     "crack",
     "spider_cobwebs"
    ]
   },
   "bg_color": "#4A3728",
   "wall_theme": "wallpaper",
   "floor_theme": "wooden"
  },
  {
   "name": "Длинный зал с лампами",
   "description": "Длинный низкий зал с рядом ламп под потолком, стеклянным столиком и занавеской, за которой прячется маленькая дверца.",
   "area": "здание",
   "entities": [
    {
     "name": "Белый Кролик",
     "is_agent": true,
     "description": "Белый Кролик с красными глазами, в жилете, с часами и веером, вечно опаздывающий к Герцогине.",
     "interact_hint": "Белый Кролик — поговорить",
     "dialogues": [
      34,
      29,
      35,
      36,
      30,
      31,
      32,
      33,
      25,
      26,
      27,
      28,
      22,
      23,
      24
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": 25,
        "not": {
         "objective_completed": 16
        }
       },
       "dialogues": [
        34
       ]
      },
      {
       "conditions": {
        "objective_completed": 24,
        "not": {
         "objective_completed": 10
        }
       },
       "dialogues": [
        29
       ]
      },
      {
       "conditions": {
        "objective_completed": 16
       },
       "dialogues": [
        35,
        36
       ]
      },
      {
       "conditions": {
        "objective_completed": [
         14,
         15
        ],
        "not": {
         "objective_completed": 16
        }
       },
       "dialogues": [
        30,
        31,
        32,
        33
       ]
      },
      {
       "conditions": {
        "objective_completed": 9,
        "not": {
         "objective_completed": 10
        }
       },
       "dialogues": [
        25,
        26,
        27,
        28
       ]
      }
     ],
     "character": "Белый Кролик",
     "archetype": "animal_mammal_rabbit",
     "id": "dlinnyy_zal_s_lampami_belyy_krolik",
     "on_interact": {}
    },
    {
     "name": "Стеклянный столик",
     "is_agent": false,
     "description": "Стеклянный столик посреди зала на скользкой ножке: на нём ключик и бутылочка, под ним — коробочка.",
     "inspect_text": "На столике лежат маленький золотой ключик и бутылочка с надписью «ВЫПЕЙ МЕНЯ».",
     "interact_hint": "Стеклянный столик — осмотреть",
     "dialogues": [
      39,
      40,
      37,
      38
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": [
         12,
         14
        ]
       },
       "dialogues": [
        39,
        40
       ]
      }
     ],
     "on_interact": {
      "type": "spawn_item",
      "items": [
       {
        "item_id": "dlinnyy_zal_s_lampami_zolotoy_klyuchik",
        "item_name": "Золотой ключик",
        "item_description": "Маленький золотой ключик счастья из зала: подходит только к дверце высотой в пятнадцать дюймов.",
        "item_type": "iron_key",
        "use_effect": {
         "type": "unlock_exit",
         "target_type": "exit",
         "target_id": "chudesnyy_sad",
         "conditions": {
          "objective_completed": [
           9
          ]
         }
        },
        "conditions": {
         "objective_completed": [
          8
         ]
        }
       },
       {
        "item_id": "dlinnyy_zal_s_lampami_butylochka_vypey_menya",
        "item_name": "Бутылочка «ВЫПЕЙ МЕНЯ»",
        "item_description": "Бутылочка без этикетки с бумажкой «ВЫПЕЙ МЕНЯ»; жидкость на вкус как вишнёвый пирог с кремом и уменьшает выпившего.",
        "item_type": "glass_bottle",
        "use_effect": {
         "type": "complete_objective",
         "objective_id": 12,
         "target_type": "global",
         "apply_to": "self",
         "conditions": {
          "objective_completed": [
           10
          ]
         }
        },
        "conditions": {
         "objective_completed": [
          10
         ]
        }
       }
      ]
     },
     "type": "wooden_table",
     "id": "dlinnyy_zal_s_lampami_steklyannyy_stolik"
    },
    {
     "name": "Стеклянная коробочка",
     "is_agent": false,
     "description": "Маленькая стеклянная коробочка под столиком, в которой лежит пирожок.",
     "inspect_text": "В коробочке лежит пирожок с надписью «СЪЕШЬ МЕНЯ».",
     "interact_hint": "Стеклянная коробочка — осмотреть",
     "dialogues": [
      43,
      44,
      41,
      42
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": 15
       },
       "dialogues": [
        43,
        44
       ]
      }
     ],
     "on_interact": {
      "type": "spawn_item",
      "item_id": "dlinnyy_zal_s_lampami_pirozhok_sesh_menya",
      "item_name": "Пирожок «СЪЕШЬ МЕНЯ»",
      "item_description": "Пирожок с надписью «СЪЕШЬ МЕНЯ», от которого Алиса мгновенно вырастает.",
      "item_type": "bread_loaf",
      "use_effect": {
       "type": "complete_objective",
       "objective_id": 14,
       "target_type": "global",
       "apply_to": "self",
       "conditions": {
        "objective_completed": [
         12
        ]
       }
      },
      "conditions": {
       "objective_completed": [
        12
       ]
      }
     },
     "type": "display_case",
     "id": "dlinnyy_zal_s_lampami_steklyannaya_korobochka"
    },
    {
     "id": "atm_dlinnyy_zal_s_lampami_ryad_lamp_pod_potolkom",
     "name": "Ряд ламп под потолком",
     "type": "chandelier",
     "is_agent": false,
     "description": "Длинный низкий зал освещён рядом ламп, висящих под потолком.",
     "inspect_text": "Лампы под потолком освещают длинный низкий зал.",
     "action_description": "",
     "interact_hint": "Ряд ламп под потолком — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Длинный низкий зал освещён рядом ламп, висящих под потолком."
     }
    },
    {
     "id": "atm_dlinnyy_zal_s_lampami_zanaveska",
     "name": "Занавеска",
     "type": "window_curtain",
     "is_agent": false,
     "description": "Занавеска, за которой прячется маленькая дверца.",
     "inspect_text": "За занавеской скрывается маленькая дверца высотой около пятнадцати дюймов.",
     "action_description": "",
     "interact_hint": "Занавеска — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Занавеска, за которой прячется маленькая дверца."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "corridor",
    "setting": "interior",
    "style": "victorian",
    "mood": "mysterious"
   },
   "id": "dlinnyy_zal_s_lampami",
   "exits": [
    {
     "to": "zal_so_mnozhestvom_dverey",
     "direction": "back",
     "exit_type": "door",
     "label": "-> Зал со множеством дверей",
     "action_label": "Вернуться в прежний зал с дверями",
     "visual_variant": "wooden_door"
    },
    {
     "to": "chudesnyy_sad",
     "direction": "forward",
     "exit_type": "door",
     "label": "-> Чудесный сад",
     "action_label": "Отпереть маленькую дверцу золотым ключиком",
     "locked": true,
     "pass_condition": {
      "objective_completed": [
       9,
       12
      ]
     },
     "fail_dialogues": [
      0
     ],
     "visual_variant": "wooden_door",
     "pass_refusals": [
      {
       "text": "Дверца заперта: сначала надо заполучить золотой ключик.",
       "conditions": {
        "not": {
         "objective_completed": 9
        }
       }
      },
      {
       "text": "Дверца мала: даже с ключом не пролезть, пока не уменьшишься.",
       "conditions": {
        "not": {
         "objective_completed": 12
        }
       }
      }
     ]
    },
    {
     "to": "luzha_slez",
     "direction": "forward",
     "exit_type": "archway",
     "label": "-> Лужа слёз",
     "action_label": "Исчезнуть и очутиться в воде",
     "pass_condition": {
      "objective_completed": [
       18
      ]
     },
     "fail_dialogues": [
      5
     ],
     "visual_variant": "wooden_arch",
     "pass_refusals": [
      {
       "text": "Вода в зале пока не разлилась: не отчего исчезнуть.",
       "conditions": {
        "not": {
         "objective_completed": 18
        }
       }
      }
     ]
    }
   ],
   "triggers": [
    {
     "id": "build_trigger_8",
     "type": "enter_location",
     "target": "dlinnyy_zal_s_lampami",
     "objective_id": 8,
     "conditions": {
      "objective_completed": [
       7
      ]
     }
    },
    {
     "id": "build_trigger_13",
     "type": "use_item",
     "target": "dlinnyy_zal_s_lampami_pirozhok_sesh_menya",
     "objective_id": 14,
     "conditions": {}
    },
    {
     "id": "build_trigger_16",
     "type": "pickup_item",
     "target": "dlinnyy_zal_s_lampami_veer",
     "objective_id": 17,
     "conditions": {}
    },
    {
     "id": "build_trigger_17",
     "type": "use_item",
     "target": "dlinnyy_zal_s_lampami_veer",
     "objective_id": 18,
     "conditions": {}
    },
    {
     "id": "build_trigger_20",
     "type": "use_item",
     "target": "dlinnyy_zal_s_lampami_zolotoy_klyuchik",
     "objective_id": 22,
     "conditions": {}
    }
   ],
   "loc_type": "indoor",
   "rooms_layout": {
    "vibe": "длинный зал с лампами",
    "description": "Тёмный коридор викторианского особняка с портретами на стенах",
    "view_type": "side",
    "wall_theme": "wallpaper",
    "floor_theme": "wooden",
    "wall_decor": [
     {
      "x": 8,
      "type": "landscape_painting",
      "name": "Картина"
     },
     {
      "x": 24,
      "type": "iron_torch",
      "name": "Факел"
     },
     {
      "x": 40,
      "type": "wall_mirror",
      "name": "Зеркало"
     }
    ],
    "ceiling_decor": [
     "chandelier"
    ],
    "floor_items": [
     {
      "x": 14,
      "type": "woven_carpet",
      "name": "Ковёр"
     },
     {
      "x": 24,
      "type": "wooden_crate",
      "name": "Ящик"
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "wooden",
      "wall_theme": "wallpaper",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_items": []
   },
   "bg_color": "#4A3728",
   "wall_theme": "wallpaper",
   "floor_theme": "wooden"
  },
  {
   "name": "Чудесный сад",
   "description": "Сад за маленькой дверцей: яркие цветы и прохладные фонтаны.",
   "area": "зона",
   "entities": [
    {
     "id": "atm_chudesnyy_sad_yarkie_tsvety",
     "name": "Яркие цветы",
     "type": "wildflower_patch",
     "is_agent": false,
     "description": "Пёстрые клумбы, наполняющие сад красками.",
     "inspect_text": "Алиса увидела чудесный сад, где росли яркие цветы.",
     "action_description": "",
     "interact_hint": "Яркие цветы — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Пёстрые клумбы, наполняющие сад красками."
     }
    },
    {
     "id": "atm_chudesnyy_sad_prokhladnye_fontany",
     "name": "Прохладные фонтаны",
     "type": "stone_fountain",
     "is_agent": false,
     "description": "Струи воды, дающие свежесть в жарком воздухе.",
     "inspect_text": "Среди цветов били прохладные фонтаны.",
     "action_description": "",
     "interact_hint": "Прохладные фонтаны — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Струи воды, дающие свежесть в жарком воздухе."
     }
    },
    {
     "id": "atm_chudesnyy_sad_zanaveska",
     "name": "Занавеска",
     "type": "window_curtain",
     "is_agent": false,
     "description": "Ткань, скрывающая вход в сад.",
     "inspect_text": "Алиса заметила занавеску, которой раньше не видела.",
     "action_description": "",
     "interact_hint": "Занавеска — осмотреть",
     "dialogues": [],
     "conditional_dialogues": [],
     "on_interact": {
      "type": "show_description",
      "description": "Ткань, скрывающая вход в сад."
     }
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "garden",
    "setting": "outdoor_natural",
    "style": "fairytale",
    "mood": "cheerful"
   },
   "id": "chudesnyy_sad",
   "exits": [
    {
     "to": "dlinnyy_zal_s_lampami",
     "direction": "back",
     "exit_type": "gate",
     "label": "-> Длинный зал с лампами",
     "action_label": "Снова оказаться у маленькой дверцы в зале",
     "visual_variant": "vine_gate"
    }
   ],
   "triggers": [],
   "loc_type": "outdoor",
   "rooms_layout": {
    "vibe": "яркий прохладный сад",
    "description": "Солнечный берег реки в сказочном мире",
    "view_type": "side",
    "wall_theme": "dirt",
    "floor_theme": "grass",
    "wall_decor": [
     {
      "type": "rose_trellis",
      "name": "Шпалера для роз",
      "x": 5
     }
    ],
    "ceiling_decor": [],
    "floor_items": [
     {
      "type": "japanese_bridge",
      "name": "Японский мост",
      "x": 28
     },
     {
      "type": "koi_pond",
      "name": "Пруд с карпами",
      "x": 38
     },
     {
      "type": "stone_lantern",
      "name": "Каменный фонарь",
      "x": 48
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "grass",
      "wall_theme": "dirt",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_items": [
     {
      "type": "stone_fountain",
      "name": "Фонтан",
      "x": 8
     },
     {
      "type": "rose_trellis",
      "name": "Шпалера для роз",
      "x": 5
     },
     {
      "type": "wildflower_patch",
      "name": "Цветы",
      "x": 18
     },
     {
      "type": "japanese_bridge",
      "name": "Японский мост",
      "x": 28
     },
     {
      "type": "koi_pond",
      "name": "Пруд с карпами",
      "x": 38
     },
     {
      "type": "stone_lantern",
      "name": "Каменный фонарь",
      "x": 48
     }
    ],
    "decor_pool": [
     "stone_fountain",
     "rose_trellis",
     "wildflower_patch",
     "japanese_bridge",
     "koi_pond",
     "stone_lantern"
    ]
   },
   "bg_color": "#87CEEB",
   "wall_theme": "dirt",
   "floor_theme": "grass"
  },
  {
   "name": "Лужа слёз",
   "description": "Солёное море слёз, которое Алиса наплакала, когда была ростом девять футов.",
   "area": "зона",
   "entities": [
    {
     "name": "Мышь",
     "is_agent": true,
     "description": "Мышь, барахтающаяся в солёной воде; ненавидит кошек и собак и готова рассказать свою историю.",
     "interact_hint": "Мышь — поговорить",
     "dialogues": [
      51,
      48,
      52,
      49,
      50,
      45,
      46,
      47
     ],
     "conditional_dialogues": [
      {
       "conditions": {
        "objective_completed": 26,
        "not": {
         "objective_completed": 20
        }
       },
       "dialogues": [
        51
       ]
      },
      {
       "conditions": {
        "objective_completed": 19,
        "not": {
         "objective_completed": 20
        }
       },
       "dialogues": [
        48,
        52,
        49,
        50
       ]
      }
     ],
     "character": "Мышь",
     "archetype": "animal_mammal_mouse",
     "id": "luzha_slez_mysh",
     "on_interact": {}
    }
   ],
   "items": [],
   "atmosphere_objects": [],
   "room_classification": {
    "function": "other",
    "setting": "outdoor_natural",
    "style": "fairytale",
    "mood": "melancholic"
   },
   "id": "luzha_slez",
   "exits": [
    {
     "to": "dlinnyy_zal_s_lampami",
     "direction": "back",
     "exit_type": "archway",
     "label": "-> Длинный зал с лампами",
     "action_label": "Выбраться из воды обратно в зал",
     "visual_variant": "living_arch"
    }
   ],
   "triggers": [
    {
     "id": "build_trigger_18",
     "type": "enter_location",
     "target": "luzha_slez",
     "objective_id": 19,
     "conditions": {
      "objective_completed": [
       18
      ]
     }
    }
   ],
   "loc_type": "outdoor",
   "rooms_layout": {
    "vibe": "солёное море слёз",
    "description": "Солнечный берег реки в сказочном мире",
    "view_type": "side",
    "wall_theme": "dirt",
    "floor_theme": "mud",
    "wall_decor": [
     {
      "type": "sea_foam",
      "name": "Морская пена",
      "x": 5
     }
    ],
    "ceiling_decor": [],
    "floor_items": [
     {
      "type": "puddle",
      "name": "Лужа",
      "x": 8
     },
     {
      "type": "ripples",
      "name": "Рябь",
      "x": 18
     },
     {
      "type": "underwater_plant",
      "name": "Водоросль",
      "x": 28
     },
     {
      "type": "underwater_rock",
      "name": "Подводный камень",
      "x": 38
     },
     {
      "type": "water_cooler",
      "name": "Кулер для воды",
      "x": 48
     }
    ],
    "rooms": [
     {
      "x": 5,
      "width": 8,
      "height": 4,
      "floor_theme": "mud",
      "wall_theme": "dirt",
      "description": "Основная часть комнаты"
     }
    ],
    "doors": [
     {
      "x": 0,
      "side": "left"
     },
     {
      "x": 59,
      "side": "right"
     }
    ],
    "decor_pool": [
     "puddle",
     "ripples",
     "sea_foam",
     "underwater_plant",
     "underwater_rock",
     "water_cooler"
    ]
   },
   "bg_color": "#87CEEB",
   "wall_theme": "dirt",
   "floor_theme": "mud"
  }
 ],
 "completion": {
  "title": "Спасение в слезах",
  "description": "Алиса удерживается на воде в луже слёз и дожидается истории Мыши. Она понимает, что даже в самом странном месте можно найти собеседника и выбраться.",
  "endings": [
   {
    "state": "consequences",
    "conditions": {
     "any": [
      {
       "objective_completed": 23
      },
      {
       "objective_completed": 24
      },
      {
       "objective_completed": 25
      },
      {
       "objective_completed": 26
      }
     ]
    },
    "title": "Обидные слова",
    "description": "Алиса не раз говорила не то, что следовало: задела Мышь разговорами о кошках и собаках, поспешила с вопросами. Собеседники запомнили это, и выбраться из лужи оказалось труднее, но Алиса всё же дождалась истории Мыши."
   },
   {
    "state": "detour",
    "conditions": {
     "any": [
      {
       "objective_completed": 11
      }
     ]
    },
    "title": "Помощь Кролика",
    "description": "Алиса не стала искать ключ сама, а попросила Белого Кролика отпереть дверцу в сад. Кролик, вечно спешащий, всё же помог ей, и она оказалась в чудесном саду, а после — в луже слёз, где и дождалась истории Мыши."
   },
   {
    "state": "bonus",
    "conditions": {
     "any": [
      {
       "objective_completed": 2
      },
      {
       "objective_completed": 5
      },
      {
       "objective_completed": 13
      }
     ]
    },
    "title": "Любопытство вознаграждено",
    "description": "Алиса не прошла мимо скучной книги сестры, разглядела карты и картины на полках колодца и заметила коробочку под столиком. Любопытство помогло ей лучше понять этот странный мир, и в луже слёз она наконец дождалась истории Мыши."
   }
  ],
  "final_objective_id": 21
 },
 "objectives": [
  {
   "id": 1,
   "description": "Избавиться от скуки: есть ли в книге сестры что-то занятное?",
   "type": "dialogue",
   "dependencies": [],
   "on_complete": [],
   "story_task": "Спастись от скуки на берегу реки",
   "target": "bereg_reki_kniga_sestry"
  },
  {
   "id": 2,
   "description": "Спросить сестру, о чём её книга",
   "type": "dialogue",
   "dependencies": [
    1
   ],
   "on_complete": [],
   "story_task": "Спастись от скуки на берегу реки",
   "target": "bereg_reki_sestra",
   "optional": true
  },
  {
   "id": 3,
   "description": "Не упустить Кролика с часами и узнать, куда он бежит",
   "type": "exploration",
   "dependencies": [],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "nora_pod_izgorodyu"
  },
  {
   "id": 4,
   "description": "Понять, куда ведёт провал, и не разбиться",
   "type": "exploration",
   "dependencies": [
    3
   ],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "kolodets"
  },
  {
   "id": 5,
   "description": "Разглядеть карты и картины на полках",
   "type": "dialogue",
   "dependencies": [
    4
   ],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "kolodets_knizhnye_polki",
   "optional": true
  },
  {
   "id": 6,
   "description": "Уберечь банку, чтобы никого внизу не убить",
   "type": "use_item",
   "dependencies": [
    4
   ],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "kolodets_banka_s_varenem"
  },
  {
   "id": 7,
   "description": "Разобраться, где она оказалась после падения",
   "type": "exploration",
   "dependencies": [],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "zal_so_mnozhestvom_dverey"
  },
  {
   "id": 8,
   "description": "Догнать Кролика, пока он не скрылся за углом",
   "type": "exploration",
   "dependencies": [
    7
   ],
   "on_complete": [],
   "story_task": "Проследить за Белым Кроликом и узнать, куда он спешит",
   "target": "dlinnyy_zal_s_lampami"
  },
  {
   "id": 9,
   "description": "Заполучить ключ, который отопрёт одну из дверей",
   "type": "item",
   "dependencies": [
    8
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_zolotoy_klyuchik"
  },
  {
   "id": 10,
   "description": "Отпереть дверцу, за которой ждёт чудесный сад",
   "type": "event",
   "dependencies": [
    9
   ],
   "on_complete": [
    {
     "type": "unlock_exit",
     "target_id": "chudesnyy_sad"
    }
   ],
   "story_task": "Пройти в чудесный сад за маленькой дверцей"
  },
  {
   "id": 11,
   "description": "Попросить Кролика отпереть дверцу в сад",
   "type": "dialogue",
   "dependencies": [
    9
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_belyy_krolik",
   "hidden": true
  },
  {
   "id": 12,
   "description": "Уменьшиться настолько, чтобы пролезть в дверцу",
   "type": "use_item",
   "dependencies": [
    10
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_butylochka_vypey_menya"
  },
  {
   "id": 13,
   "description": "Заметить коробочку под столиком",
   "type": "dialogue",
   "dependencies": [
    12
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_steklyannaya_korobochka",
   "optional": true
  },
  {
   "id": 14,
   "description": "Вернуть себе рост, чтобы дотянуться до ключа",
   "type": "use_item",
   "dependencies": [
    12
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_pirozhok_sesh_menya"
  },
  {
   "id": 15,
   "description": "Достать оставленный наверху ключ",
   "type": "dialogue",
   "dependencies": [
    14
   ],
   "on_complete": [],
   "story_task": "Пройти в чудесный сад за маленькой дверцей",
   "target": "dlinnyy_zal_s_lampami_steklyannyy_stolik"
  },
  {
   "id": 16,
   "description": "Получить от Кролика помощь и выбраться из зала",
   "type": "dialogue",
   "dependencies": [
    15
   ],
   "on_complete": [],
   "story_task": "Выбраться из зала и спастись от собственных слёз",
   "target": "dlinnyy_zal_s_lampami_belyy_krolik"
  },
  {
   "id": 17,
   "description": "Раздобыть: Веер",
   "type": "item",
   "dependencies": [
    16
   ],
   "on_complete": [],
   "story_task": "Понять, почему её тело то растёт, то уменьшается",
   "target": "dlinnyy_zal_s_lampami_veer"
  },
  {
   "id": 18,
   "description": "Освежиться в жарком зале",
   "type": "use_item",
   "dependencies": [
    17
   ],
   "on_complete": [],
   "story_task": "Понять, почему её тело то растёт, то уменьшается",
   "target": "dlinnyy_zal_s_lampami_veer"
  },
  {
   "id": 19,
   "description": "Понять, откуда взялась вода, и выбраться из неё",
   "type": "exploration",
   "dependencies": [
    18
   ],
   "on_complete": [],
   "story_task": "Понять, почему её тело то растёт, то уменьшается",
   "target": "luzha_slez"
  },
  {
   "id": 20,
   "description": "Уговорить Мышь помочь ей выбраться отсюда",
   "type": "dialogue",
   "dependencies": [
    19
   ],
   "on_complete": [],
   "story_task": "Понять, почему её тело то растёт, то уменьшается",
   "target": "luzha_slez_mysh"
  },
  {
   "id": 21,
   "description": "Удержаться на воде и дождаться истории Мыши",
   "type": "final",
   "dependencies": [
    1,
    3,
    4,
    6,
    7,
    8,
    9,
    10,
    12,
    14,
    15,
    16,
    17,
    18,
    19,
    20
   ],
   "on_complete": [],
   "story_task": "Понять, почему её тело то растёт, то уменьшается",
   "target": "luzha_slez"
  },
  {
   "id": 22,
   "description": "Отпереть дверцу, за которой ждёт чудесный сад",
   "type": "use_item",
   "dependencies": [
    9
   ],
   "on_complete": [],
   "hidden": true,
   "target": "dlinnyy_zal_s_lampami_zolotoy_klyuchik"
  },
  {
   "id": 23,
   "description": "Промах: Спросить сестру, о чём её книга",
   "type": "event",
   "dependencies": [],
   "on_complete": [],
   "hidden": true
  },
  {
   "id": 24,
   "description": "Промах: Попросить Кролика отпереть дверцу в сад",
   "type": "event",
   "dependencies": [],
   "on_complete": [],
   "hidden": true
  },
  {
   "id": 25,
   "description": "Промах: Получить от Кролика помощь и выбраться из зала",
   "type": "event",
   "dependencies": [],
   "on_complete": [],
   "hidden": true
  },
  {
   "id": 26,
   "description": "Промах: Уговорить Мышь помочь ей выбраться отсюда",
   "type": "event",
   "dependencies": [],
   "on_complete": [],
   "hidden": true
  }
 ],
 "triggers": [
  {
   "id": "build_trigger_9",
   "type": "pickup_item",
   "target": "dlinnyy_zal_s_lampami_zolotoy_klyuchik",
   "objective_id": 9,
   "conditions": {}
  },
  {
   "id": "build_trigger_11",
   "type": "use_item",
   "target": "dlinnyy_zal_s_lampami_butylochka_vypey_menya",
   "objective_id": 12,
   "conditions": {}
  },
  {
   "id": "anyof_10_22",
   "type": "objective_completed",
   "target": 22,
   "objective_id": 10,
   "conditions": {}
  },
  {
   "id": "anyof_10_11",
   "type": "objective_completed",
   "target": 11,
   "objective_id": 10,
   "conditions": {}
  }
 ],
 "dialogues": [
  {
   "speaker": "System",
   "text": "Чудесный сад: пока не пройти — сначала «Заполучить ключ, который отопрёт одну из дверей» и «Уменьшиться настолько, чтобы пролезть в дверцу».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "System",
   "text": "Нора под изгородью: пока не пройти — сначала «Избавиться от скуки: есть ли в книге сестры что-то занятное?».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "System",
   "text": "Колодец: пока не пройти — сначала «Не упустить Кролика с часами и узнать, куда он бежит».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "System",
   "text": "Зал со множеством дверей: пока не пройти — сначала «Уберечь банку, чтобы никого внизу не убить».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "System",
   "text": "Длинный зал с лампами: пока не пройти — сначала «Разобраться, где она оказалась после падения».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "System",
   "text": "Лужа слёз: пока не пройти — сначала «Освежиться в жарком зале».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Алиса, ты всё ещё здесь? Я читаю, не мешай.",
   "choices": [
    {
     "text": "Сестра, о чём твоя книга?",
     "next": [
      7
     ]
    },
    {
     "text": "А что ты читаешь?",
     "next": [
      8
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Она без картинок и разговоров, просто длинная история.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Историю, но без картинок и разговоров. Тебе будет неинтересно.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Это просто скучная книга, Алиса. В ней нет ни картинок, ни разговоров.",
   "choices": [
    {
     "text": "И как ты можешь её читать?",
     "next": [
      10
     ],
     "complete_objective": 2
    },
    {
     "text": "Сестра, а почему в книге нет разговоров?",
     "next": [
      12
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 23
      }
     ]
    },
    {
     "text": "Сестра, а можно я почитаю вместе с тобой?",
     "next": [
      11
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 23
      }
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Иногда приходится читать и такие. Иди поиграй, не отвлекай.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Нет, Алиса, эта книга не для тебя. Иди поиграй, не отвлекай.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "Потому что это просто такая книга. Не мешай, Алиса.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Сестра",
   "text": "А, это ты, Алиса. Всё ещё хочешь отвлечь меня от книги?",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Книга сестры",
   "text": "Книга лежит открытой на коленях сестры. Страницы испещрены мелким текстом.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Книга сестры",
   "text": "Ты заглядываешь в книгу, но там нет ни картинок, ни разговоров.",
   "choices": [
    {
     "text": "Скучно! Лучше бы тут были картинки.",
     "next": [
      16
     ],
     "complete_objective": 1
    },
    {
     "text": "Что толку в книге без картинок и разговоров?",
     "next": [
      17
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Книга сестры",
   "text": "Ты закрываешь книгу и оглядываешься по сторонам в поисках занятия поинтереснее.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Книга сестры",
   "text": "Ты листаешь страницы, но не находишь ничего занятного.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Книжные полки",
   "text": "Полки уходят вверх и вниз, мимо них мелькают корешки книг и старые карты.",
   "choices": [
    {
     "text": "Осмотреть полки",
     "next": [
      19
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Книжные полки",
   "text": "На полках видны карты и картины, шкафы уставлены книгами.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Книжные полки",
   "text": "Стены колодца уставлены шкафами и книжными полками; кое-где висят карты и картины.",
   "choices": [
    {
     "text": "Разглядеть карты и картины",
     "next": [
      21
     ],
     "complete_objective": 5
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Книжные полки",
   "text": "Алиса заметила, что полки уходят вверх и вниз, а на них — карты и картины.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Ах, боже мой, я опаздываю! Герцогиня будет в ярости!",
   "choices": [
    {
     "text": "Извините, сэр...",
     "next": [
      23
     ]
    },
    {
     "text": "Куда вы так спешите?",
     "next": [
      24
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Кролик так испугался, что уронил перчатки и веер и бросился бежать со всех ног в темноту.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "К Герцогине! Она будет в ярости, если я опоздаю!",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Ах, Герцогиня, Герцогиня! Она будет в ярости, если я заставлю её ждать!",
   "choices": [
    {
     "text": "Ах, Кролик, я тоже спешу! Не подскажете, как отсюда выйти?",
     "next": [
      28
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 24
      }
     ]
    },
    {
     "text": "Сэр, вы не могли бы задержаться на минутку и помочь мне?",
     "next": [
      27
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 24
      }
     ]
    },
    {
     "text": "Прошу вас, отоприте дверцу в сад!",
     "next": [
      26
     ],
     "complete_objective": 11
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Кролик в ужасе уронил перчатки и веер и убежал, не слушая её.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Некогда, некогда! Герцогиня ждать не будет!",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Выход? Какой выход? Я и так опаздываю!",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Ах, это вы! Всё ещё здесь? А я всё так же спешу к Герцогине.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Ах, Герцогиня, Герцогиня! Она будет в ярости, если я заставлю её ждать!",
   "choices": [
    {
     "text": "Сэр, умоляю, скажите, как мне стать меньше?",
     "next": [
      32
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 25
      }
     ]
    },
    {
     "text": "Кролик, милый, не бросайте меня здесь одну!",
     "next": [
      33
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 25
      }
     ]
    },
    {
     "text": "Помогите мне выбраться из зала!",
     "next": [
      31
     ],
     "complete_objective": 16,
     "conditions": {
      "objective_completed": [
       15
      ]
     }
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Кролик бросил перчатки и веер и скрылся в темноте.",
   "choices": [
    {
     "text": "взять/принять веер",
     "next": [
      36
     ],
     "complete_objective": 17,
     "gives_item": {
      "item_id": "dlinnyy_zal_s_lampami_veer",
      "item_name": "Веер",
      "item_type": "bird_feather",
      "item_description": "Большой веер, оброненный перепуганным Кроликом; от обмахивания им Алиса уменьшается.",
      "use_effect": {
       "type": "complete_objective",
       "objective_id": 18,
       "target_type": "global",
       "apply_to": "self",
       "conditions": {
        "objective_completed": [
         17
        ]
       }
      },
      "key_item": false
     },
     "conditions": {
      "objective_completed": [
       16
      ]
     }
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Меньше? Больше? Какая разница! Я и так вне себя от спешки!",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Одна? Я и сам не свой! Герцогиня меня ждёт!",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Опять вы! Всё ещё не выбрались? А я всё бегу и бегу.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Ах, Герцогиня, Герцогиня! Она будет в ярости, если я заставлю её ждать!",
   "choices": [
    {
     "text": "взять/принять веер",
     "next": [
      36
     ],
     "complete_objective": 17,
     "gives_item": {
      "item_id": "dlinnyy_zal_s_lampami_veer",
      "item_name": "Веер",
      "item_type": "bird_feather",
      "item_description": "Большой веер, оброненный перепуганным Кроликом; от обмахивания им Алиса уменьшается.",
      "use_effect": {
       "type": "complete_objective",
       "objective_id": 18,
       "target_type": "global",
       "apply_to": "self",
       "conditions": {
        "objective_completed": [
         17
        ]
       }
      },
      "key_item": false
     },
     "conditions": {
      "objective_completed": [
       16
      ]
     }
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Белый Кролик",
   "text": "Кролик выронил веер и перчатки и убежал.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Стеклянный столик",
   "text": "Столик поблёскивает стеклянной столешницей на скользкой ножке.",
   "choices": [
    {
     "text": "Достать оставленный наверху ключ",
     "next": [
      38
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Стеклянный столик",
   "text": "Став ростом в десять дюймов, она уже не дотягивается до столика.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Стеклянный столик",
   "text": "Столик поблёскивает стеклянной столешницей на скользкой ножке.",
   "choices": [
    {
     "text": "Достать оставленный наверху ключ",
     "next": [
      38
     ],
     "complete_objective": 15
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Стеклянный столик",
   "text": "Став ростом в десять дюймов, она уже не дотягивается до столика.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Стеклянная коробочка",
   "text": "Под столиком стоит маленькая стеклянная коробочка.",
   "choices": [
    {
     "text": "Заметить коробочку под столиком",
     "next": [
      42
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Стеклянная коробочка",
   "text": "В коробочке лежал пирожок, на котором было написано «СЪЕШЬ МЕНЯ».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Стеклянная коробочка",
   "text": "Под столиком стоит маленькая стеклянная коробочка.",
   "choices": [
    {
     "text": "Заметить коробочку под столиком",
     "next": [
      42
     ],
     "complete_objective": 13
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Стеклянная коробочка",
   "text": "В коробочке лежал пирожок, на котором было написано «СЪЕШЬ МЕНЯ».",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Неужели я смогу поговорить с этой Мышью? В Стране чудес всё возможно. Попробую обратиться к ней по-французски: «Où est ma chatte?» — это первая фраза из моего учебника.",
   "choices": [
    {
     "text": "Простите, я совсем забыла, что вы не любите кошек.",
     "next": [
      46
     ]
    },
    {
     "text": "Почему вы ненавидите кошек и собак?",
     "next": [
      47
     ]
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Не люблю кошек! А ты бы полюбила кошек, если бы была на моём месте?",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Я расскажу тебе свою историю, и тогда ты поймёшь, почему я ненавижу кошек и собак.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Не люблю кошек! А ты бы полюбила кошек, если бы была на моём месте?",
   "choices": [
    {
     "text": "Да что вы, кошки — милейшие создания! Я сама их обожаю.",
     "next": [
      49
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 26
      }
     ]
    },
    {
     "text": "Плевать я хотела на кошек. Скажите лучше, как отсюда выбраться, и побыстрее.",
     "next": [
      50
     ],
     "effect": [
      {
       "type": "complete_objective",
       "objective_id": 26
      }
     ]
    },
    {
     "text": "Наверное, нет. Не сердитесь на меня. Но мне бы очень хотелось узнать, как выбраться отсюда. Не могли бы вы мне помочь?",
     "next": [
      47
     ],
     "complete_objective": 20
    }
   ],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Ну вот, ты заодно с ними! Не стану с тобой разговаривать.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Какая грубиянка! Сначала выслушай меня, а потом уж требуй.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "А, это ты. Всё ещё хочешь выбраться? Сначала ответь мне про кошек.",
   "choices": [],
   "gives_item": null
  },
  {
   "speaker": "Мышь",
   "text": "Я расскажу тебе свою историю, и тогда ты поймёшь, почему я ненавижу кошек и собак.",
   "choices": [],
   "gives_item": null
  }
 ],
 "items": []
}