{
  "bridge": {
    "version": "1",
    "debug": true,
    "platform": "linux",
    "capabilities": [
      "scene",
      "nodes",
      "node",
      "screen.resize",
      "input.click",
      "input.drag",
      "input.key",
      "screenshot"
    ],
    "screen": {
      "window": {
        "width": 640,
        "height": 1136
      },
      "backbuffer": {
        "width": 640,
        "height": 1136
      },
      "display": {
        "width": 640,
        "height": 1136
      },
      "viewport": {
        "x": 0,
        "y": 0,
        "width": 640,
        "height": 1136
      },
      "coordinates": {
        "origin": "top-left",
        "units": "screen_pixels"
      }
    },
    "scene_sequence": 1
  },
  "menu_visible_gui_nodes": 205,
  "menu_visible_scene_nodes": 219,
  "settings_opened_by_semantic_click": true,
  "settings_build_version": "2026-08-11T20:01+03:00 978b9f9",
  "menu_button_animation": {
    "width_delta_px": 3.48,
    "center_drift_px": 0.0,
    "labels_centered": true,
    "portrait_and_landscape_safe": true
  },
  "menu_start_flow": {
    "clicked_by_semantic_node": true,
    "developer_mode_default_off_verified": true,
    "developer_mode_persisted_on_verified": true,
    "arena_choice_opened_only_in_developer_mode_verified": true,
    "both_arena_names_verified": true,
    "arena_choice_viewports_verified": true,
    "developer_mode_off_direct_arena_verified": true,
    "arena_loaded": true,
    "server_connection_required": false
  },
  "create_hero_input": {
    "page_opened": true,
    "typed_text": "Codex_1",
    "backspace_verified": true,
    "success_screen_opened": true,
    "repeat_create_button_visible": true,
    "repeat_form_reset": true
  },
  "screenshots": [
    "/opt/github/raketa-best/world/dist/automation/world-menu-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-settings-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-create-hero-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-create-hero-success.png",
    "/opt/github/raketa-best/world/dist/automation/world-create-hero-repeat.png",
    "/opt/github/raketa-best/world/dist/automation/world-menu-compact-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-landscape.png",
    "/opt/github/raketa-best/world/dist/automation/world-choose-arena-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-choose-arena-compact-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-choose-arena-landscape.png",
    "/opt/github/raketa-best/world/dist/automation/world-menu-start-arena.png",
    "/opt/github/raketa-best/world/dist/automation/world-menu-production.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-moving.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-target.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-desktop-events.png",
    "/opt/github/raketa-best/world/dist/automation/world-hurricane-homing-start.png",
    "/opt/github/raketa-best/world/dist/automation/world-hurricane-homing-middle.png",
    "/opt/github/raketa-best/world/dist/automation/world-hurricane-homing-impact.png",
    "/opt/github/raketa-best/world/dist/automation/world-zombie-run-after-attack-start.png",
    "/opt/github/raketa-best/world/dist/automation/world-zombie-run-after-attack-end.png",
    "/opt/github/raketa-best/world/dist/automation/world-character-turn-start.png",
    "/opt/github/raketa-best/world/dist/automation/world-character-turn-middle.png",
    "/opt/github/raketa-best/world/dist/automation/world-character-turn-end.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-zombie-dead.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-zombie-hidden.png",
    "/opt/github/raketa-best/world/dist/automation/world-arena-zombie-respawned.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-arena-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-arena-compact-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-arena-landscape.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-hurricane-moving-cast.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-hurricane-flight-start.png",
    "/opt/github/raketa-best/world/dist/automation/world-training-hurricane-cleaned.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-preview-portrait.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-preview-settings.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-preview-landscape.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-preview-desktop-events.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-victory.png",
    "/opt/github/raketa-best/world/dist/automation/world-ui-defeat.png"
  ],
  "production_menu": {
    "title": "HURRICANE",
    "single_primary_action_verified": true,
    "redundant_create_action_hidden_verified": true,
    "start_safe_area_verified": true
  },
  "arena_visible_scene_nodes": 118,
  "mobile_hud": {
    "player_hp": "100 / 100",
    "player_panel_bounds": {
      "x": 5.375,
      "y": 6.56341553,
      "w": 107.5,
      "h": 45.6875
    },
    "ping": "57 ms",
    "ping_height_px": 12.2281494,
    "target_indicator_width_px": 69.875,
    "target_indicator_height_px": 8.0625,
    "target_full_health_width_px": 69.875,
    "target_follows_world_verified": true
  },
  "movement": {
    "start": {
      "x": 279.217865,
      "y": 612.441406
    },
    "middle": {
      "x": 217.001648,
      "y": 515.59845
    },
    "end": {
      "x": 109.985237,
      "y": 290.389282
    },
    "pixels_before_middle": 115.11,
    "pixels_after_middle": 249.34
  },
  "rotation_tween": {
    "configured_duration_ms": 50,
    "turn_degrees": 164.22,
    "intermediate_engine_samples": 1,
    "intermediate_frame_verified": true,
    "duration_shared_golden_verified": true,
    "shortest_arc_shared_golden_verified": true,
    "repeated_direction_max_deviation_degrees": 3.51,
    "repeated_direction_stable_verified": true
  },
  "zombie_loop": {
    "damage_per_punch": 20,
    "shared_reducer_verified": true,
    "stable_pursuit_deduplicated_verified": true,
    "continuous_run_motion_after_attack_verified": true,
    "run_motion_after_attack_px": 61.2,
    "run_frames_captured_for_visual_review": 2,
    "corpse_visible_ms": 3000,
    "respawn_delay_ms": 3000,
    "fresh_zombie_spawned": true
  },
  "live_event_rail": {
    "authoritative_events_verified": true,
    "shows_zombie_attack_verified": true,
    "stationary_move_spam_absent_verified": true,
    "stationary_zombie_move_events": 1,
    "right_gutter_verified": true,
    "meta": "11 total  |  3/s  |  last 11"
  },
  "hurricane_homing": {
    "damage_after_impact": 35,
    "staging_caster_travel_px": 575.07,
    "staging_target_travel_px": 316.81,
    "staging_separation_px": 243.59,
    "projectile_travel_px": 48.31,
    "launch_displacement_px": 12.02,
    "target_travel_px": 23.38,
    "caster_travel_after_flight_command_px": 223.15,
    "live_distance_start_px": 45.4,
    "live_distance_middle_px": 26.0,
    "projectile_motion_runtime_verified": true,
    "moving_target_runtime_verified": true,
    "detached_flight_command_runtime_verified": true,
    "early_collision_observed": true,
    "detached_impact_shared_reducer_verified": true,
    "damage_before_center_deadline_verified": true,
    "impact_after_launch_ms": 469.34,
    "tagged_visual_impact_verified": true,
    "minimum_observed_contact_distance_px": 3.688,
    "visual_finish_after_launch_ms": 1048.58,
    "visual_completed_after_damage_verified": true,
    "one_frame_penetration_cleanup_verified": true,
    "under_character_layer_verified": true,
    "cast_forward_projection_px": 69.9,
    "cast_in_front_of_caster_verified": true
  },
  "training_arena": {
    "name": "3 зомби стоят",
    "zombie_count": 3,
    "perimeter_patrol_verified": true,
    "patrol_travel_px": 63.73,
    "stationary_zombie_count": 2,
    "visual_scale": 0.65,
    "transformed_sprite_size_px": [
      [
        156.65,
        144.3
      ],
      [
        156.65,
        144.3
      ],
      [
        156.65,
        144.3
      ]
    ],
    "facing_degrees": [
      0.0,
      180.0,
      165.0
    ],
    "max_stationary_drift_px": 0.0,
    "two_stationary_zombies_verified": true,
    "moving_target_selection_verified": true,
    "target_selection_verified": true,
    "rapid_hurricane_max_views": 1,
    "rapid_hurricane_cleanup_verified": true,
    "live_target_cast_facing_max_error_degrees": 1.81,
    "live_target_cast_facing_target_travel_px": 41.31,
    "live_target_cast_facing_max_step_degrees": 2.04,
    "live_target_cast_facing_verified": true,
    "cast_under_characters_verified": true,
    "flight_under_characters_verified": true,
    "animated_hurricane_flight_frames": 8,
    "animated_hurricane_flight_frames_verified": true,
    "animated_hurricane_flight_verified": true,
    "one_second_lifecycle_shared_verified": true,
    "viewports_verified": true
  },
  "ui_preview": {
    "wave": "ВОЛНА 2 / 3",
    "wave_progress": "3 / 5",
    "hurricane_cooldown": "2.4",
    "ping": "30 ms",
    "top_row_alignment_error_px": 2.66,
    "top_inset_delta_px": 1.32,
    "skill_bottom_margin_px": 6.54,
    "ping_bottom_margin_px": 5.37,
    "approved_mobile_geometry": {
      "run_status": {
        "x": 120.27,
        "y": 7.88,
        "w": 189.47,
        "h": 56.44
      },
      "skill_dock": {
        "x": 147.14,
        "y": 866.34,
        "w": 135.72,
        "h": 59.12
      }
    },
    "server_connection_required": false,
    "desktop_event_rail": {
      "hidden_when_developer_mode_off_verified": true,
      "shown_immediately_when_developer_mode_on_verified": true,
      "visible_only_on_wide_viewport_verified": true,
      "shows_total_and_rate_verified": true,
      "shows_recent_event_details_verified": true,
      "bounds": {
        "x": 1040.13,
        "y": 5.41,
        "w": 302.87,
        "h": 709.86
      }
    }
  },
  "ui_victory": {
    "title": "ПОБЕДА",
    "message": "ПОБЕДА\nАрена зачищена: 15 / 15",
    "retry_label": "ЕЩЁ РАЗ",
    "exit_label": "В МЕНЮ",
    "modal_visible_verified": true,
    "restart_action_visible_verified": true,
    "exit_action_visible_verified": true
  },
  "ui_defeat": {
    "title": "ПОРАЖЕНИЕ",
    "message": "ПОРАЖЕНИЕ\nЗомби оказались сильнее",
    "retry_label": "ЕЩЁ РАЗ",
    "exit_label": "В МЕНЮ",
    "modal_visible_verified": true,
    "restart_action_visible_verified": true,
    "exit_action_visible_verified": true
  }
}
