{
    "schema_version": 57,
    "metadata": {
        "project": "BIG EGG",
        "modified_at": "2026-09-03T13:22:34-04:00",
        "published_at": "2026-09-03T13:22:34-04:00"
    },
    "active_player_config": "default_player",
    "player_configs": {
        "default_player": {
            "display_name": "Default Player",
            "starting_hp": 10.0,
            "starting_stamina": 30.0,
            "move_speed": 350.0,
            "move_stamina_per_second": 0.5,
            "attack_damage": 1.0,
            "attack_rate": 0.45,
            "attack_knockback": 600.0,
            "attack_stamina_cost": 5.0,
            "damage_variance": 0.12,
            "dash_speed": 2000.0,
            "dash_duration": 0.07,
            "dash_cooldown": 1.5,
            "dash_stamina_cost": 5.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "attack_pattern": "scan_beam_copy",
            "starting_weapon": "restaurant_fork",
            "model_3d": {
                "path": "res://assets/models/player/clockwork_balloonkeep.glb",
                "scale": 1.0,
                "rotation_x": 0.0,
                "rotation_y": 0.0,
                "rotation_z": 0.0,
                "offset_x": 0.0,
                "offset_y": 0.0,
                "offset_z": 0.0,
                "upper_body_root_bone": "Spine",
                "animations": {
                    "walk": "Walking",
                    "attack": "Triple_Combo_Attack",
                    "dash": "RunFast"
                },
                "animation_speeds": {
                    "walk": 1.0,
                    "attack": 2.0,
                    "dash": 1.0
                },
                "finish_before_transition": {
                    "attack": true
                },
                "animation_in_place": {
                    "walk": true,
                    "attack": true,
                    "dash": true
                },
                "animation_layers": {
                    "attack": "upper_body"
                },
                "animation_blend_in": {
                    "attack": 0.08
                },
                "animation_blend_out": {
                    "attack": 0.12
                }
            },
            "visuals": {
                "idle": "player_idle",
                "walk": "player_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "hurt": [],
                    "random": []
                }
            }
        }
    },
    "ingredients": {
        "squirrel_meat": {
            "display_name": "Viande d'écureuil",
            "description": "Petite viande nerveuse prise sur un rongeur beaucoup trop intense.",
            "color": "#a9714b",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_squirrel_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "golden_acorn": {
            "display_name": "Gland doré",
            "description": "Un gland que l'écureuil défendait comme un trésor de famille.",
            "color": "#d9a441",
            "shape": "oval",
            "visuals": {
                "icon": "ingredient_golden_acorn"
            },
            "vfx": {},
            "on_collected": []
        },
        "turkey_meat": {
            "display_name": "Viande de dindon",
            "description": "Chair ferme d'un oiseau qui chargeait sans jamais douter.",
            "color": "#b4623c",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_turkey_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "rage_gizzard": {
            "display_name": "Gésier enragé",
            "description": "Gésier encore contracté, à manipuler avec un peu de respect.",
            "color": "#8c2f39",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_rage_gizzard"
            },
            "vfx": {},
            "on_collected": []
        },
        "raccoon_meat": {
            "display_name": "Viande de raton",
            "description": "Viande de fouilleur, au goût de tout ce qu'il a trouvé.",
            "color": "#6f6a5f",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_raccoon_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "pristine_garbage": {
            "display_name": "Déchet impeccable",
            "description": "Un déchet si bien conservé qu'il passe pour un ingrédient.",
            "color": "#7f8c5a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_pristine_garbage"
            },
            "vfx": {},
            "on_collected": []
        },
        "skunk_meat": {
            "display_name": "Viande de moufette",
            "description": "Se cuisine très bien, à condition de ne pas y penser.",
            "color": "#4a4a52",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_skunk_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "scent_gland": {
            "display_name": "Glande odorante",
            "description": "Un condiment d'une puissance médicalement discutable.",
            "color": "#6fbf73",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_scent_gland"
            },
            "vfx": {},
            "on_collected": []
        },
        "carl_meat": {
            "display_name": "Viande de Carl",
            "description": "Personne ne pose de question, Carl non plus.",
            "color": "#b07a5c",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_carl_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "carls_leg": {
            "display_name": "Jambe de Carl",
            "description": "Carl la récupère toujours. Personne ne sait comment.",
            "color": "#8a5a3c",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_carls_leg"
            },
            "vfx": {},
            "on_collected": []
        },
        "honeycomb": {
            "display_name": "Rayon de miel",
            "description": "Rayon de miel brut ramassé dans la serre du Cratère.",
            "color": "#e0a32e",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_honeycomb"
            },
            "vfx": {},
            "on_collected": []
        },
        "royal_honey": {
            "display_name": "Miel royal",
            "description": "Miel rarissime qui brille presque comme de l'or.",
            "color": "#f2c14e",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_royal_honey"
            },
            "vfx": {},
            "on_collected": []
        },
        "oat_bundle": {
            "display_name": "Botte d'avoine",
            "description": "Sac d'avoine de voyage que Bob transporte partout.",
            "color": "#c8b273",
            "shape": "triangle",
            "visuals": {
                "icon": "ingredient_oat_bundle"
            },
            "vfx": {},
            "on_collected": []
        },
        "golden_carrot": {
            "display_name": "Carotte dorée",
            "description": "Carotte dorée que Bob refuse mystérieusement de manger.",
            "color": "#e08a2e",
            "shape": "triangle",
            "visuals": {
                "icon": "ingredient_golden_carrot"
            },
            "vfx": {},
            "on_collected": []
        },
        "dock_rat_meat": {
            "display_name": "Viande de rat de quai",
            "description": "Maigre, rapide, et étonnamment savoureuse une fois saisie.",
            "color": "#7a6d63",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_dock_rat_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "salted_tail": {
            "display_name": "Queue salée",
            "description": "Charcuterie de quai séchée dans l'air du port.",
            "color": "#b9a48a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_salted_tail"
            },
            "vfx": {},
            "on_collected": []
        },
        "barnacle_meat": {
            "display_name": "Chair de bernacle",
            "description": "Chair dense arrachée à une carapace de coquillages.",
            "color": "#8fae9c",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_barnacle_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "black_pearl_roe": {
            "display_name": "Oeufs de perle noire",
            "description": "Petits oeufs noirs récoltés dans la cale sèche engloutie.",
            "color": "#2f3b4c",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_black_pearl_roe"
            },
            "vfx": {},
            "on_collected": []
        },
        "crab_meat": {
            "display_name": "Chair de crabe",
            "description": "Chair de crabe de casino, gagnée plutôt que pêchée.",
            "color": "#e2703a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_crab_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "loaded_claw": {
            "display_name": "Pince pipée",
            "description": "Une pince qui tombe toujours du bon côté.",
            "color": "#c94f2f",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_loaded_claw"
            },
            "vfx": {},
            "on_collected": []
        },
        "siren_fillet": {
            "display_name": "Filet de sirène",
            "description": "Filet brillant qui vibre encore un peu au rythme du cabaret.",
            "color": "#4fb0c6",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_siren_fillet"
            },
            "vfx": {},
            "on_collected": []
        },
        "glitter_scale": {
            "display_name": "Écaille scintillante",
            "description": "Écaille de scène, comestible et parfaitement théâtrale.",
            "color": "#9fd8ef",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_glitter_scale"
            },
            "vfx": {},
            "on_collected": []
        },
        "gull_meat": {
            "display_name": "Viande de goéland",
            "description": "Oiseau d'entrepôt au goût légèrement fumé.",
            "color": "#b9bfc7",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_gull_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "gunpowder_gizzard": {
            "display_name": "Gésier à poudre",
            "description": "Gésier chargé de poudre noire. À doser.",
            "color": "#4a4f57",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_gunpowder_gizzard"
            },
            "vfx": {},
            "on_collected": []
        },
        "shedded_crab_meat": {
            "display_name": "Chair de pince muée",
            "description": "Chair d'une pince que Gab renouvelle naturellement.",
            "color": "#e08a5c",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_shedded_crab_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "lucky_pearl": {
            "display_name": "Perle porte-bonheur",
            "description": "Perle gagnée dans des circonstances statistiquement douteuses.",
            "color": "#f4f1e8",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_lucky_pearl"
            },
            "vfx": {},
            "on_collected": []
        },
        "protein_cartridge": {
            "display_name": "Cartouche de protéine",
            "description": "Ration réglementaire, grise et profondément sans joie.",
            "color": "#9aa1a8",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_protein_cartridge"
            },
            "vfx": {},
            "on_collected": []
        },
        "lubricant_gel": {
            "display_name": "Gel lubrifiant",
            "description": "Officiellement alimentaire. Officiellement.",
            "color": "#c9d16b",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_lubricant_gel"
            },
            "vfx": {},
            "on_collected": []
        },
        "hound_meat": {
            "display_name": "Viande de molosse",
            "description": "Viande d'unité de surveillance, moitié bête moitié machine.",
            "color": "#6b6f76",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_hound_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "lens_jelly": {
            "display_name": "Gelée optique",
            "description": "Gelée transparente prise dans une tête-caméra.",
            "color": "#7fd1de",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_lens_jelly"
            },
            "vfx": {},
            "on_collected": []
        },
        "concrete_tofu": {
            "display_name": "Tofu de béton",
            "description": "Bloc préfabriqué qui s'attendrit à la cuisson. Presque.",
            "color": "#b8b5ad",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_concrete_tofu"
            },
            "vfx": {},
            "on_collected": []
        },
        "rebar_jerky": {
            "display_name": "Jerky d'armature",
            "description": "Lanières séchées récupérées dans les rampes brutalistes.",
            "color": "#8a6a52",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_rebar_jerky"
            },
            "vfx": {},
            "on_collected": []
        },
        "roach_protein": {
            "display_name": "Protéine de cafard",
            "description": "Efficace, abondante, et jamais mentionnée au menu.",
            "color": "#5a4a3a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_roach_protein"
            },
            "vfx": {},
            "on_collected": []
        },
        "coolant_sac": {
            "display_name": "Poche de liquide froid",
            "description": "Poche de refroidissement industriel, étonnamment rafraîchissante.",
            "color": "#6fa8dc",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_coolant_sac"
            },
            "vfx": {},
            "on_collected": []
        },
        "coach_cutlet": {
            "display_name": "Escalope de coach",
            "description": "Coupe premium d'un athlète augmenté jusqu'à l'absurde.",
            "color": "#c98f6b",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_coach_cutlet"
            },
            "vfx": {},
            "on_collected": []
        },
        "performance_serum": {
            "display_name": "Sérum de performance",
            "description": "Sérum de records que plus personne ne regarde.",
            "color": "#d7f75b",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_performance_serum"
            },
            "vfx": {},
            "on_collected": []
        },
        "energy_gel": {
            "display_name": "Gel énergétique",
            "description": "Gel énergétique réglementaire des Egglympics.",
            "color": "#f2d94e",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_energy_gel"
            },
            "vfx": {},
            "on_collected": []
        },
        "lightning_salt": {
            "display_name": "Sel foudroyant",
            "description": "Sel ionisé qui crépite quand on le saupoudre.",
            "color": "#cfe8ff",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_lightning_salt"
            },
            "vfx": {},
            "on_collected": []
        },
        "crow_meat": {
            "display_name": "Viande de corbeau",
            "description": "Chair naturellement fumée par les évents volcaniques.",
            "color": "#4a3f4a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_crow_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "ember_feather": {
            "display_name": "Plume de braise",
            "description": "Plume encore tiède qui parfume tout ce qu'elle touche.",
            "color": "#e2543a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_ember_feather"
            },
            "vfx": {},
            "on_collected": []
        },
        "marmot_meat": {
            "display_name": "Viande de marmotte",
            "description": "Viande grasse déjà à moitié cuite par son terrier.",
            "color": "#a5714a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_marmot_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "lava_fat": {
            "display_name": "Graisse de magma",
            "description": "Graisse qui reste liquide bien après la cuisson.",
            "color": "#f07b28",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_lava_fat"
            },
            "vfx": {},
            "on_collected": []
        },
        "goat_meat": {
            "display_name": "Viande de chèvre",
            "description": "Chèvre de montagne nourrie de mousse et de métal.",
            "color": "#c2a68a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_goat_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "iron_milk": {
            "display_name": "Lait ferreux",
            "description": "Lait épais au goût de clou. Très nourrissant.",
            "color": "#d7dbe0",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_iron_milk"
            },
            "vfx": {},
            "on_collected": []
        },
        "ram_meat": {
            "display_name": "Viande de bélier",
            "description": "Viande dense d'un animal qui frappait le sol en cadence.",
            "color": "#8a5a4a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_ram_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "resonant_marrow": {
            "display_name": "Moelle résonante",
            "description": "Moelle qui vibre encore quand on approche l'oreille.",
            "color": "#b892d8",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_resonant_marrow"
            },
            "vfx": {},
            "on_collected": []
        },
        "charred_meat": {
            "display_name": "Viande carbonisée",
            "description": "Cuite bien avant d'être récupérée, merci Pete.",
            "color": "#3f2f2a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_charred_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "hot_sauce_blood": {
            "display_name": "Sang piquant",
            "description": "Se comporte exactement comme une sauce piquante haut de gamme.",
            "color": "#d62828",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_hot_sauce_blood"
            },
            "vfx": {},
            "on_collected": []
        },
        "rock_salt": {
            "display_name": "Sel de roche",
            "description": "Sel minéral récolté dans les fissures du sommet.",
            "color": "#e6e2d3",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_rock_salt"
            },
            "vfx": {},
            "on_collected": []
        },
        "molten_truffle": {
            "display_name": "Truffe en fusion",
            "description": "Truffe rare poussant près des poches géothermiques.",
            "color": "#6b3f2a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_molten_truffle"
            },
            "vfx": {},
            "on_collected": []
        },
        "rhythm_herb": {
            "display_name": "Herbe rythmique",
            "description": "Herbe aromatique qui vibre légèrement au rythme de la musique.",
            "color": "#7fbf5a",
            "shape": "triangle",
            "visuals": {
                "icon": "ingredient_rhythm_herb"
            },
            "vfx": {},
            "on_collected": []
        },
        "echo_mushroom": {
            "display_name": "Champignon d'écho",
            "description": "Champignon qui répète une note plusieurs secondes après qu'on l'a touché.",
            "color": "#a88fd8",
            "shape": "triangle",
            "visuals": {
                "icon": "ingredient_echo_mushroom"
            },
            "vfx": {},
            "on_collected": []
        },
        "enforcer_meat": {
            "display_name": "Viande d'Eggforcer",
            "description": "Coupe standardisée, uniforme jusque dans le goût.",
            "color": "#d8d2c4",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_enforcer_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "pepper_marinade": {
            "display_name": "Marinade au poivre",
            "description": "Marinade dispersante servie en très petite quantité.",
            "color": "#c1440e",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_pepper_marinade"
            },
            "vfx": {},
            "on_collected": []
        },
        "vulture_meat": {
            "display_name": "Viande de vautour",
            "description": "Coriace, électorale, étrangement populaire en campagne.",
            "color": "#6a6259",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_vulture_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "stolen_ballot_spice": {
            "display_name": "Épice de bulletin volé",
            "description": "Épice tirée de papiers que personne n'a comptés.",
            "color": "#e8dcc0",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_stolen_ballot_spice"
            },
            "vfx": {},
            "on_collected": []
        },
        "boar_meat": {
            "display_name": "Viande de sanglier",
            "description": "Viande d'un animal qui déplaçait des barricades entières.",
            "color": "#8a6a5c",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_boar_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "riot_truffle": {
            "display_name": "Truffe d'émeute",
            "description": "Poussée sous les pavés retournés de la rue des barricades.",
            "color": "#4a3a2a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_riot_truffle"
            },
            "vfx": {},
            "on_collected": []
        },
        "goon_meat": {
            "display_name": "Viande de gros bras",
            "description": "Militant de terrain reconverti, puis reconverti encore.",
            "color": "#b07a6a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_goon_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "lobbyist_lard": {
            "display_name": "Saindoux de lobbyiste",
            "description": "Gras onctueux qui adoucit absolument tout.",
            "color": "#f0e2b6",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_lobbyist_lard"
            },
            "vfx": {},
            "on_collected": []
        },
        "spin_doctor_meat": {
            "display_name": "Viande de girouette",
            "description": "Change de goût selon la façon dont on la présente.",
            "color": "#c9a27a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_spin_doctor_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "premium_spin_sauce": {
            "display_name": "Sauce premium",
            "description": "Une sauce dont la publicité est meilleure que le goût.",
            "color": "#e0533d",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_premium_spin_sauce"
            },
            "vfx": {},
            "on_collected": []
        },
        "campaign_ration": {
            "display_name": "Ration de campagne",
            "description": "Ration officielle d'une république de trois rues.",
            "color": "#a8a05c",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_campaign_ration"
            },
            "vfx": {},
            "on_collected": []
        },
        "dictator_mustard": {
            "display_name": "Moutarde de dictateur",
            "description": "Condiment beaucoup trop cérémonial servi en pot doré.",
            "color": "#e8c33a",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_dictator_mustard"
            },
            "vfx": {},
            "on_collected": []
        },
        "tunnel_rat_meat": {
            "display_name": "Viande de rat des tunnels",
            "description": "Pâle, silencieuse, réconfortante surtout parce qu'elle est chaude.",
            "color": "#7a7168",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_tunnel_rat_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "metro_mushroom": {
            "display_name": "Champignon de métro",
            "description": "Pousse le long des rails, à l'abri de toute lumière.",
            "color": "#9b7fb8",
            "shape": "triangle",
            "visuals": {
                "icon": "ingredient_metro_mushroom"
            },
            "vfx": {},
            "on_collected": []
        },
        "plastic_tofu": {
            "display_name": "Tofu de plastique",
            "description": "Récupéré dans les galeries envahies par les racines.",
            "color": "#d9d2c2",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_plastic_tofu"
            },
            "vfx": {},
            "on_collected": []
        },
        "moss_heart": {
            "display_name": "Coeur de mousse",
            "description": "Noyau de mousse tiède pris dans un mannequin enraciné.",
            "color": "#5aa05a",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_moss_heart"
            },
            "vfx": {},
            "on_collected": []
        },
        "mimic_meat": {
            "display_name": "Chair de mimique",
            "description": "Chair molle d'un banc qui n'en était pas un.",
            "color": "#6a4a6a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_mimic_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "lost_lunch": {
            "display_name": "Lunch oublié",
            "description": "Boîte-repas retrouvée intacte, longtemps après la fermeture.",
            "color": "#b8a06a",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_lost_lunch"
            },
            "vfx": {},
            "on_collected": []
        },
        "mascot_filling": {
            "display_name": "Bourre de mascotte",
            "description": "Ce qui gonflait le costume. On ne cherche pas plus loin.",
            "color": "#e8b3c8",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_mascot_filling"
            },
            "vfx": {},
            "on_collected": []
        },
        "red_nose_cherry": {
            "display_name": "Cerise nez rouge",
            "description": "Cerise confite d'un rouge de fête un peu trop vif.",
            "color": "#d63a3a",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_red_nose_cherry"
            },
            "vfx": {},
            "on_collected": []
        },
        "shopper_meat": {
            "display_name": "Viande de client perdu",
            "description": "Toujours accompagnée de quelques étiquettes.",
            "color": "#a89a8a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_shopper_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "food_court_sauce": {
            "display_name": "Sauce de food court",
            "description": "Sauce de comptoir dont la recette est morte avec le centre commercial.",
            "color": "#c96a2a",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_food_court_sauce"
            },
            "vfx": {},
            "on_collected": []
        },
        "party_mix": {
            "display_name": "Mélange de fête",
            "description": "Mélange de grignotines trouvé partout après son passage.",
            "color": "#e8a33a",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_party_mix"
            },
            "vfx": {},
            "on_collected": []
        },
        "forbidden_punch": {
            "display_name": "Punch interdit",
            "description": "Punch fluorescent dont la recette est interdite dans plusieurs dimensions.",
            "color": "#7ae0c0",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_forbidden_punch"
            },
            "vfx": {},
            "on_collected": []
        },
        "chicken_meat": {
            "display_name": "Viande de poulet",
            "description": "Parfaitement uniforme, comme l'exige la fiche produit.",
            "color": "#e8c9a0",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_chicken_meat"
            },
            "vfx": {},
            "on_collected": []
        },
        "battery_egg": {
            "display_name": "Oeuf de batterie",
            "description": "Oeuf pondu sous contact électrique. Coquille tiède.",
            "color": "#f2e8c9",
            "shape": "oval",
            "visuals": {
                "icon": "ingredient_battery_egg"
            },
            "vfx": {},
            "on_collected": []
        },
        "pork": {
            "display_name": "Porc",
            "description": "Coupe industrielle d'un animal qui courait sur convoyeur.",
            "color": "#e0a0a0",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_pork"
            },
            "vfx": {},
            "on_collected": []
        },
        "conveyor_bacon": {
            "display_name": "Bacon de convoyeur",
            "description": "Tranché à la vitesse de la chaîne, jamais autrement.",
            "color": "#c9563a",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_conveyor_bacon"
            },
            "vfx": {},
            "on_collected": []
        },
        "beef": {
            "display_name": "Boeuf",
            "description": "Viande de rendement, notée avant d'être nommée.",
            "color": "#a03a3a",
            "shape": "diamond",
            "visuals": {
                "icon": "ingredient_beef"
            },
            "vfx": {},
            "on_collected": []
        },
        "synthetic_marbling": {
            "display_name": "Persillage synthétique",
            "description": "Persillage injecté, conforme aux normes du secteur.",
            "color": "#e8b0b0",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_synthetic_marbling"
            },
            "vfx": {},
            "on_collected": []
        },
        "crop_protein": {
            "display_name": "Protéine végétale",
            "description": "Produite automatiquement, sans intervention humaine.",
            "color": "#8ab04a",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_crop_protein"
            },
            "vfx": {},
            "on_collected": []
        },
        "perfect_tomato": {
            "display_name": "Tomate parfaite",
            "description": "Une tomate si parfaite qu'elle en devient inquiétante.",
            "color": "#e03a2a",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_perfect_tomato"
            },
            "vfx": {},
            "on_collected": []
        },
        "approved_protein": {
            "display_name": "Protéine approuvée",
            "description": "Classée APPROVED par un robot très poli.",
            "color": "#f0f0ea",
            "shape": "square",
            "visuals": {
                "icon": "ingredient_approved_protein"
            },
            "vfx": {},
            "on_collected": []
        },
        "reject_spice": {
            "display_name": "Épice rejetée",
            "description": "Tout ce que le contrôle qualité a refusé, broyé ensemble.",
            "color": "#c0392b",
            "shape": "hexagon",
            "visuals": {
                "icon": "ingredient_reject_spice"
            },
            "vfx": {},
            "on_collected": []
        },
        "big_egg_white": {
            "display_name": "Blanc de Big Egg",
            "description": "Une quantité grotesque de blanc d'oeuf.",
            "color": "#fbf6ec",
            "shape": "oval",
            "visuals": {
                "icon": "ingredient_big_egg_white"
            },
            "vfx": {},
            "on_collected": []
        },
        "royal_yolk": {
            "display_name": "Jaune royal",
            "description": "Jaune d'oeuf d'une richesse presque obscène.",
            "color": "#f5b301",
            "shape": "circle",
            "visuals": {
                "icon": "ingredient_royal_yolk"
            },
            "vfx": {},
            "on_collected": []
        }
    },
    "food_categories": {
        "meat": {
            "display_name": "Viande",
            "description": "Chair animale, quelle qu'en soit la provenance.",
            "color": "#d1495b"
        },
        "vegetal": {
            "display_name": "Végétal",
            "description": "Plantes, champignons, tofu et protéines sans animal.",
            "color": "#6a994e"
        },
        "mineral": {
            "display_name": "Minéral",
            "description": "Roche, métal, béton et autres matières non organiques.",
            "color": "#8d99ae"
        },
        "seafood": {
            "display_name": "Fruits de mer",
            "description": "Tout ce qui vient de l'eau salée.",
            "color": "#00a5cf"
        },
        "dessert": {
            "display_name": "Dessert",
            "description": "Sucré, servi pour finir ou pour se faire plaisir.",
            "color": "#ff9ebb"
        },
        "drink": {
            "display_name": "Boisson",
            "description": "Liquide bu plutôt que mangé.",
            "color": "#48cae4"
        },
        "trash": {
            "display_name": "Poubelle",
            "description": "Récupéré, périmé ou franchement douteux.",
            "color": "#6b705c"
        },
        "spicy": {
            "display_name": "Épicé",
            "description": "Piquant, brûlant ou volcanique.",
            "color": "#f4703a"
        },
        "street_food": {
            "display_name": "Malbouffe",
            "description": "Mangé debout, sans cérémonie.",
            "color": "#ffb703"
        },
        "luxury": {
            "display_name": "Grande cuisine",
            "description": "Ingrédient rare et présentation soignée.",
            "color": "#c9a227"
        }
    },
    "projectiles": {
        "egg_launcher_shot": {
            "display_name": "Lance-œuf — munition",
            "description": "",
            "type": "bolt",
            "speed": 1000.0,
            "count": 1,
            "spread_angle": 1.0,
            "radius": 1.0,
            "lifetime": 0.5,
            "color": "#7dd3fc"
        }
    },
    "attack_patterns": {
        "hero_fork_thrust": {
            "display_name": "Estoc de fourchette",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 175.0,
            "angle": 15.0,
            "area_width": 0.0,
            "windup": 0.0,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#ffe64d",
            "combat_effects": []
        },
        "bite_cone": {
            "display_name": "Coup de dents",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 78.0,
            "angle": 72.0,
            "area_width": 0.0,
            "windup": 0.2,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#ff784f",
            "combat_effects": []
        },
        "lunge_bite": {
            "display_name": "Morsure bondissante",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "charge",
            "delivery": "direct",
            "projectile": "",
            "range": 90.0,
            "angle": 60.0,
            "area_width": 0.0,
            "windup": 0.3,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 90.0,
            "movement_speed": 420.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#ff9d4f",
            "combat_effects": []
        },
        "straight_charge": {
            "display_name": "Charge droite",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "charge",
            "delivery": "direct",
            "projectile": "",
            "range": 250.0,
            "angle": 45.0,
            "area_width": 0.0,
            "windup": 0.4,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 300.0,
            "movement_speed": 2500.0,
            "movement_acceleration": 1500.0,
            "movement_windup_distance": 50.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": false,
            "show_movement_warning": true,
            "color": "#e2543a",
            "combat_effects": []
        },
        "heavy_slam": {
            "display_name": "Écrasement lourd",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 120.0,
            "angle": 130.0,
            "area_width": 0.0,
            "windup": 0.6,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#8a6a52",
            "combat_effects": []
        },
        "wide_swipe": {
            "display_name": "Balayage large",
            "type": "swipe",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 105.0,
            "angle": 160.0,
            "area_width": 0.0,
            "windup": 0.35,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.5,
            "rotation_speed": 180.0,
            "tick_interval": 0.15,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#d96c75",
            "combat_effects": []
        },
        "spin_swipe": {
            "display_name": "Tour complet",
            "type": "swipe",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 95.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 1.2,
            "rotation_speed": 240.0,
            "tick_interval": 0.2,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#c94f2f",
            "combat_effects": []
        },
        "pincer_snap": {
            "display_name": "Coup de pince",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 88.0,
            "angle": 90.0,
            "area_width": 0.0,
            "windup": 0.25,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#e2703a",
            "combat_effects": []
        },
        "scent_cloud": {
            "display_name": "Nuage odorant",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "retreat",
            "delivery": "direct",
            "projectile": "",
            "range": 150.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.4,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 4.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.5,
            "movement_distance": 60.0,
            "movement_speed": 140.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#6fbf73",
            "combat_effects": []
        },
        "thrown_debris": {
            "display_name": "Projectile improvisé",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 320.0,
            "angle": 25.0,
            "area_width": 0.0,
            "windup": 0.45,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#7f8c5a",
            "combat_effects": []
        },
        "dive_bomb": {
            "display_name": "Piqué",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "leap",
            "delivery": "direct",
            "projectile": "",
            "range": 150.0,
            "angle": 60.0,
            "area_width": 0.0,
            "windup": 0.55,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 260.0,
            "movement_speed": 640.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 120.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#b9bfc7",
            "combat_effects": []
        },
        "sound_wave": {
            "display_name": "Onde sonore",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 240.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 2.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.4,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#4fb0c6",
            "combat_effects": []
        },
        "flash_mark": {
            "display_name": "Flash de marquage",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 300.0,
            "angle": 70.0,
            "area_width": 0.0,
            "windup": 0.35,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#7fd1de",
            "combat_effects": []
        },
        "acid_swarm": {
            "display_name": "Nuée acide",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "strafe",
            "delivery": "direct",
            "projectile": "",
            "range": 130.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.3,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 3.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.35,
            "movement_distance": 80.0,
            "movement_speed": 200.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#c9d16b",
            "combat_effects": [
                {
                    "effect": "poisoned",
                    "chance": 45.0
                }
            ]
        },
        "rally_cry": {
            "display_name": "Cri de ralliement",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 260.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.7,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#d7f75b",
            "combat_effects": []
        },
        "flame_line": {
            "display_name": "Ligne de flammes",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "linear",
            "delivery": "direct",
            "projectile": "",
            "range": 280.0,
            "angle": 28.0,
            "area_width": 0.0,
            "windup": 0.6,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 3.5,
            "rotation_speed": 0.0,
            "tick_interval": 0.3,
            "movement_distance": 120.0,
            "movement_speed": 180.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f07b28",
            "combat_effects": [
                {
                    "effect": "burning",
                    "chance": 55.0
                }
            ]
        },
        "shield_bash": {
            "display_name": "Coup de bouclier",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "charge",
            "delivery": "direct",
            "projectile": "",
            "range": 76.0,
            "angle": 80.0,
            "area_width": 0.0,
            "windup": 0.3,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 70.0,
            "movement_speed": 380.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#d8d2c4",
            "combat_effects": []
        },
        "paper_volley": {
            "display_name": "Volée de papier",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 340.0,
            "angle": 35.0,
            "area_width": 0.0,
            "windup": 0.4,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#e8dcc0",
            "combat_effects": []
        },
        "shockwave_stomp": {
            "display_name": "Onde de choc",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 190.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.65,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 1.5,
            "rotation_speed": 0.0,
            "tick_interval": 0.5,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#a5714a",
            "combat_effects": []
        },
        "scan_beam": {
            "display_name": "Faisceau de contrôle",
            "type": "swipe",
            "area_shape": "sector",
            "movement_type": "strafe",
            "delivery": "direct",
            "projectile": "",
            "range": 380.0,
            "angle": 22.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 1.6,
            "rotation_speed": 90.0,
            "tick_interval": 0.2,
            "movement_distance": 90.0,
            "movement_speed": 220.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f0f0ea",
            "combat_effects": []
        },
        "pollen_burst": {
            "display_name": "Explosion de pollen",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 260.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 3.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.4,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f2c14e",
            "combat_effects": []
        },
        "rolling_bounce": {
            "display_name": "Roulade rebondissante",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "charge",
            "delivery": "direct",
            "projectile": "",
            "range": 100.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 420.0,
            "movement_speed": 620.0,
            "movement_acceleration": 300.0,
            "movement_windup_distance": 24.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#c2a68a",
            "combat_effects": []
        },
        "speed_streak": {
            "display_name": "Traînée fulgurante",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "charge",
            "delivery": "direct",
            "projectile": "",
            "range": 90.0,
            "angle": 40.0,
            "area_width": 0.0,
            "windup": 0.15,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 340.0,
            "movement_speed": 900.0,
            "movement_acceleration": 600.0,
            "movement_windup_distance": 12.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f2d94e",
            "combat_effects": []
        },
        "confetti_storm": {
            "display_name": "Tempête de confettis",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 300.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.6,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 4.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.35,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#e8b3c8",
            "combat_effects": []
        },
        "drone_volley": {
            "display_name": "Volée de drones",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 420.0,
            "angle": 50.0,
            "area_width": 0.0,
            "windup": 0.55,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f5b301",
            "combat_effects": []
        },
        "rhythm_pulse": {
            "display_name": "Pulsation rythmique",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 220.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.4,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 3.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.5,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#b892d8",
            "combat_effects": []
        },
        "hoof_kick": {
            "display_name": "Ruade",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "retreat",
            "delivery": "direct",
            "projectile": "",
            "range": 85.0,
            "angle": 70.0,
            "area_width": 0.0,
            "windup": 0.3,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 70.0,
            "movement_speed": 300.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#c8b273",
            "combat_effects": []
        },
        "grasping_roots": {
            "display_name": "Racines agrippantes",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 160.0,
            "angle": 200.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 2.5,
            "rotation_speed": 0.0,
            "tick_interval": 0.4,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#5aa05a",
            "combat_effects": []
        },
        "furniture_snap": {
            "display_name": "Claquement de mobilier",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "leap",
            "delivery": "direct",
            "projectile": "",
            "range": 95.0,
            "angle": 110.0,
            "area_width": 0.0,
            "windup": 0.25,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 120.0,
            "movement_speed": 520.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 40.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#6a4a6a",
            "combat_effects": []
        },
        "electric_peck": {
            "display_name": "Bec électrique",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 90.0,
            "angle": 60.0,
            "area_width": 0.0,
            "windup": 0.2,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#cfe8ff",
            "combat_effects": [
                {
                    "effect": "electrified",
                    "chance": 40.0
                }
            ]
        },
        "steam_release": {
            "display_name": "Relâche de vapeur",
            "type": "sticky",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 200.0,
            "angle": 360.0,
            "area_width": 0.0,
            "windup": 0.8,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 3.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.4,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#e8b0b0",
            "combat_effects": [
                {
                    "effect": "chilled",
                    "chance": 35.0
                }
            ]
        },
        "blade_seeds": {
            "display_name": "Graines tranchantes",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "direct",
            "projectile": "",
            "range": 360.0,
            "angle": 40.0,
            "area_width": 0.0,
            "windup": 0.4,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#8ab04a",
            "combat_effects": []
        },
        "scan_beam_copy": {
            "display_name": "Faisceau de croquette",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "unaffected",
            "delivery": "direct",
            "projectile": "",
            "range": 380.0,
            "angle": 22.0,
            "area_width": 0.0,
            "windup": 0.5,
            "tracking_speed": 260.0,
            "escape_grace_duration": 0.45,
            "active_duration": 1.6,
            "rotation_speed": 90.0,
            "tick_interval": 0.2,
            "movement_distance": 90.0,
            "movement_speed": 220.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#f0f0ea",
            "combat_effects": []
        },
        "egg_launcher_volley": {
            "display_name": "Estoc de fourchette (volée)",
            "type": "burst",
            "area_shape": "sector",
            "movement_type": "stationary",
            "delivery": "projectile",
            "projectile": "egg_launcher_shot",
            "range": 175.0,
            "angle": 15.0,
            "area_width": 0.0,
            "windup": 0.0,
            "tracking_speed": 0.0,
            "escape_grace_duration": 0.0,
            "active_duration": 0.0,
            "rotation_speed": 0.0,
            "tick_interval": 0.0,
            "movement_distance": 0.0,
            "movement_speed": 0.0,
            "movement_acceleration": 0.0,
            "movement_windup_distance": 0.0,
            "movement_arc_height": 0.0,
            "show_hit_warning": true,
            "show_movement_warning": true,
            "color": "#ffe64d",
            "combat_effects": []
        }
    },
    "weapons": {
        "restaurant_fork": {
            "display_name": "Fourchette du restaurant",
            "description": "L'arme de départ: un coup direct précis qui respecte les corps devant sa cible.",
            "slot_type": "main",
            "attack_pattern": "hero_fork_thrust",
            "purchase_cost": 0,
            "damage_bonus": 0.0,
            "cooldown_bonus": 0.0,
            "stamina_bonus": 0.0,
            "knockback_bonus": 0.0,
            "damage_multiplier": 1.0,
            "cooldown_multiplier": 1.0,
            "stamina_multiplier": 1.0,
            "knockback_multiplier": 1.0,
            "piercing": 0,
            "respect_occlusion": true,
            "color": "#ffe64d"
        },
        "egg_launcher": {
            "display_name": "Lance-œuf",
            "description": "Une arme à projectile rapide; ses œufs peuvent être améliorés globalement.",
            "slot_type": "either",
            "attack_pattern": "egg_launcher_volley",
            "purchase_cost": 0,
            "damage_bonus": 50.0,
            "cooldown_bonus": 0.0,
            "stamina_bonus": 0.0,
            "knockback_bonus": 0.0,
            "damage_multiplier": 0.75,
            "cooldown_multiplier": 1.2,
            "stamina_multiplier": 1.15,
            "knockback_multiplier": 0.55,
            "piercing": 0,
            "respect_occlusion": true,
            "color": "#7dd3fc"
        }
    },
    "equipment": {
        "iron_apron": {
            "display_name": "Tablier de fer",
            "description": "Une armure de cuisine qui augmente la vie maximale.",
            "type": "armor",
            "purchase_cost": 50,
            "color": "#94a3b8",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 25.0
                }
            ]
        },
        "frost_charm": {
            "display_name": "Breloque givrée",
            "description": "Un objet magique léger qui améliore la vitesse.",
            "type": "magic",
            "purchase_cost": 75,
            "color": "#67e8f9",
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.1
                }
            ]
        }
    },
    "effects": {
        "burning": {
            "display_name": "Brûlure",
            "description": "Inflige des dégâts de feu périodiques.",
            "kind": "fire",
            "stacking": "stack",
            "stack_scaling": "damage",
            "duration": 5.0,
            "max_stacks": 3,
            "tick_interval": 1.0,
            "stack_bonus": 1.0,
            "movement_multiplier": 1.0,
            "control_chance": 0.0,
            "control_duration": 0.0,
            "flags": [],
            "control_flags": [],
            "tick_actions": [
                {
                    "op": "damage",
                    "amount": 3.0,
                    "per_stack": true
                }
            ],
            "modifiers": [],
            "color": "#ff6b35"
        },
        "poisoned": {
            "display_name": "Poison",
            "description": "Inflige des dégâts persistants; chaque dose prolonge la durée.",
            "kind": "poison",
            "stacking": "extend",
            "stack_scaling": "duration",
            "duration": 6.0,
            "max_stacks": 1,
            "tick_interval": 1.0,
            "stack_bonus": 1.0,
            "movement_multiplier": 1.0,
            "control_chance": 0.0,
            "control_duration": 0.0,
            "flags": [],
            "control_flags": [],
            "tick_actions": [
                {
                    "op": "damage",
                    "amount": 2.0,
                    "per_stack": false
                }
            ],
            "modifiers": [],
            "color": "#65a30d"
        },
        "chilled": {
            "display_name": "Givre",
            "description": "Ralentit la cible et peut la geler complètement.",
            "kind": "ice",
            "stacking": "stack_refresh",
            "stack_scaling": "control_chance",
            "duration": 4.0,
            "max_stacks": 3,
            "tick_interval": 0.0,
            "stack_bonus": 0.15,
            "movement_multiplier": 0.72,
            "control_chance": 0.15,
            "control_duration": 1.1,
            "flags": [],
            "control_flags": [
                "can_move"
            ],
            "tick_actions": [],
            "modifiers": [],
            "color": "#67e8f9"
        },
        "electrified": {
            "display_name": "Électrisation",
            "description": "Peut paralyser brièvement la cible.",
            "kind": "electricity",
            "stacking": "refresh",
            "stack_scaling": "none",
            "duration": 2.5,
            "max_stacks": 1,
            "tick_interval": 0.0,
            "stack_bonus": 0.0,
            "movement_multiplier": 1.0,
            "control_chance": 0.35,
            "control_duration": 1.25,
            "flags": [],
            "control_flags": [
                "can_move",
                "can_attack"
            ],
            "tick_actions": [],
            "modifiers": [],
            "color": "#facc15"
        },
        "hasted": {
            "display_name": "Hâte",
            "description": "Accélère temporairement le joueur.",
            "kind": "buff",
            "stacking": "refresh",
            "stack_scaling": "none",
            "duration": 6.0,
            "max_stacks": 1,
            "tick_interval": 0.0,
            "stack_bonus": 0.0,
            "movement_multiplier": 1.0,
            "control_chance": 0.0,
            "control_duration": 0.0,
            "flags": [],
            "control_flags": [],
            "tick_actions": [],
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "global",
                    "operation": "add",
                    "value": 0.35
                }
            ],
            "color": "#4cc9f0"
        },
        "paralyzed": {
            "display_name": "Paralysie",
            "description": "Bloque le mouvement et les attaques.",
            "kind": "electricity",
            "stacking": "refresh",
            "stack_scaling": "none",
            "duration": 2.0,
            "max_stacks": 1,
            "tick_interval": 0.0,
            "stack_bonus": 0.0,
            "movement_multiplier": 1.0,
            "control_chance": 0.0,
            "control_duration": 0.0,
            "flags": [
                "can_move",
                "can_attack"
            ],
            "control_flags": [],
            "tick_actions": [],
            "modifiers": [],
            "color": "#b5179e"
        }
    },
    "movement_patterns": {
        "static": {
            "display_name": "Immobile",
            "type": "static",
            "speed_multiplier": 0.0,
            "detected_speed_multiplier": 0.0,
            "move_duration": 0.0,
            "rest_duration": 0.0,
            "direction_change_min": 1.2,
            "direction_change_max": 3.2,
            "idle_chance": 0.0
        },
        "linear": {
            "display_name": "Direct",
            "type": "linear",
            "speed_multiplier": 1.0,
            "detected_speed_multiplier": 1.0,
            "move_duration": 0.0,
            "rest_duration": 0.0,
            "direction_change_min": 1.2,
            "direction_change_max": 3.2,
            "idle_chance": 0.0
        },
        "patrol": {
            "display_name": "Patrouille",
            "type": "patrol",
            "speed_multiplier": 0.7,
            "detected_speed_multiplier": 1.0,
            "move_duration": 2.0,
            "rest_duration": 1.2,
            "direction_change_min": 1.2,
            "direction_change_max": 3.2,
            "idle_chance": 0.15
        },
        "small_hop": {
            "display_name": "Petit bond",
            "type": "hop",
            "speed_multiplier": 0.9,
            "detected_speed_multiplier": 1.15,
            "move_duration": 0.45,
            "rest_duration": 0.35,
            "direction_change_min": 0.8,
            "direction_change_max": 2.2,
            "idle_chance": 0.1
        },
        "big_leap": {
            "display_name": "Grand bond",
            "type": "hop",
            "speed_multiplier": 1.1,
            "detected_speed_multiplier": 1.5,
            "move_duration": 0.6,
            "rest_duration": 0.5,
            "direction_change_min": 1.0,
            "direction_change_max": 2.6,
            "idle_chance": 0.05
        },
        "skitter": {
            "display_name": "Course nerveuse",
            "type": "linear",
            "speed_multiplier": 1.3,
            "detected_speed_multiplier": 1.6,
            "move_duration": 0.0,
            "rest_duration": 0.0,
            "direction_change_min": 0.4,
            "direction_change_max": 1.1,
            "idle_chance": 0.05
        },
        "lumber": {
            "display_name": "Pas lourd",
            "type": "linear",
            "speed_multiplier": 0.5,
            "detected_speed_multiplier": 0.7,
            "move_duration": 0.0,
            "rest_duration": 0.0,
            "direction_change_min": 2.0,
            "direction_change_max": 4.5,
            "idle_chance": 0.1
        },
        "stalk": {
            "display_name": "Traque",
            "type": "patrol",
            "speed_multiplier": 0.45,
            "detected_speed_multiplier": 1.25,
            "move_duration": 1.5,
            "rest_duration": 2.0,
            "direction_change_min": 2.0,
            "direction_change_max": 5.0,
            "idle_chance": 0.5
        },
        "hover": {
            "display_name": "Vol stationnaire",
            "type": "patrol",
            "speed_multiplier": 0.9,
            "detected_speed_multiplier": 1.2,
            "move_duration": 1.8,
            "rest_duration": 0.6,
            "direction_change_min": 1.0,
            "direction_change_max": 2.8,
            "idle_chance": 0.2
        }
    },
    "enemies": {
        "crazy_squirrel": {
            "display_name": "Écureuil cinglé",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 999,
            "shape": "triangle",
            "health": 2.0,
            "speed": 100.0,
            "detection_range": 320.0,
            "detection_angle": 250.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 13.3,
            "hurtbox_radius": 57.5,
            "min_size": 0.8,
            "max_size": 1.1,
            "direct_hit": true,
            "direct_damage_min": 1.0,
            "direct_damage_max": 5.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 300.0,
            "attacks": [
                {
                    "pattern": "lunge_bite",
                    "animation": "Jumping_Punch",
                    "damage_min": 2.7,
                    "damage_max": 3.3,
                    "knockback": 300.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "skitter",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#a9714b",
            "drops": [
                {
                    "ingredient_id": "squirrel_meat",
                    "chance": 90.0
                },
                {
                    "ingredient_id": "golden_acorn",
                    "chance": 3.0
                }
            ],
            "model_3d": {
                "path": "res://assets/models/enemies/squirel/squirell.glb",
                "scale": 0.6,
                "rotation_x": 90.0,
                "rotation_y": 0.0,
                "rotation_z": 0.0,
                "offset_x": 0.0,
                "offset_y": 50.0,
                "offset_z": 0.0,
                "upper_body_root_bone": "",
                "animations": {
                    "walk": "Running",
                    "attack": "Running",
                    "hurt": "Knock_Down_1",
                    "death": "Upside_Down_Rope_Hang_2",
                    "idle": "Ladder_Climb_Loop"
                },
                "animation_speeds": {},
                "finish_before_transition": {},
                "animation_in_place": {},
                "animation_layers": {
                    "attack": "full_body"
                },
                "animation_blend_in": {},
                "animation_blend_out": {}
            },
            "visuals": {
                "idle": "crazy_squirrel_idle",
                "walk": "crazy_squirrel_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "attack_turkey": {
            "display_name": "Dindon d'assaut",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 3.0,
            "speed": 110.0,
            "detection_range": 280.0,
            "detection_angle": 180.0,
            "knockback_resistance": 0.02,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.4,
            "max_size": 1.8,
            "direct_hit": true,
            "direct_damage_min": 3.0,
            "direct_damage_max": 3.0,
            "direct_hit_cooldown": 0.45,
            "direct_hit_knockback": 750.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 0.0,
                    "damage_max": 0.0,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.4,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#b4623c",
            "drops": [
                {
                    "ingredient_id": "turkey_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "rage_gizzard",
                    "chance": 8.0
                }
            ],
            "model_3d": {
                "path": "res://assets/models/enemies/axolotl2/Meshy_AI_Pink_Plush_Axolotl_biped_Meshy_AI_Meshy_Merged_Animations.glb",
                "scale": 1.0,
                "rotation_x": 100.0,
                "rotation_y": 0.0,
                "rotation_z": 0.0,
                "offset_x": 0.0,
                "offset_y": 100.0,
                "offset_z": 0.0,
                "upper_body_root_bone": "",
                "animations": {
                    "idle": "Agree_Gesture",
                    "walk": "Walking",
                    "attack": "All_Night_Dance",
                    "death": "All_Night_Dance"
                },
                "animation_speeds": {},
                "finish_before_transition": {},
                "animation_in_place": {},
                "animation_layers": {},
                "animation_blend_in": {},
                "animation_blend_out": {}
            },
            "visuals": {
                "idle": "attack_turkey_idle",
                "walk": "attack_turkey_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "trash_panda": {
            "display_name": "Raton-poubelle",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "circle",
            "health": 3.0,
            "speed": 124.0,
            "detection_range": 300.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.1,
            "max_size": 1.4,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 340.0,
            "attacks": [
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 2.7,
                    "damage_max": 3.3,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.5,
                    "weight": 2.0
                },
                {
                    "pattern": "thrown_debris",
                    "animation": "",
                    "damage_min": 2.7,
                    "damage_max": 3.3,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "small_hop",
            "hero_response": "chase",
            "color": "#6f6a5f",
            "drops": [
                {
                    "ingredient_id": "raccoon_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "pristine_garbage",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "trash_panda_idle",
                "walk": "trash_panda_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "skunk": {
            "display_name": "Moufette toxique",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 5.0,
            "speed": 86.0,
            "detection_range": 260.0,
            "detection_angle": 150.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.0,
            "max_size": 1.3,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 280.0,
            "attacks": [
                {
                    "pattern": "scent_cloud",
                    "animation": "",
                    "damage_min": 1.8,
                    "damage_max": 2.2,
                    "knockback": 280.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "lumber",
            "hero_response": "avoid",
            "color": "#4a4a52",
            "drops": [
                {
                    "ingredient_id": "skunk_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "scent_gland",
                    "chance": 8.0
                }
            ],
            "model_3d": {
                "path": "res://assets/models/enemies/axolot/axolots.glb",
                "scale": 1.0,
                "rotation_x": 0.0,
                "rotation_y": 0.0,
                "rotation_z": 0.0,
                "offset_x": 0.0,
                "offset_y": 0.0,
                "offset_z": 0.0,
                "upper_body_root_bone": "",
                "animations": {
                    "idle": "rig|rig|run",
                    "walk": "rig|rig|run",
                    "attack": "rig|rig|run",
                    "hurt": "rig|rig|run",
                    "death": "rig|rig|run",
                    "special": "rig|rig|run"
                },
                "animation_speeds": {},
                "finish_before_transition": {},
                "animation_in_place": {},
                "animation_layers": {},
                "animation_blend_in": {},
                "animation_blend_out": {}
            },
            "visuals": {
                "idle": "skunk_idle",
                "walk": "skunk_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "cardboard_carl": {
            "display_name": "Carl Carton",
            "spawn_weight": 1.0,
            "spawn_min": 0,
            "spawn_max": 2,
            "shape": "square",
            "health": 19.0,
            "speed": 96.0,
            "detection_range": 340.0,
            "detection_angle": 160.0,
            "knockback_resistance": 0.09,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.6,
            "max_size": 2.0,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 520.0,
            "attacks": [
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 7.2,
                    "damage_max": 8.8,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.2,
                    "weight": 2.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 7.2,
                    "damage_max": 8.8,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#b07a5c",
            "drops": [
                {
                    "ingredient_id": "carl_meat",
                    "chance": 85.0
                },
                {
                    "ingredient_id": "carls_leg",
                    "chance": 14.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "cardboard_carl_idle",
                "walk": "cardboard_carl_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "eltuna": {
            "display_name": "eLTuna",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "hexagon",
            "health": 48.0,
            "speed": 190.0,
            "detection_range": 520.0,
            "detection_angle": 300.0,
            "knockback_resistance": 0.07,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 360.0,
            "attacks": [
                {
                    "pattern": "speed_streak",
                    "animation": "",
                    "damage_min": 9.0,
                    "damage_max": 11.0,
                    "knockback": 360.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.2,
                    "weight": 2.0
                },
                {
                    "pattern": "pollen_burst",
                    "animation": "",
                    "damage_min": 9.0,
                    "damage_max": 11.0,
                    "knockback": 360.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.0,
                    "weight": 1.0
                },
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 9.0,
                    "damage_max": 11.0,
                    "knockback": 360.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#f2c14e",
            "drops": [
                {
                    "ingredient_id": "honeycomb",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_honey",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "eltuna_idle",
                "walk": "eltuna_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "bob_the_horse": {
            "display_name": "Bob le cheval",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "square",
            "health": 40.0,
            "speed": 170.0,
            "detection_range": 420.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.11,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.2,
            "max_size": 2.6,
            "direct_hit": true,
            "direct_damage_min": 4.1,
            "direct_damage_max": 5.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 640.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 8.1,
                    "damage_max": 9.9,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 2.0
                },
                {
                    "pattern": "hoof_kick",
                    "animation": "",
                    "damage_min": 8.1,
                    "damage_max": 9.9,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#c8b273",
            "drops": [
                {
                    "ingredient_id": "oat_bundle",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "golden_carrot",
                    "chance": 30.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "bob_the_horse_idle",
                "walk": "bob_the_horse_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "dock_rat": {
            "display_name": "Rat de quai",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 18.0,
            "speed": 158.0,
            "detection_range": 300.0,
            "detection_angle": 230.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 0.9,
            "max_size": 1.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 300.0,
            "attacks": [
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 12.6,
                    "damage_max": 15.4,
                    "knockback": 300.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.2,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "skitter",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#7a6d63",
            "drops": [
                {
                    "ingredient_id": "dock_rat_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "salted_tail",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "dock_rat_idle",
                "walk": "dock_rat_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "barnacle_brute": {
            "display_name": "Brute aux bernacles",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 36.0,
            "speed": 62.0,
            "detection_range": 260.0,
            "detection_angle": 120.0,
            "knockback_resistance": 0.19,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.4,
            "max_size": 3.0,
            "direct_hit": true,
            "direct_damage_min": 5.4,
            "direct_damage_max": 6.6,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 700.0,
            "attacks": [
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 10.8,
                    "damage_max": 13.2,
                    "knockback": 700.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.2,
                    "weight": 2.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 10.8,
                    "damage_max": 13.2,
                    "knockback": 700.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#8fae9c",
            "drops": [
                {
                    "ingredient_id": "barnacle_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "black_pearl_roe",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "barnacle_brute_idle",
                "walk": "barnacle_brute_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "loaded_dice_crab": {
            "display_name": "Crabe aux dés pipés",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "hexagon",
            "health": 25.0,
            "speed": 104.0,
            "detection_range": 320.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.04,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.3,
            "max_size": 1.7,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 400.0,
            "attacks": [
                {
                    "pattern": "pincer_snap",
                    "animation": "",
                    "damage_min": 13.5,
                    "damage_max": 16.5,
                    "knockback": 400.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.6,
                    "weight": 2.0
                },
                {
                    "pattern": "thrown_debris",
                    "animation": "",
                    "damage_min": 13.5,
                    "damage_max": 16.5,
                    "knockback": 400.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#e2703a",
            "drops": [
                {
                    "ingredient_id": "crab_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "loaded_claw",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "loaded_dice_crab_idle",
                "walk": "loaded_dice_crab_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "siren_dancer": {
            "display_name": "Danseuse sirène",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "diamond",
            "health": 20.0,
            "speed": 118.0,
            "detection_range": 360.0,
            "detection_angle": 260.0,
            "knockback_resistance": 0.02,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.4,
            "max_size": 1.8,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 340.0,
            "attacks": [
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 15.3,
                    "damage_max": 18.7,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 2.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 15.3,
                    "damage_max": 18.7,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#4fb0c6",
            "drops": [
                {
                    "ingredient_id": "siren_fillet",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "glitter_scale",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "siren_dancer_idle",
                "walk": "siren_dancer_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "powder_gull": {
            "display_name": "Goéland à poudre",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 19.0,
            "speed": 172.0,
            "detection_range": 420.0,
            "detection_angle": 280.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.2,
            "max_size": 1.6,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 320.0,
            "attacks": [
                {
                    "pattern": "dive_bomb",
                    "animation": "",
                    "damage_min": 14.4,
                    "damage_max": 17.6,
                    "knockback": 320.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.2,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "big_leap",
            "hero_response": "chase",
            "color": "#b9bfc7",
            "drops": [
                {
                    "ingredient_id": "gull_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "gunpowder_gizzard",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "powder_gull_idle",
                "walk": "powder_gull_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "gab_le_crab": {
            "display_name": "Gab le Crabe",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "hexagon",
            "health": 75.0,
            "speed": 126.0,
            "detection_range": 460.0,
            "detection_angle": 240.0,
            "knockback_resistance": 0.14,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.4,
            "max_size": 2.8,
            "direct_hit": true,
            "direct_damage_min": 8.1,
            "direct_damage_max": 9.9,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 620.0,
            "attacks": [
                {
                    "pattern": "pincer_snap",
                    "animation": "",
                    "damage_min": 16.2,
                    "damage_max": 19.8,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.5,
                    "weight": 3.0
                },
                {
                    "pattern": "rolling_bounce",
                    "animation": "",
                    "damage_min": 16.2,
                    "damage_max": 19.8,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 1.0
                },
                {
                    "pattern": "thrown_debris",
                    "animation": "",
                    "damage_min": 16.2,
                    "damage_max": 19.8,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#c94f2f",
            "drops": [
                {
                    "ingredient_id": "shedded_crab_meat",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "lucky_pearl",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "gab_le_crab_idle",
                "walk": "gab_le_crab_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "turnstile_drone": {
            "display_name": "Drone tourniquet",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 100.0,
            "speed": 54.0,
            "detection_range": 280.0,
            "detection_angle": 360.0,
            "knockback_resistance": 0.18,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 520.0,
            "attacks": [
                {
                    "pattern": "spin_swipe",
                    "animation": "",
                    "damage_min": 22.5,
                    "damage_max": 27.5,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "static",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#9aa1a8",
            "drops": [
                {
                    "ingredient_id": "protein_cartridge",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "lubricant_gel",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "turnstile_drone_idle",
                "walk": "turnstile_drone_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "camera_hound": {
            "display_name": "Molosse caméra",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 85.0,
            "speed": 146.0,
            "detection_range": 480.0,
            "detection_angle": 120.0,
            "knockback_resistance": 0.05,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.4,
            "max_size": 1.8,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 420.0,
            "attacks": [
                {
                    "pattern": "flash_mark",
                    "animation": "",
                    "damage_min": 22.5,
                    "damage_max": 27.5,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 1.0
                },
                {
                    "pattern": "lunge_bite",
                    "animation": "",
                    "damage_min": 22.5,
                    "damage_max": 27.5,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.6,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#6b6f76",
            "drops": [
                {
                    "ingredient_id": "hound_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "lens_jelly",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "camera_hound_idle",
                "walk": "camera_hound_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "concrete_golem": {
            "display_name": "Golem de béton",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 160.0,
            "speed": 52.0,
            "detection_range": 260.0,
            "detection_angle": 110.0,
            "knockback_resistance": 0.26,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.8,
            "max_size": 3.4,
            "direct_hit": true,
            "direct_damage_min": 8.6,
            "direct_damage_max": 10.5,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 820.0,
            "attacks": [
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 17.1,
                    "damage_max": 20.9,
                    "knockback": 820.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.6,
                    "weight": 2.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 17.1,
                    "damage_max": 20.9,
                    "knockback": 820.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#b8b5ad",
            "drops": [
                {
                    "ingredient_id": "concrete_tofu",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "rebar_jerky",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "concrete_golem_idle",
                "walk": "concrete_golem_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "maintenance_roach": {
            "display_name": "Cafard d'entretien",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 55.0,
            "speed": 164.0,
            "detection_range": 280.0,
            "detection_angle": 240.0,
            "knockback_resistance": 0.0,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 0.8,
            "max_size": 1.1,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 260.0,
            "attacks": [
                {
                    "pattern": "acid_swarm",
                    "animation": "",
                    "damage_min": 14.4,
                    "damage_max": 17.6,
                    "knockback": 260.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.2,
                    "weight": 1.0
                },
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 14.4,
                    "damage_max": 17.6,
                    "knockback": 260.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.3,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "skitter",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#5a4a3a",
            "drops": [
                {
                    "ingredient_id": "roach_protein",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "coolant_sac",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "maintenance_roach_idle",
                "walk": "maintenance_roach_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "coach_chrome": {
            "display_name": "Coach Chrome",
            "spawn_weight": 1.0,
            "spawn_min": 0,
            "spawn_max": 2,
            "shape": "diamond",
            "health": 125.0,
            "speed": 132.0,
            "detection_range": 420.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.11,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 560.0,
            "attacks": [
                {
                    "pattern": "rally_cry",
                    "animation": "",
                    "damage_min": 25.2,
                    "damage_max": 30.8,
                    "knockback": 560.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 7.0,
                    "weight": 1.0
                },
                {
                    "pattern": "shield_bash",
                    "animation": "",
                    "damage_min": 25.2,
                    "damage_max": 30.8,
                    "knockback": 560.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#c98f6b",
            "drops": [
                {
                    "ingredient_id": "coach_cutlet",
                    "chance": 85.0
                },
                {
                    "ingredient_id": "performance_serum",
                    "chance": 14.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "coach_chrome_idle",
                "walk": "coach_chrome_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "jeremie": {
            "display_name": "Jérémie",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "triangle",
            "health": 300.0,
            "speed": 240.0,
            "detection_range": 560.0,
            "detection_angle": 300.0,
            "knockback_resistance": 0.09,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.7,
            "max_size": 2.1,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 420.0,
            "attacks": [
                {
                    "pattern": "speed_streak",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.6,
                    "weight": 3.0
                },
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.2,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "skitter",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#f2d94e",
            "drops": [
                {
                    "ingredient_id": "energy_gel",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "lightning_salt",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "jeremie_idle",
                "walk": "jeremie_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "cinder_crow": {
            "display_name": "Corbeau de braise",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 225.0,
            "speed": 168.0,
            "detection_range": 440.0,
            "detection_angle": 280.0,
            "knockback_resistance": 0.02,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.2,
            "max_size": 1.6,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 300.0,
            "attacks": [
                {
                    "pattern": "blade_seeds",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 300.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                },
                {
                    "pattern": "dive_bomb",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 300.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "big_leap",
            "hero_response": "chase",
            "color": "#4a3f4a",
            "drops": [
                {
                    "ingredient_id": "crow_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "ember_feather",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "cinder_crow_idle",
                "walk": "cinder_crow_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "magma_marmot": {
            "display_name": "Marmotte de magma",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "circle",
            "health": 300.0,
            "speed": 112.0,
            "detection_range": 300.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.05,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.3,
            "max_size": 1.7,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 380.0,
            "attacks": [
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 380.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.0,
                    "weight": 1.0
                },
                {
                    "pattern": "bite_cone",
                    "animation": "",
                    "damage_min": 27.0,
                    "damage_max": 33.0,
                    "knockback": 380.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "small_hop",
            "detected_movement": "big_leap",
            "hero_response": "chase",
            "color": "#a5714a",
            "drops": [
                {
                    "ingredient_id": "marmot_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "lava_fat",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "magma_marmot_idle",
                "walk": "magma_marmot_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "ironhide_goat": {
            "display_name": "Chèvre cuirassée",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 450.0,
            "speed": 138.0,
            "detection_range": 380.0,
            "detection_angle": 150.0,
            "knockback_resistance": 0.18,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.0,
            "max_size": 2.5,
            "direct_hit": true,
            "direct_damage_min": 11.7,
            "direct_damage_max": 14.3,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 720.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 23.4,
                    "damage_max": 28.6,
                    "knockback": 720.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.8,
                    "weight": 2.0
                },
                {
                    "pattern": "hoof_kick",
                    "animation": "",
                    "damage_min": 23.4,
                    "damage_max": 28.6,
                    "knockback": 720.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.2,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#c2a68a",
            "drops": [
                {
                    "ingredient_id": "goat_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "iron_milk",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "ironhide_goat_idle",
                "walk": "ironhide_goat_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "headbanger_ram": {
            "display_name": "Bélier métalleux",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 866.0,
            "speed": 104.0,
            "detection_range": 400.0,
            "detection_angle": 180.0,
            "knockback_resistance": 0.21,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.6,
            "max_size": 3.2,
            "direct_hit": true,
            "direct_damage_min": 21.2,
            "direct_damage_max": 25.9,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 880.0,
            "attacks": [
                {
                    "pattern": "rhythm_pulse",
                    "animation": "",
                    "damage_min": 42.3,
                    "damage_max": 51.7,
                    "knockback": 880.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.5,
                    "weight": 1.0
                },
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 42.3,
                    "damage_max": 51.7,
                    "knockback": 880.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.2,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#8a5a4a",
            "drops": [
                {
                    "ingredient_id": "ram_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "resonant_marrow",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "headbanger_ram_idle",
                "walk": "headbanger_ram_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "pyro_pete": {
            "display_name": "Pyro Pete",
            "spawn_weight": 1.0,
            "spawn_min": 0,
            "spawn_max": 2,
            "shape": "diamond",
            "health": 766.0,
            "speed": 118.0,
            "detection_range": 460.0,
            "detection_angle": 190.0,
            "knockback_resistance": 0.11,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 480.0,
            "attacks": [
                {
                    "pattern": "flame_line",
                    "animation": "",
                    "damage_min": 46.8,
                    "damage_max": 57.2,
                    "knockback": 480.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 2.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 46.8,
                    "damage_max": 57.2,
                    "knockback": 480.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.2,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#f07b28",
            "drops": [
                {
                    "ingredient_id": "charred_meat",
                    "chance": 85.0
                },
                {
                    "ingredient_id": "hot_sauce_blood",
                    "chance": 14.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "pyro_pete_idle",
                "walk": "pyro_pete_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "gars_rond": {
            "display_name": "Gars-Rond",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "circle",
            "health": 2000.0,
            "speed": 126.0,
            "detection_range": 520.0,
            "detection_angle": 220.0,
            "knockback_resistance": 0.25,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 3.0,
            "max_size": 3.6,
            "direct_hit": true,
            "direct_damage_min": 24.3,
            "direct_damage_max": 29.7,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 960.0,
            "attacks": [
                {
                    "pattern": "rolling_bounce",
                    "animation": "",
                    "damage_min": 48.6,
                    "damage_max": 59.4,
                    "knockback": 960.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 2.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 48.6,
                    "damage_max": 59.4,
                    "knockback": 960.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.5,
                    "weight": 1.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 48.6,
                    "damage_max": 59.4,
                    "knockback": 960.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#6b3f2a",
            "drops": [
                {
                    "ingredient_id": "rock_salt",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "molten_truffle",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "gars_rond_idle",
                "walk": "gars_rond_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "shaman_musicalo": {
            "display_name": "Shaman Musicalo",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "hexagon",
            "health": 1665.0,
            "speed": 112.0,
            "detection_range": 540.0,
            "detection_angle": 320.0,
            "knockback_resistance": 0.12,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 420.0,
            "attacks": [
                {
                    "pattern": "rhythm_pulse",
                    "animation": "",
                    "damage_min": 45.0,
                    "damage_max": 55.0,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 2.0
                },
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 45.0,
                    "damage_max": 55.0,
                    "knockback": 420.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.5,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "hover",
            "hero_response": "chase",
            "color": "#b892d8",
            "drops": [
                {
                    "ingredient_id": "rhythm_herb",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "echo_mushroom",
                    "chance": 30.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "shaman_musicalo_idle",
                "walk": "shaman_musicalo_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "eggforcer": {
            "display_name": "Eggforcer",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 1650.0,
            "speed": 112.0,
            "detection_range": 360.0,
            "detection_angle": 160.0,
            "knockback_resistance": 0.16,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.7,
            "max_size": 2.1,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 600.0,
            "attacks": [
                {
                    "pattern": "shield_bash",
                    "animation": "",
                    "damage_min": 54.0,
                    "damage_max": 66.0,
                    "knockback": 600.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.8,
                    "weight": 2.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 54.0,
                    "damage_max": 66.0,
                    "knockback": 600.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#d8d2c4",
            "drops": [
                {
                    "ingredient_id": "enforcer_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "pepper_marinade",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "eggforcer_idle",
                "walk": "eggforcer_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "vote_vulture": {
            "display_name": "Vautour électoral",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 1200.0,
            "speed": 158.0,
            "detection_range": 460.0,
            "detection_angle": 280.0,
            "knockback_resistance": 0.04,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.4,
            "max_size": 1.8,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 340.0,
            "attacks": [
                {
                    "pattern": "paper_volley",
                    "animation": "",
                    "damage_min": 56.7,
                    "damage_max": 69.3,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.6,
                    "weight": 2.0
                },
                {
                    "pattern": "dive_bomb",
                    "animation": "",
                    "damage_min": 56.7,
                    "damage_max": 69.3,
                    "knockback": 340.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "big_leap",
            "hero_response": "chase",
            "color": "#6a6259",
            "drops": [
                {
                    "ingredient_id": "vulture_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "stolen_ballot_spice",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "vote_vulture_idle",
                "walk": "vote_vulture_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "barricade_boar": {
            "display_name": "Sanglier de barricade",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 2100.0,
            "speed": 132.0,
            "detection_range": 400.0,
            "detection_angle": 150.0,
            "knockback_resistance": 0.19,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.6,
            "max_size": 3.2,
            "direct_hit": true,
            "direct_damage_min": 25.7,
            "direct_damage_max": 31.4,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 900.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 51.3,
                    "damage_max": 62.7,
                    "knockback": 900.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 2.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 51.3,
                    "damage_max": 62.7,
                    "knockback": 900.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#8a6a5c",
            "drops": [
                {
                    "ingredient_id": "boar_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "riot_truffle",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "barricade_boar_idle",
                "walk": "barricade_boar_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "campaign_goon": {
            "display_name": "Gros bras de campagne",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "diamond",
            "health": 1275.0,
            "speed": 120.0,
            "detection_range": 340.0,
            "detection_angle": 190.0,
            "knockback_resistance": 0.07,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.6,
            "max_size": 2.0,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 520.0,
            "attacks": [
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 45.9,
                    "damage_max": 56.1,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 2.0
                },
                {
                    "pattern": "rally_cry",
                    "animation": "",
                    "damage_min": 45.9,
                    "damage_max": 56.1,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 8.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#b07a6a",
            "drops": [
                {
                    "ingredient_id": "goon_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "lobbyist_lard",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "campaign_goon_idle",
                "walk": "campaign_goon_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "spin_doctor_steve": {
            "display_name": "Steve la Girouette",
            "spawn_weight": 1.0,
            "spawn_min": 0,
            "spawn_max": 2,
            "shape": "hexagon",
            "health": 1650.0,
            "speed": 126.0,
            "detection_range": 480.0,
            "detection_angle": 240.0,
            "knockback_resistance": 0.09,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.6,
            "max_size": 2.0,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 440.0,
            "attacks": [
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 62.1,
                    "damage_max": 75.9,
                    "knockback": 440.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 2.0
                },
                {
                    "pattern": "paper_volley",
                    "animation": "",
                    "damage_min": 62.1,
                    "damage_max": 75.9,
                    "knockback": 440.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.8,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "hover",
            "hero_response": "chase",
            "color": "#c9a27a",
            "drops": [
                {
                    "ingredient_id": "spin_doctor_meat",
                    "chance": 85.0
                },
                {
                    "ingredient_id": "premium_spin_sauce",
                    "chance": 14.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "spin_doctor_steve_idle",
                "walk": "spin_doctor_steve_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "mld": {
            "display_name": "MLD",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "diamond",
            "health": 3750.0,
            "speed": 134.0,
            "detection_range": 540.0,
            "detection_angle": 260.0,
            "knockback_resistance": 0.14,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.9,
            "max_size": 2.3,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 620.0,
            "attacks": [
                {
                    "pattern": "rally_cry",
                    "animation": "",
                    "damage_min": 64.8,
                    "damage_max": 79.2,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.0,
                    "weight": 2.0
                },
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 64.8,
                    "damage_max": 79.2,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.6,
                    "weight": 2.0
                },
                {
                    "pattern": "shield_bash",
                    "animation": "",
                    "damage_min": 64.8,
                    "damage_max": 79.2,
                    "knockback": 620.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#e8c33a",
            "drops": [
                {
                    "ingredient_id": "campaign_ration",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "dictator_mustard",
                    "chance": 30.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "mld_idle",
                "walk": "mld_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "tunnel_rat": {
            "display_name": "Rat des tunnels",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "triangle",
            "health": 2625.0,
            "speed": 166.0,
            "detection_range": 300.0,
            "detection_angle": 340.0,
            "knockback_resistance": 0.04,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.1,
            "max_size": 1.5,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 320.0,
            "attacks": [
                {
                    "pattern": "lunge_bite",
                    "animation": "",
                    "damage_min": 77.4,
                    "damage_max": 94.6,
                    "knockback": 320.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "stalk",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#7a7168",
            "drops": [
                {
                    "ingredient_id": "tunnel_rat_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "metro_mushroom",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "tunnel_rat_idle",
                "walk": "tunnel_rat_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "rootbound_mannequin": {
            "display_name": "Mannequin enraciné",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 5075.0,
            "speed": 74.0,
            "detection_range": 340.0,
            "detection_angle": 170.0,
            "knockback_resistance": 0.18,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.8,
            "max_size": 2.2,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 560.0,
            "attacks": [
                {
                    "pattern": "grasping_roots",
                    "animation": "",
                    "damage_min": 64.8,
                    "damage_max": 79.2,
                    "knockback": 560.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 2.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 64.8,
                    "damage_max": 79.2,
                    "knockback": 560.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.6,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "static",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#d9d2c2",
            "drops": [
                {
                    "ingredient_id": "plastic_tofu",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "moss_heart",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "rootbound_mannequin_idle",
                "walk": "rootbound_mannequin_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "platform_mimic": {
            "display_name": "Mimique de quai",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 7500.0,
            "speed": 96.0,
            "detection_range": 220.0,
            "detection_angle": 360.0,
            "knockback_resistance": 0.16,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.0,
            "max_size": 2.5,
            "direct_hit": true,
            "direct_damage_min": 59.4,
            "direct_damage_max": 72.6,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 680.0,
            "attacks": [
                {
                    "pattern": "furniture_snap",
                    "animation": "",
                    "damage_min": 118.8,
                    "damage_max": 145.2,
                    "knockback": 680.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 2.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 118.8,
                    "damage_max": 145.2,
                    "knockback": 680.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "static",
            "detected_movement": "big_leap",
            "hero_response": "chase",
            "color": "#6a4a6a",
            "drops": [
                {
                    "ingredient_id": "mimic_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "lost_lunch",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "platform_mimic_idle",
                "walk": "platform_mimic_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "mascot_husk": {
            "display_name": "Carcasse de mascotte",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 6750.0,
            "speed": 88.0,
            "detection_range": 420.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.18,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.2,
            "max_size": 2.8,
            "direct_hit": true,
            "direct_damage_min": 54.0,
            "direct_damage_max": 66.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 640.0,
            "attacks": [
                {
                    "pattern": "confetti_storm",
                    "animation": "",
                    "damage_min": 108.0,
                    "damage_max": 132.0,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.0,
                    "weight": 1.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 108.0,
                    "damage_max": 132.0,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.8,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "stalk",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#e8b3c8",
            "drops": [
                {
                    "ingredient_id": "mascot_filling",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "red_nose_cherry",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "mascot_husk_idle",
                "walk": "mascot_husk_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "lost_shopper": {
            "display_name": "Client perdu",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "diamond",
            "health": 7875.0,
            "speed": 142.0,
            "detection_range": 360.0,
            "detection_angle": 220.0,
            "knockback_resistance": 0.11,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.6,
            "max_size": 2.0,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 500.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 102.6,
                    "damage_max": 125.4,
                    "knockback": 500.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.2,
                    "weight": 2.0
                },
                {
                    "pattern": "thrown_debris",
                    "animation": "",
                    "damage_min": 102.6,
                    "damage_max": 125.4,
                    "knockback": 500.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.8,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#a89a8a",
            "drops": [
                {
                    "ingredient_id": "shopper_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "food_court_sauce",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "lost_shopper_idle",
                "walk": "lost_shopper_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "abominable_party_man": {
            "display_name": "Abominable homme des parties",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "circle",
            "health": 12000.0,
            "speed": 128.0,
            "detection_range": 560.0,
            "detection_angle": 300.0,
            "knockback_resistance": 0.21,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 3.0,
            "max_size": 3.6,
            "direct_hit": true,
            "direct_damage_min": 71.1,
            "direct_damage_max": 86.9,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 900.0,
            "attacks": [
                {
                    "pattern": "confetti_storm",
                    "animation": "",
                    "damage_min": 142.2,
                    "damage_max": 173.8,
                    "knockback": 900.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.0,
                    "weight": 2.0
                },
                {
                    "pattern": "furniture_snap",
                    "animation": "",
                    "damage_min": 142.2,
                    "damage_max": 173.8,
                    "knockback": 900.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.4,
                    "weight": 2.0
                },
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 142.2,
                    "damage_max": 173.8,
                    "knockback": 900.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "stalk",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#d63a3a",
            "drops": [
                {
                    "ingredient_id": "party_mix",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "forbidden_punch",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "abominable_party_man_idle",
                "walk": "abominable_party_man_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "battery_hen": {
            "display_name": "Poule-batterie",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "oval",
            "health": 7500.0,
            "speed": 126.0,
            "detection_range": 320.0,
            "detection_angle": 240.0,
            "knockback_resistance": 0.05,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.3,
            "max_size": 1.7,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 380.0,
            "attacks": [
                {
                    "pattern": "electric_peck",
                    "animation": "",
                    "damage_min": 115.2,
                    "damage_max": 140.8,
                    "knockback": 380.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 1.4,
                    "weight": 2.0
                },
                {
                    "pattern": "sound_wave",
                    "animation": "",
                    "damage_min": 115.2,
                    "damage_max": 140.8,
                    "knockback": 380.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "skitter",
            "hero_response": "chase",
            "color": "#e8c9a0",
            "drops": [
                {
                    "ingredient_id": "chicken_meat",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "battery_egg",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "battery_hen_idle",
                "walk": "battery_hen_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "conveyor_hog": {
            "display_name": "Porc de convoyeur",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 13500.0,
            "speed": 144.0,
            "detection_range": 420.0,
            "detection_angle": 160.0,
            "knockback_resistance": 0.21,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.8,
            "max_size": 3.4,
            "direct_hit": true,
            "direct_damage_min": 67.5,
            "direct_damage_max": 82.5,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 960.0,
            "attacks": [
                {
                    "pattern": "straight_charge",
                    "animation": "",
                    "damage_min": 135.0,
                    "damage_max": 165.0,
                    "knockback": 960.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.6,
                    "weight": 3.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 135.0,
                    "damage_max": 165.0,
                    "knockback": 960.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.6,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#e0a0a0",
            "drops": [
                {
                    "ingredient_id": "pork",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "conveyor_bacon",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "conveyor_hog_idle",
                "walk": "conveyor_hog_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "factory_cow": {
            "display_name": "Vache d'usine",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "square",
            "health": 15500.0,
            "speed": 56.0,
            "detection_range": 280.0,
            "detection_angle": 130.0,
            "knockback_resistance": 0.3,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 3.2,
            "max_size": 4.0,
            "direct_hit": true,
            "direct_damage_min": 57.6,
            "direct_damage_max": 70.4,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 1100.0,
            "attacks": [
                {
                    "pattern": "steam_release",
                    "animation": "",
                    "damage_min": 115.2,
                    "damage_max": 140.8,
                    "knockback": 1100.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.5,
                    "weight": 2.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 115.2,
                    "damage_max": 140.8,
                    "knockback": 1100.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "lumber",
            "detected_movement": "lumber",
            "hero_response": "chase",
            "color": "#a03a3a",
            "drops": [
                {
                    "ingredient_id": "beef",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "synthetic_marbling",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "factory_cow_idle",
                "walk": "factory_cow_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "harvester_drone": {
            "display_name": "Drone moissonneur",
            "spawn_weight": 3.0,
            "spawn_min": 0,
            "spawn_max": 6,
            "shape": "hexagon",
            "health": 9000.0,
            "speed": 138.0,
            "detection_range": 520.0,
            "detection_angle": 260.0,
            "knockback_resistance": 0.12,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.7,
            "max_size": 2.1,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 520.0,
            "attacks": [
                {
                    "pattern": "blade_seeds",
                    "animation": "",
                    "damage_min": 142.2,
                    "damage_max": 173.8,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.4,
                    "weight": 2.0
                },
                {
                    "pattern": "spin_swipe",
                    "animation": "",
                    "damage_min": 142.2,
                    "damage_max": 173.8,
                    "knockback": 520.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "hover",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#8ab04a",
            "drops": [
                {
                    "ingredient_id": "crop_protein",
                    "chance": 70.0
                },
                {
                    "ingredient_id": "perfect_tomato",
                    "chance": 8.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "harvester_drone_idle",
                "walk": "harvester_drone_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "quality_control_bot": {
            "display_name": "Robot de contrôle qualité",
            "spawn_weight": 1.0,
            "spawn_min": 0,
            "spawn_max": 2,
            "shape": "square",
            "health": 12000.0,
            "speed": 120.0,
            "detection_range": 600.0,
            "detection_angle": 200.0,
            "knockback_resistance": 0.18,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 1.9,
            "max_size": 2.3,
            "direct_hit": false,
            "direct_damage_min": 0.0,
            "direct_damage_max": 0.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 600.0,
            "attacks": [
                {
                    "pattern": "scan_beam",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 600.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.6,
                    "weight": 2.0
                },
                {
                    "pattern": "shield_bash",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 600.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#f0f0ea",
            "drops": [
                {
                    "ingredient_id": "approved_protein",
                    "chance": 85.0
                },
                {
                    "ingredient_id": "reject_spice",
                    "chance": 14.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "quality_control_bot_idle",
                "walk": "quality_control_bot_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "big_egg_one": {
            "display_name": "Big Egg — première confrontation",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "oval",
            "health": 90.0,
            "speed": 104.0,
            "detection_range": 520.0,
            "detection_angle": 240.0,
            "knockback_resistance": 0.12,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.4,
            "max_size": 2.8,
            "direct_hit": true,
            "direct_damage_min": 9.0,
            "direct_damage_max": 11.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 640.0,
            "attacks": [
                {
                    "pattern": "drone_volley",
                    "animation": "",
                    "damage_min": 18.0,
                    "damage_max": 22.0,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.2,
                    "weight": 2.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 18.0,
                    "damage_max": 22.0,
                    "knockback": 640.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#fbf6ec",
            "drops": [
                {
                    "ingredient_id": "big_egg_white",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_yolk",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "big_egg_one_idle",
                "walk": "big_egg_one_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "big_egg_two": {
            "display_name": "Big Egg — deuxième confrontation",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "oval",
            "health": 400.0,
            "speed": 112.0,
            "detection_range": 540.0,
            "detection_angle": 260.0,
            "knockback_resistance": 0.16,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.6,
            "max_size": 3.0,
            "direct_hit": true,
            "direct_damage_min": 15.8,
            "direct_damage_max": 19.3,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 700.0,
            "attacks": [
                {
                    "pattern": "drone_volley",
                    "animation": "",
                    "damage_min": 31.5,
                    "damage_max": 38.5,
                    "knockback": 700.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 2.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 31.5,
                    "damage_max": 38.5,
                    "knockback": 700.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.0,
                    "weight": 1.0
                },
                {
                    "pattern": "wide_swipe",
                    "animation": "",
                    "damage_min": 31.5,
                    "damage_max": 38.5,
                    "knockback": 700.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.4,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#f7ecd8",
            "drops": [
                {
                    "ingredient_id": "big_egg_white",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_yolk",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "big_egg_two_idle",
                "walk": "big_egg_two_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "big_egg_three": {
            "display_name": "Big Egg — troisième confrontation",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "oval",
            "health": 1800.0,
            "speed": 120.0,
            "detection_range": 560.0,
            "detection_angle": 280.0,
            "knockback_resistance": 0.19,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 2.8,
            "max_size": 3.3,
            "direct_hit": true,
            "direct_damage_min": 27.0,
            "direct_damage_max": 33.0,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 780.0,
            "attacks": [
                {
                    "pattern": "drone_volley",
                    "animation": "",
                    "damage_min": 54.0,
                    "damage_max": 66.0,
                    "knockback": 780.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.8,
                    "weight": 2.0
                },
                {
                    "pattern": "flame_line",
                    "animation": "",
                    "damage_min": 54.0,
                    "damage_max": 66.0,
                    "knockback": 780.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 1.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 54.0,
                    "damage_max": 66.0,
                    "knockback": 780.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.5,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#f2e2c4",
            "drops": [
                {
                    "ingredient_id": "big_egg_white",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_yolk",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "big_egg_three_idle",
                "walk": "big_egg_three_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "big_egg_four": {
            "display_name": "Big Egg — quatrième confrontation",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "oval",
            "health": 6000.0,
            "speed": 128.0,
            "detection_range": 600.0,
            "detection_angle": 300.0,
            "knockback_resistance": 0.23,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 3.0,
            "max_size": 3.6,
            "direct_hit": true,
            "direct_damage_min": 49.5,
            "direct_damage_max": 60.5,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 860.0,
            "attacks": [
                {
                    "pattern": "drone_volley",
                    "animation": "",
                    "damage_min": 99.0,
                    "damage_max": 121.0,
                    "knockback": 860.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.6,
                    "weight": 3.0
                },
                {
                    "pattern": "flame_line",
                    "animation": "",
                    "damage_min": 99.0,
                    "damage_max": 121.0,
                    "knockback": 860.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 1.0
                },
                {
                    "pattern": "confetti_storm",
                    "animation": "",
                    "damage_min": 99.0,
                    "damage_max": 121.0,
                    "knockback": 860.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 6.0,
                    "weight": 1.0
                },
                {
                    "pattern": "heavy_slam",
                    "animation": "",
                    "damage_min": 99.0,
                    "damage_max": 121.0,
                    "knockback": 860.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.0,
                    "weight": 1.0
                }
            ],
            "undetected_movement": "patrol",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#eed8a8",
            "drops": [
                {
                    "ingredient_id": "big_egg_white",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_yolk",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "big_egg_four_idle",
                "walk": "big_egg_four_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        },
        "big_big_egg": {
            "display_name": "BIG BIG EGG",
            "spawn_weight": 0.0,
            "spawn_min": 1,
            "spawn_max": 1,
            "shape": "oval",
            "health": 15000.0,
            "speed": 132.0,
            "detection_range": 700.0,
            "detection_angle": 360.0,
            "knockback_resistance": 0.26,
            "hurtbox_length": 0.0,
            "hurtbox_radius": 0.0,
            "min_size": 3.6,
            "max_size": 4.4,
            "direct_hit": true,
            "direct_damage_min": 74.3,
            "direct_damage_max": 90.8,
            "direct_hit_cooldown": 1.2,
            "direct_hit_knockback": 1200.0,
            "attacks": [
                {
                    "pattern": "drone_volley",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 1200.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 2.2,
                    "weight": 3.0
                },
                {
                    "pattern": "scan_beam",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 1200.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 3.4,
                    "weight": 2.0
                },
                {
                    "pattern": "steam_release",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 1200.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 5.0,
                    "weight": 1.0
                },
                {
                    "pattern": "shockwave_stomp",
                    "animation": "",
                    "damage_min": 148.5,
                    "damage_max": 181.5,
                    "knockback": 1200.0,
                    "interrupt_chance": 100.0,
                    "cooldown": 4.0,
                    "weight": 2.0
                }
            ],
            "undetected_movement": "linear",
            "detected_movement": "linear",
            "hero_response": "chase",
            "color": "#f5b301",
            "drops": [
                {
                    "ingredient_id": "big_egg_white",
                    "chance": 100.0
                },
                {
                    "ingredient_id": "royal_yolk",
                    "chance": 40.0
                }
            ],
            "model_3d": {},
            "visuals": {
                "idle": "big_big_egg_idle",
                "walk": "big_big_egg_walk"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "spawn": [],
                    "death": [],
                    "random": []
                }
            },
            "on_kill": [
                {
                    "op": "set",
                    "path": "fact.boss_defeated",
                    "value": true
                }
            ],
            "on_spawn": [],
            "on_damage_player": [],
            "on_hurt": []
        }
    },
    "recipes": {
        "squirrel_skewer": {
            "display_name": "XXX Brochette d'écureuil",
            "ingredients": {
                "squirrel_meat": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 3.0,
            "sale_price": 1,
            "conditions": [
                {
                    "path": "ingredients.squirrel_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 10.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_squirrel_skewer"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "turkey_panic_roast": {
            "display_name": "Rôti de dindon paniqué",
            "ingredients": {
                "turkey_meat": 1
            },
            "categories": [
                "meat"
            ],
            "cook_time": 2.0,
            "sale_price": 1,
            "conditions": [],
            "combat_consumable": {
                "mode": "eat",
                "heal": 10.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_turkey_panic_roast"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "trash_funk_stew": {
            "display_name": "Ragoût funk-poubelle",
            "ingredients": {
                "raccoon_meat": 1,
                "skunk_meat": 1
            },
            "categories": [
                "meat",
                "trash"
            ],
            "cook_time": 4.0,
            "sale_price": 6,
            "conditions": [
                {
                    "path": "ingredients.raccoon_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.skunk_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "throw",
                "heal": 0.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 92.0,
                "throw_damage": 10.0,
                "modifiers": [],
                "combat_effects": [
                    {
                        "effect": "poisoned",
                        "chance": 70.0
                    }
                ]
            },
            "visuals": {
                "plated": "dish_trash_funk_stew"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "scented_squirrel_roast": {
            "display_name": "Rôti d'écureuil parfumé",
            "ingredients": {
                "squirrel_meat": 1,
                "scent_gland": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 4.0,
            "sale_price": 7,
            "conditions": [
                {
                    "path": "ingredients.squirrel_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.scent_gland.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 22.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_scented_squirrel_roast"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "carls_turkey_dog": {
            "display_name": "Le hot-dog de Carl",
            "ingredients": {
                "carl_meat": 1,
                "turkey_meat": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 3.5,
            "sale_price": 6,
            "conditions": [
                {
                    "path": "ingredients.carl_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.turkey_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 20.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_carls_turkey_dog"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "royal_crater_platter": {
            "display_name": "Assiette royale du Cratère",
            "ingredients": {
                "honeycomb": 1,
                "rage_gizzard": 1,
                "pristine_garbage": 1
            },
            "categories": [
                "meat",
                "dessert",
                "trash"
            ],
            "cook_time": 5.0,
            "sale_price": 9,
            "conditions": [
                {
                    "path": "ingredients.honeycomb.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.rage_gizzard.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.pristine_garbage.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 26.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_royal_crater_platter"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "bobs_golden_trail_mix": {
            "display_name": "Mélange doré de Bob",
            "ingredients": {
                "oat_bundle": 1,
                "golden_acorn": 1,
                "royal_honey": 1
            },
            "categories": [
                "vegetal",
                "dessert"
            ],
            "cook_time": 5.0,
            "sale_price": 9,
            "conditions": [
                {
                    "path": "ingredients.oat_bundle.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.golden_acorn.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.royal_honey.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 26.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_bobs_golden_trail_mix"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "dock_ratatouille": {
            "display_name": "Ratatouille de quai",
            "ingredients": {
                "dock_rat_meat": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 3.0,
            "sale_price": 10,
            "conditions": [
                {
                    "path": "ingredients.dock_rat_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 28.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_dock_ratatouille"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "barnacle_chowder": {
            "display_name": "Chaudrée de bernacles",
            "ingredients": {
                "barnacle_meat": 1
            },
            "categories": [
                "seafood"
            ],
            "cook_time": 3.0,
            "sale_price": 10,
            "conditions": [
                {
                    "path": "ingredients.barnacle_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 28.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_barnacle_chowder"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "loaded_pearl_cakes": {
            "display_name": "Galettes aux perles pipées",
            "ingredients": {
                "crab_meat": 1,
                "black_pearl_roe": 1
            },
            "categories": [
                "seafood"
            ],
            "cook_time": 4.5,
            "sale_price": 13,
            "conditions": [
                {
                    "path": "ingredients.crab_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.black_pearl_roe.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 34.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_loaded_pearl_cakes"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "sirens_lucky_roll": {
            "display_name": "Rouleau chanceux de la sirène",
            "ingredients": {
                "siren_fillet": 1,
                "lucky_pearl": 1
            },
            "categories": [
                "seafood",
                "luxury"
            ],
            "cook_time": 4.5,
            "sale_price": 13,
            "conditions": [
                {
                    "path": "ingredients.siren_fillet.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lucky_pearl.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 34.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_sirens_lucky_roll"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "powdered_dock_wings": {
            "display_name": "Ailes de quai poudrées",
            "ingredients": {
                "gull_meat": 1,
                "salted_tail": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 4.5,
            "sale_price": 13,
            "conditions": [
                {
                    "path": "ingredients.gull_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.salted_tail.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 34.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_powdered_dock_wings"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "gabs_contraband_bisque": {
            "display_name": "Bisque de contrebande de Gab",
            "ingredients": {
                "shedded_crab_meat": 1,
                "black_pearl_roe": 1,
                "glitter_scale": 1
            },
            "categories": [
                "seafood",
                "luxury"
            ],
            "cook_time": 6.0,
            "sale_price": 17,
            "conditions": [
                {
                    "path": "ingredients.shedded_crab_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.black_pearl_roe.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.glitter_scale.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 42.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_gabs_contraband_bisque"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "crater_surf_and_turf": {
            "display_name": "Terre et mer du Cratère",
            "ingredients": {
                "turkey_meat": 1,
                "crab_meat": 1,
                "royal_honey": 1
            },
            "categories": [
                "meat",
                "seafood"
            ],
            "cook_time": 5.5,
            "sale_price": 15,
            "conditions": [
                {
                    "path": "ingredients.turkey_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.crab_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.royal_honey.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 38.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_crater_surf_and_turf"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "turnstile_protein_brick": {
            "display_name": "Brique de protéine du tourniquet",
            "ingredients": {
                "protein_cartridge": 1
            },
            "categories": [
                "mineral",
                "street_food"
            ],
            "cook_time": 3.5,
            "sale_price": 25,
            "conditions": [
                {
                    "path": "ingredients.protein_cartridge.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 58.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_turnstile_protein_brick"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "camera_hound_sausage": {
            "display_name": "Saucisse de molosse caméra",
            "ingredients": {
                "hound_meat": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 3.5,
            "sale_price": 25,
            "conditions": [
                {
                    "path": "ingredients.hound_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 58.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_camera_hound_sausage"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "brutalist_performance_slab": {
            "display_name": "Dalle brutaliste dopée",
            "ingredients": {
                "concrete_tofu": 1,
                "performance_serum": 1
            },
            "categories": [
                "vegetal",
                "mineral"
            ],
            "cook_time": 5.0,
            "sale_price": 34,
            "conditions": [
                {
                    "path": "ingredients.concrete_tofu.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.performance_serum.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_brutalist_performance_slab"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "rebar_maintenance_crunch": {
            "display_name": "Croquant d'entretien",
            "ingredients": {
                "roach_protein": 1,
                "rebar_jerky": 1
            },
            "categories": [
                "mineral",
                "trash"
            ],
            "cook_time": 5.0,
            "sale_price": 34,
            "conditions": [
                {
                    "path": "ingredients.roach_protein.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.rebar_jerky.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_rebar_maintenance_crunch"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "chrome_lens_cutlet": {
            "display_name": "Escalope chrome et objectif",
            "ingredients": {
                "coach_cutlet": 1,
                "lens_jelly": 1
            },
            "categories": [
                "meat",
                "mineral"
            ],
            "cook_time": 5.0,
            "sale_price": 34,
            "conditions": [
                {
                    "path": "ingredients.coach_cutlet.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lens_jelly.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_chrome_lens_cutlet"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "jeremie_speed_bowl": {
            "display_name": "Bol de vitesse de Jérémie",
            "ingredients": {
                "energy_gel": 1,
                "coach_cutlet": 1,
                "coolant_sac": 1
            },
            "categories": [
                "meat",
                "drink"
            ],
            "cook_time": 6.5,
            "sale_price": 38,
            "conditions": [
                {
                    "path": "ingredients.energy_gel.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.coach_cutlet.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.coolant_sac.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_jeremie_speed_bowl"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "cinder_crow_wings": {
            "display_name": "Ailes de corbeau de braise",
            "ingredients": {
                "crow_meat": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 4.0,
            "sale_price": 50,
            "conditions": [
                {
                    "path": "ingredients.crow_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "throw",
                "heal": 0.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 80.0,
                "throw_damage": 18.0,
                "modifiers": [],
                "combat_effects": [
                    {
                        "effect": "burning",
                        "chance": 65.0
                    }
                ]
            },
            "visuals": {
                "plated": "dish_cinder_crow_wings"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "magma_marmot_melt": {
            "display_name": "Marmotte fondante du magma",
            "ingredients": {
                "marmot_meat": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 4.0,
            "sale_price": 50,
            "conditions": [
                {
                    "path": "ingredients.marmot_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "throw",
                "heal": 0.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 80.0,
                "throw_damage": 18.0,
                "modifiers": [],
                "combat_effects": [
                    {
                        "effect": "burning",
                        "chance": 65.0
                    }
                ]
            },
            "visuals": {
                "plated": "dish_magma_marmot_melt"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "iron_goat_lava_fondue": {
            "display_name": "Fondue de chèvre à la lave",
            "ingredients": {
                "goat_meat": 1,
                "lava_fat": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 5.5,
            "sale_price": 68,
            "conditions": [
                {
                    "path": "ingredients.goat_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lava_fat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_iron_goat_lava_fondue"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "heavy_metal_kebab": {
            "display_name": "Kebab heavy metal",
            "ingredients": {
                "ram_meat": 1,
                "charred_meat": 1,
                "ember_feather": 1
            },
            "categories": [
                "meat",
                "spicy",
                "street_food"
            ],
            "cook_time": 7.0,
            "sale_price": 150,
            "conditions": [
                {
                    "path": "ingredients.ram_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.charred_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.ember_feather.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_heavy_metal_kebab"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "petes_molten_tartare": {
            "display_name": "Tartare en fusion de Pete",
            "ingredients": {
                "charred_meat": 1,
                "molten_truffle": 1
            },
            "categories": [
                "meat",
                "spicy",
                "luxury"
            ],
            "cook_time": 6.0,
            "sale_price": 135,
            "conditions": [
                {
                    "path": "ingredients.charred_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.molten_truffle.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_petes_molten_tartare"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "gars_rond_summit_roast": {
            "display_name": "Rôti du sommet de Gars-Rond",
            "ingredients": {
                "rock_salt": 1,
                "marmot_meat": 1,
                "iron_milk": 1
            },
            "categories": [
                "meat",
                "mineral"
            ],
            "cook_time": 7.0,
            "sale_price": 150,
            "conditions": [
                {
                    "path": "ingredients.rock_salt.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.marmot_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.iron_milk.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_gars_rond_summit_roast"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "musicalo_resonance_soup": {
            "display_name": "Soupe de résonance de Musicalo",
            "ingredients": {
                "rhythm_herb": 1,
                "iron_milk": 1,
                "lava_fat": 1
            },
            "categories": [
                "vegetal",
                "mineral"
            ],
            "cook_time": 7.5,
            "sale_price": 170,
            "conditions": [
                {
                    "path": "ingredients.rhythm_herb.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.iron_milk.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lava_fat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_musicalo_resonance_soup"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "olympic_volcano_stack": {
            "display_name": "Tour olympique volcanique",
            "ingredients": {
                "coach_cutlet": 1,
                "goat_meat": 1,
                "ember_feather": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 7.0,
            "sale_price": 150,
            "conditions": [
                {
                    "path": "ingredients.coach_cutlet.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.goat_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.ember_feather.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_olympic_volcano_stack"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "eggforcer_cutlet": {
            "display_name": "Escalope d'Eggforcer",
            "ingredients": {
                "enforcer_meat": 1
            },
            "categories": [
                "meat"
            ],
            "cook_time": 4.5,
            "sale_price": 200,
            "conditions": [
                {
                    "path": "ingredients.enforcer_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_eggforcer_cutlet"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "ballot_vulture_pie": {
            "display_name": "Tourte au vautour électoral",
            "ingredients": {
                "vulture_meat": 1
            },
            "categories": [
                "meat"
            ],
            "cook_time": 4.5,
            "sale_price": 200,
            "conditions": [
                {
                    "path": "ingredients.vulture_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_ballot_vulture_pie"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "spin_boar_roast": {
            "display_name": "Rôti de sanglier à la sauce premium",
            "ingredients": {
                "boar_meat": 1,
                "premium_spin_sauce": 1
            },
            "categories": [
                "meat",
                "luxury"
            ],
            "cook_time": 6.0,
            "sale_price": 270,
            "conditions": [
                {
                    "path": "ingredients.boar_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.premium_spin_sauce.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_spin_boar_roast"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "campaign_ballot_slider": {
            "display_name": "Petit burger de campagne",
            "ingredients": {
                "goon_meat": 1,
                "stolen_ballot_spice": 1
            },
            "categories": [
                "meat",
                "spicy",
                "street_food"
            ],
            "cook_time": 6.0,
            "sale_price": 270,
            "conditions": [
                {
                    "path": "ingredients.goon_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.stolen_ballot_spice.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_campaign_ballot_slider"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "pepper_spin_special": {
            "display_name": "Spécial poivre et propagande",
            "ingredients": {
                "spin_doctor_meat": 1,
                "pepper_marinade": 1
            },
            "categories": [
                "meat",
                "spicy"
            ],
            "cook_time": 6.0,
            "sale_price": 270,
            "conditions": [
                {
                    "path": "ingredients.spin_doctor_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.pepper_marinade.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 5.0,
                "stamina_restore": 25.0,
                "duration": 8.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [
                    {
                        "variable": "move_speed",
                        "layer": "global",
                        "operation": "add",
                        "value": 0.2
                    }
                ],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_pepper_spin_special"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "mld_state_dinner": {
            "display_name": "Dîner d'État de MLD",
            "ingredients": {
                "campaign_ration": 1,
                "riot_truffle": 1,
                "premium_spin_sauce": 1
            },
            "categories": [
                "vegetal",
                "luxury"
            ],
            "cook_time": 8.0,
            "sale_price": 340,
            "conditions": [
                {
                    "path": "ingredients.campaign_ration.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.riot_truffle.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.premium_spin_sauce.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_mld_state_dinner"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "protesters_surf_and_turf": {
            "display_name": "Terre et mer du manifestant",
            "ingredients": {
                "boar_meat": 1,
                "crab_meat": 1,
                "pepper_marinade": 1
            },
            "categories": [
                "meat",
                "seafood",
                "spicy"
            ],
            "cook_time": 7.5,
            "sale_price": 300,
            "conditions": [
                {
                    "path": "ingredients.boar_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.crab_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.pepper_marinade.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_protesters_surf_and_turf"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "tunnel_rat_stew": {
            "display_name": "Ragoût de rat des tunnels",
            "ingredients": {
                "tunnel_rat_meat": 1
            },
            "categories": [
                "meat",
                "trash"
            ],
            "cook_time": 5.0,
            "sale_price": 300,
            "conditions": [
                {
                    "path": "ingredients.tunnel_rat_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_tunnel_rat_stew"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "rootbound_tofu_bowl": {
            "display_name": "Bol de tofu enraciné",
            "ingredients": {
                "plastic_tofu": 1
            },
            "categories": [
                "vegetal"
            ],
            "cook_time": 5.0,
            "sale_price": 300,
            "conditions": [
                {
                    "path": "ingredients.plastic_tofu.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_rootbound_tofu_bowl"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "mimic_mushroom_lunchbox": {
            "display_name": "Boîte à lunch mimique",
            "ingredients": {
                "mimic_meat": 1,
                "metro_mushroom": 1
            },
            "categories": [
                "meat",
                "vegetal"
            ],
            "cook_time": 6.5,
            "sale_price": 810,
            "conditions": [
                {
                    "path": "ingredients.mimic_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.metro_mushroom.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_mimic_mushroom_lunchbox"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "mascot_afterparty_dessert": {
            "display_name": "Dessert d'after de mascotte",
            "ingredients": {
                "mascot_filling": 1,
                "lost_lunch": 1,
                "forbidden_punch": 1
            },
            "categories": [
                "dessert",
                "drink",
                "trash"
            ],
            "cook_time": 8.5,
            "sale_price": 1020,
            "conditions": [
                {
                    "path": "ingredients.mascot_filling.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lost_lunch.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.forbidden_punch.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_mascot_afterparty_dessert"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "lost_shopper_forest_combo": {
            "display_name": "Combo forêt du client perdu",
            "ingredients": {
                "shopper_meat": 1,
                "moss_heart": 1,
                "metro_mushroom": 1
            },
            "categories": [
                "meat",
                "vegetal"
            ],
            "cook_time": 8.5,
            "sale_price": 1020,
            "conditions": [
                {
                    "path": "ingredients.shopper_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.moss_heart.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.metro_mushroom.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_lost_shopper_forest_combo"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "abominable_party_platter": {
            "display_name": "Plateau de fête abominable",
            "ingredients": {
                "party_mix": 1,
                "red_nose_cherry": 1,
                "food_court_sauce": 1
            },
            "categories": [
                "dessert",
                "street_food"
            ],
            "cook_time": 8.5,
            "sale_price": 1020,
            "conditions": [
                {
                    "path": "ingredients.party_mix.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.red_nose_cherry.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.food_court_sauce.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_abominable_party_platter"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "abandoned_mall_deluxe": {
            "display_name": "Deluxe du centre commercial abandonné",
            "ingredients": {
                "shopper_meat": 1,
                "raccoon_meat": 1,
                "lost_lunch": 1,
                "forbidden_punch": 1
            },
            "categories": [
                "meat",
                "trash",
                "drink"
            ],
            "cook_time": 10.0,
            "sale_price": 1110,
            "conditions": [
                {
                    "path": "ingredients.shopper_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.raccoon_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lost_lunch.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.forbidden_punch.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_abandoned_mall_deluxe"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "battery_hen_nuggets": {
            "display_name": "Croquettes de poule-batterie",
            "ingredients": {
                "chicken_meat": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 5.5,
            "sale_price": 1000,
            "conditions": [
                {
                    "path": "ingredients.chicken_meat.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_battery_hen_nuggets"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "factory_floor_breakfast": {
            "display_name": "Déjeuner de plancher d'usine",
            "ingredients": {
                "conveyor_bacon": 1,
                "battery_egg": 1,
                "synthetic_marbling": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 9.0,
            "sale_price": 1900,
            "conditions": [
                {
                    "path": "ingredients.conveyor_bacon.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.battery_egg.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.synthetic_marbling.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_factory_floor_breakfast"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "automated_crop_loaf": {
            "display_name": "Pain de protéines automatisé",
            "ingredients": {
                "crop_protein": 1
            },
            "categories": [
                "vegetal"
            ],
            "cook_time": 5.5,
            "sale_price": 1000,
            "conditions": [
                {
                    "path": "ingredients.crop_protein.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_automated_crop_loaf"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "approved_beef_casserole": {
            "display_name": "Casserole de boeuf approuvée",
            "ingredients": {
                "approved_protein": 1,
                "beef": 1,
                "perfect_tomato": 1
            },
            "categories": [
                "meat",
                "vegetal"
            ],
            "cook_time": 9.0,
            "sale_price": 1500,
            "conditions": [
                {
                    "path": "ingredients.approved_protein.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.beef.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.perfect_tomato.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_approved_beef_casserole"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "world_egg_degustation": {
            "display_name": "Dégustation World Egg",
            "ingredients": {
                "royal_honey": 1,
                "lucky_pearl": 1,
                "molten_truffle": 1,
                "forbidden_punch": 1
            },
            "categories": [
                "dessert",
                "drink",
                "luxury"
            ],
            "cook_time": 11.0,
            "sale_price": 2250,
            "conditions": [
                {
                    "path": "ingredients.royal_honey.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.lucky_pearl.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.molten_truffle.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.forbidden_punch.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_world_egg_degustation"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "worlds_biggest_omelette": {
            "display_name": "La plus grosse omelette du monde",
            "ingredients": {
                "big_egg_white": 2,
                "royal_yolk": 1,
                "battery_egg": 1,
                "conveyor_bacon": 1,
                "perfect_tomato": 1
            },
            "categories": [
                "meat",
                "luxury"
            ],
            "cook_time": 12.0,
            "sale_price": 2400,
            "conditions": [
                {
                    "path": "ingredients.big_egg_white.total_collected",
                    "operator": ">=",
                    "value": 2
                },
                {
                    "path": "ingredients.royal_yolk.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.battery_egg.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.conveyor_bacon.total_collected",
                    "operator": ">=",
                    "value": 1
                },
                {
                    "path": "ingredients.perfect_tomato.total_collected",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 60.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_worlds_biggest_omelette"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "squirrel_skewer_copy": {
            "display_name": "XXX L'écureuil et ses amis",
            "ingredients": {
                "squirrel_meat": 3
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 5.0,
            "sale_price": 5,
            "conditions": [
                {
                    "path": "ingredients.squirrel_meat.total_collected",
                    "operator": ">=",
                    "value": 5
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 25.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_squirrel_skewer"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        },
        "squirrel_skewer_copy_2": {
            "display_name": "XXX Les noix de l'écureuil",
            "ingredients": {
                "squirrel_meat": 5,
                "golden_acorn": 1
            },
            "categories": [
                "meat",
                "street_food"
            ],
            "cook_time": 5.0,
            "sale_price": 25,
            "conditions": [
                {
                    "path": "ingredients.squirrel_meat.total_collected",
                    "operator": ">=",
                    "value": 10
                },
                {
                    "path": "ingredients.golden_acorn.total_collected",
                    "operator": ">",
                    "value": 1
                }
            ],
            "combat_consumable": {
                "mode": "eat",
                "heal": 25.0,
                "stamina_restore": 0.0,
                "duration": 0.0,
                "throw_speed": 640.0,
                "throw_range": 500.0,
                "throw_radius": 72.0,
                "throw_damage": 0.0,
                "modifiers": [],
                "combat_effects": []
            },
            "visuals": {
                "plated": "dish_lost_shopper_forest_combo"
            },
            "vfx": {},
            "on_cooked": [],
            "on_served": []
        }
    },
    "customer_profiles": {
        "regular": {
            "display_name": "paumé",
            "color": "#06d6a0",
            "cash": 30,
            "appetite": 1,
            "speed": 180.0,
            "patience": 60.0,
            "meal_consumption_speed": 4.0,
            "generosity": 0.15,
            "arrival_weight": 1.0,
            "spending": 0.35,
            "popularity_weight": 5.0,
            "max_on_screen": 0.0,
            "respawn_cooldown": 0.0,
            "hunger": 0.5,
            "queue_tolerance": 1.0,
            "category_preferences": {
                "meat": 1.82,
                "street_food": 1.82
            },
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "customer_regular_idle",
                "walk": "customer_regular_walk",
                "eat": "customer_regular_eat",
                "angry": "customer_regular_angry"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "served": [],
                    "meal_finished": [],
                    "disappointed": [],
                    "leave": [],
                    "random": [
                        {
                            "text": "Encore ouvert? Bon.",
                            "chance": 10.0
                        }
                    ]
                }
            },
            "on_served": [],
            "on_left_unserved": []
        },
        "foodie": {
            "display_name": "Gros criss",
            "color": "#ffd166",
            "cash": 65,
            "appetite": 3,
            "speed": 150.0,
            "patience": 75.0,
            "meal_consumption_speed": 3.2,
            "generosity": 0.22,
            "arrival_weight": 0.55,
            "spending": 0.58,
            "popularity_weight": 5.0,
            "max_on_screen": 0.0,
            "respawn_cooldown": 0.0,
            "hunger": 0.6,
            "queue_tolerance": 1.5,
            "category_preferences": {
                "seafood": 3.33
            },
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "customer_foodie_idle",
                "walk": "customer_foodie_walk",
                "eat": "customer_foodie_eat",
                "angry": "customer_foodie_angry"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [
                        {
                            "text": "J'ai entendu parler de la carte.",
                            "chance": 25.0
                        }
                    ],
                    "served": [],
                    "meal_finished": [],
                    "disappointed": [],
                    "leave": [],
                    "random": []
                }
            },
            "on_served": [],
            "on_left_unserved": []
        },
        "generous_guest": {
            "display_name": "hipster",
            "color": "#c77dff",
            "cash": 5000,
            "appetite": 2,
            "speed": 200.0,
            "patience": 48.0,
            "meal_consumption_speed": 5.2,
            "generosity": 0.65,
            "arrival_weight": 0.3,
            "spending": 0.8,
            "popularity_weight": 5.0,
            "max_on_screen": 0.0,
            "respawn_cooldown": 0.0,
            "hunger": 0.8,
            "queue_tolerance": 2.0,
            "category_preferences": {
                "meat": 2.86,
                "spicy": 2.86,
                "street_food": 2.86
            },
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "customer_generous_guest_idle",
                "angry": "customer_generous_guest_angry",
                "walk": "customer_generous_guest_walk",
                "eat": "customer_generous_guest_eat"
            },
            "vfx": {},
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "served": [
                        {
                            "text": "Ça, c'est de la résistance.",
                            "chance": 20.0
                        }
                    ],
                    "meal_finished": [],
                    "disappointed": [],
                    "leave": [],
                    "random": []
                }
            },
            "on_served": [],
            "on_left_unserved": []
        }
    },
    "employees": {
        "jeremie": {
            "display_name": "Jérémie",
            "description": "Serveur des Egglympics. Traverse la salle avant qu'on ait fini la commande.",
            "color": "#f2d94e",
            "role": "server",
            "hire_cost": 40,
            "scope": "dimension",
            "skills": {
                "pace": 1.9,
                "sight": 1.2,
                "tray": 1.0,
                "attentiveness": 1.2,
                "charisma": 0.9,
                "tidiness": 0.8
            },
            "task_preferences": {
                "take_order": 4.0,
                "serve": 5.0,
                "bus": 2.0,
                "takeout": 3.0
            },
            "station_affinity": [],
            "recipe_affinity": {
                "jeremie_speed_bowl": 1.5
            },
            "modifiers": [],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_jeremie_idle",
                "work": "employee_jeremie_work",
                "walk": "employee_jeremie_walk"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "bob_the_horse": {
            "display_name": "Bob le cheval",
            "description": "Ne parle jamais. Tout le monde le comprend parfaitement.",
            "color": "#c8b273",
            "role": "server",
            "hire_cost": 55,
            "scope": "dimension",
            "skills": {
                "pace": 1.6,
                "sight": 1.0,
                "tray": 2.0,
                "attentiveness": 0.9,
                "charisma": 1.0,
                "tidiness": 1.2
            },
            "task_preferences": {
                "take_order": 2.0,
                "serve": 3.0,
                "bus": 3.0,
                "takeout": 5.0
            },
            "station_affinity": [],
            "recipe_affinity": {
                "bobs_golden_trail_mix": 1.6
            },
            "modifiers": [
                {
                    "variable": "takeout_service_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_bob_the_horse_idle",
                "walk": "employee_bob_the_horse_walk",
                "work": "employee_bob_the_horse_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "mld": {
            "display_name": "MLD",
            "description": "Se prend pour un chef d'État. Tient la salle comme un micro-territoire.",
            "color": "#e8c33a",
            "role": "server",
            "hire_cost": 85,
            "scope": "dimension",
            "skills": {
                "pace": 0.9,
                "sight": 1.1,
                "tray": 1.0,
                "attentiveness": 1.4,
                "charisma": 1.9,
                "poise": 1.4
            },
            "task_preferences": {
                "take_order": 5.0,
                "serve": 4.0,
                "bus": 1.0,
                "takeout": 2.0
            },
            "station_affinity": [],
            "recipe_affinity": {
                "mld_state_dinner": 1.8
            },
            "modifiers": [
                {
                    "variable": "patience",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.15
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_mld_idle",
                "walk": "employee_mld_walk",
                "work": "employee_mld_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "abominable_party_man": {
            "display_name": "Abominable homme des parties",
            "description": "Anime la salle. Les clients rient, puis se demandent pourquoi.",
            "color": "#d63a3a",
            "role": "server",
            "hire_cost": 120,
            "scope": "dimension",
            "skills": {
                "pace": 0.8,
                "sight": 1.0,
                "tray": 1.0,
                "attentiveness": 1.2,
                "charisma": 2.2,
                "poise": 1.6
            },
            "task_preferences": {
                "take_order": 3.0,
                "serve": 4.0,
                "bus": 2.0,
                "takeout": 3.0
            },
            "station_affinity": [],
            "recipe_affinity": {
                "abominable_party_platter": 1.8
            },
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.15
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_abominable_party_man_idle",
                "walk": "employee_abominable_party_man_walk",
                "work": "employee_abominable_party_man_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "gab_le_crab": {
            "display_name": "Gab le Crabe",
            "description": "Fournisseur et préparateur de fruits de mer, sans jamais dire d'où ils viennent.",
            "color": "#c94f2f",
            "role": "cook",
            "hire_cost": 50,
            "scope": "dimension",
            "skills": {
                "craft": 1.3,
                "mise": 1.2,
                "plating": 0.4,
                "thrift": 0.2,
                "nose": 1.1
            },
            "task_preferences": [],
            "station_affinity": {
                "stove": 1.2,
                "spices": 0.8,
                "takeout": 1.0
            },
            "recipe_affinity": {
                "barnacle_chowder": 1.4,
                "loaded_pearl_cakes": 1.4,
                "gabs_contraband_bisque": 1.6
            },
            "modifiers": [
                {
                    "variable": "cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.1
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_gab_le_crab_idle",
                "walk": "employee_gab_le_crab_walk",
                "work": "employee_gab_le_crab_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "eltuna": {
            "display_name": "eLTuna",
            "description": "Spécialiste du miel et du sucre. Débloque les douceurs du Cratère.",
            "color": "#f2c14e",
            "role": "cook",
            "hire_cost": 70,
            "scope": "dimension",
            "skills": {
                "craft": 1.1,
                "mise": 1.0,
                "plating": 1.4,
                "thrift": 0.3,
                "nose": 1.3
            },
            "task_preferences": [],
            "station_affinity": {
                "stove": 0.8,
                "spices": 1.6,
                "takeout": 1.0
            },
            "recipe_affinity": {
                "royal_crater_platter": 1.5,
                "bobs_golden_trail_mix": 1.4,
                "world_egg_degustation": 1.3
            },
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.1
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_eltuna_idle",
                "walk": "employee_eltuna_walk",
                "work": "employee_eltuna_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "gars_rond": {
            "display_name": "Gars-Rond",
            "description": "Manutention et stocks. Range plus vite qu'une étagère ne se remplit.",
            "color": "#6b3f2a",
            "role": "cook",
            "hire_cost": 95,
            "scope": "dimension",
            "skills": {
                "craft": 1.5,
                "mise": 1.6,
                "plating": 0.3,
                "thrift": 0.4,
                "nose": 0.6
            },
            "task_preferences": [],
            "station_affinity": {
                "stove": 1.3,
                "spices": 0.7,
                "takeout": 1.2
            },
            "recipe_affinity": {
                "gars_rond_summit_roast": 1.7,
                "iron_goat_lava_fondue": 1.3
            },
            "modifiers": [
                {
                    "variable": "shelf_slots",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_gars_rond_idle",
                "work": "employee_gars_rond_work",
                "walk": "employee_gars_rond_walk"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        },
        "shaman_musicalo": {
            "display_name": "Shaman Musicalo",
            "description": "La musique traverse les dimensions. Il avait raison depuis le début.",
            "color": "#b892d8",
            "role": "cook",
            "hire_cost": 140,
            "scope": "dimension",
            "skills": {
                "craft": 1.2,
                "mise": 1.1,
                "plating": 1.2,
                "thrift": 0.3,
                "nose": 1.8
            },
            "task_preferences": [],
            "station_affinity": {
                "stove": 1.0,
                "spices": 1.8,
                "takeout": 0.8
            },
            "recipe_affinity": {
                "musicalo_resonance_soup": 1.9
            },
            "modifiers": [
                {
                    "variable": "popularity_gain_multiplier",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.25
                }
            ],
            "conditions": [],
            "model_3d": {},
            "visuals": {
                "idle": "employee_shaman_musicalo_idle",
                "walk": "employee_shaman_musicalo_walk",
                "work": "employee_shaman_musicalo_work"
            },
            "speech_bubbles": {
                "check_interval": 8.0,
                "cooldown": 10.0,
                "duration": 3.0,
                "triggers": {
                    "arrive": [],
                    "task_started": [],
                    "task_ended": [],
                    "random": []
                }
            },
            "on_hired": []
        }
    },
    "restaurant_elements": {
        "basic_stove": {
            "display_name": "Four de base",
            "description": "Le poste de cuisson d'origine.",
            "width": 82.0,
            "height": 68.0,
            "kind": "stove",
            "usable_faces": 2,
            "anchor": "",
            "max_count": 4,
            "max_count_variable": "stove_count",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_stove_front",
                "right": "element_basic_stove_right",
                "back": "element_basic_stove_back",
                "left": "element_basic_stove_left"
            }
        },
        "basic_shelf": {
            "display_name": "Étagère",
            "description": "Range les assiettes prêtes.",
            "width": 60.0,
            "height": 162.0,
            "kind": "shelf",
            "usable_faces": 15,
            "anchor": "",
            "max_count": 1,
            "max_count_variable": "shelf_count",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_shelf_front",
                "right": "element_basic_shelf_right",
                "back": "element_basic_shelf_back",
                "left": "element_basic_shelf_left"
            }
        },
        "basic_dishwasher": {
            "display_name": "Plonge",
            "description": "Lave la vaisselle sale.",
            "width": 82.0,
            "height": 68.0,
            "kind": "dishwasher",
            "usable_faces": 15,
            "anchor": "",
            "max_count": 1,
            "max_count_variable": "",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_dishwasher_front",
                "right": "element_basic_dishwasher_right",
                "back": "element_basic_dishwasher_back",
                "left": "element_basic_dishwasher_left"
            }
        },
        "basic_trash": {
            "display_name": "Poubelle",
            "description": "Jette un plat raté.",
            "width": 73.0,
            "height": 68.0,
            "kind": "trash",
            "usable_faces": 15,
            "anchor": "",
            "max_count": 1,
            "max_count_variable": "",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_trash_front",
                "right": "element_basic_trash_right",
                "back": "element_basic_trash_back",
                "left": "element_basic_trash_left"
            }
        },
        "basic_console": {
            "display_name": "Console de gestion",
            "description": "Le tableau de commande du magasin.",
            "width": 88.0,
            "height": 65.0,
            "kind": "console",
            "usable_faces": 4,
            "anchor": "north_wall",
            "max_count": 1,
            "max_count_variable": "management_console",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_console_front",
                "right": "element_basic_console_right",
                "back": "element_basic_console_back",
                "left": "element_basic_console_left"
            }
        },
        "basic_takeout_counter": {
            "display_name": "Comptoir takeout",
            "description": "Vend à la rue, adossé au mur nord.",
            "width": 121.0,
            "height": 61.0,
            "kind": "takeout",
            "usable_faces": 4,
            "anchor": "north_wall",
            "max_count": 1,
            "max_count_variable": "takeout_counter",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_takeout_counter_front",
                "right": "element_basic_takeout_counter_right",
                "back": "element_basic_takeout_counter_back",
                "left": "element_basic_takeout_counter_left"
            }
        },
        "basic_order_board": {
            "display_name": "Ardoise",
            "description": "La file de travail du restaurant.",
            "width": 178.0,
            "height": 128.0,
            "kind": "board",
            "usable_faces": 0,
            "anchor": "",
            "max_count": 1,
            "max_count_variable": "order_board_slots",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_order_board_front",
                "right": "element_basic_order_board_right",
                "back": "element_basic_order_board_back",
                "left": "element_basic_order_board_left"
            }
        },
        "basic_table": {
            "display_name": "Tabouret",
            "description": "Une place assise.",
            "width": 71.0,
            "height": 111.0,
            "kind": "table",
            "usable_faces": 0,
            "anchor": "",
            "max_count": 5,
            "max_count_variable": "table_count",
            "cost": 0,
            "fallback_shape": "circle",
            "fallback_color": "#ffbe0b",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [],
            "visuals": {
                "front": "element_basic_table_front",
                "right": "element_basic_table_right",
                "back": "element_basic_table_back",
                "left": "element_basic_table_left"
            }
        },
        "employee_locker": {
            "display_name": "Casier d'employés",
            "description": "Rend l'embauche possible quand l'étagère et l'ardoise sont installées.",
            "width": 75.0,
            "height": 102.0,
            "kind": "employee_locker",
            "usable_faces": 0,
            "anchor": "",
            "max_count": 1,
            "max_count_variable": "employee_locker_count",
            "cost": 0,
            "fallback_shape": "square",
            "fallback_color": "#718096",
            "modifiers": [],
            "conditions": [],
            "placement_requires": [
                "basic_shelf",
                "basic_order_board"
            ],
            "visuals": {
                "front": "element_employee_locker_front",
                "right": "element_employee_locker_right",
                "back": "element_employee_locker_back",
                "left": "element_employee_locker_left"
            }
        }
    },
    "visuals": {
        "player_idle": {
            "display_name": "Joueur — repos",
            "description": "Généré par PixelLab (v3, high top-down, rangées = orientations).",
            "kind": "frames",
            "path": "res://assets/characters/player_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "crazy_squirrel_idle": {
            "display_name": "Écureuil cinglé — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/crazy_squirrel_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "crazy_squirrel_walk": {
            "display_name": "Écureuil cinglé — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/crazy_squirrel_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "attack_turkey_idle": {
            "display_name": "Dindon d'assaut — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/attack_turkey_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "attack_turkey_walk": {
            "display_name": "Dindon d'assaut — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/attack_turkey_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "trash_panda_idle": {
            "display_name": "Raton-poubelle — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/trash_panda_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "trash_panda_walk": {
            "display_name": "Raton-poubelle — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/trash_panda_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "skunk_idle": {
            "display_name": "Moufette toxique — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/skunk_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "skunk_walk": {
            "display_name": "Moufette toxique — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/skunk_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "cardboard_carl_idle": {
            "display_name": "Carl Carton — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/cardboard_carl_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "cardboard_carl_walk": {
            "display_name": "Carl Carton — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/cardboard_carl_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "eltuna_idle": {
            "display_name": "eLTuna — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/eltuna_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "eltuna_walk": {
            "display_name": "eLTuna — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/eltuna_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "bob_the_horse_idle": {
            "display_name": "Bob le cheval — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/bob_the_horse_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "bob_the_horse_walk": {
            "display_name": "Bob le cheval — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/bob_the_horse_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dock_rat_idle": {
            "display_name": "Rat de quai — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/dock_rat_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dock_rat_walk": {
            "display_name": "Rat de quai — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/dock_rat_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "barnacle_brute_idle": {
            "display_name": "Brute aux bernacles — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/barnacle_brute_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "barnacle_brute_walk": {
            "display_name": "Brute aux bernacles — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/barnacle_brute_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "loaded_dice_crab_idle": {
            "display_name": "Crabe aux dés pipés — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/loaded_dice_crab_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "loaded_dice_crab_walk": {
            "display_name": "Crabe aux dés pipés — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/loaded_dice_crab_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "siren_dancer_idle": {
            "display_name": "Danseuse sirène — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/siren_dancer_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "siren_dancer_walk": {
            "display_name": "Danseuse sirène — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/siren_dancer_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "powder_gull_idle": {
            "display_name": "Goéland à poudre — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/powder_gull_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "powder_gull_walk": {
            "display_name": "Goéland à poudre — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/powder_gull_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "gab_le_crab_idle": {
            "display_name": "Gab le Crabe — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/gab_le_crab_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "gab_le_crab_walk": {
            "display_name": "Gab le Crabe — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/gab_le_crab_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "turnstile_drone_idle": {
            "display_name": "Drone tourniquet — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/turnstile_drone_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "turnstile_drone_walk": {
            "display_name": "Drone tourniquet — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/turnstile_drone_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "camera_hound_idle": {
            "display_name": "Molosse caméra — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/camera_hound_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "camera_hound_walk": {
            "display_name": "Molosse caméra — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/camera_hound_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "concrete_golem_idle": {
            "display_name": "Golem de béton — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/concrete_golem_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "concrete_golem_walk": {
            "display_name": "Golem de béton — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/concrete_golem_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "maintenance_roach_idle": {
            "display_name": "Cafard d'entretien — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/maintenance_roach_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "maintenance_roach_walk": {
            "display_name": "Cafard d'entretien — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/maintenance_roach_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "coach_chrome_idle": {
            "display_name": "Coach Chrome — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/coach_chrome_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "coach_chrome_walk": {
            "display_name": "Coach Chrome — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/coach_chrome_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "jeremie_idle": {
            "display_name": "Jérémie — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/jeremie_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "jeremie_walk": {
            "display_name": "Jérémie — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/jeremie_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "cinder_crow_idle": {
            "display_name": "Corbeau de braise — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/cinder_crow_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "cinder_crow_walk": {
            "display_name": "Corbeau de braise — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/cinder_crow_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "magma_marmot_idle": {
            "display_name": "Marmotte de magma — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/magma_marmot_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.4,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "magma_marmot_walk": {
            "display_name": "Marmotte de magma — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/magma_marmot_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.4,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ironhide_goat_idle": {
            "display_name": "Chèvre cuirassée — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/ironhide_goat_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ironhide_goat_walk": {
            "display_name": "Chèvre cuirassée — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/ironhide_goat_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "headbanger_ram_idle": {
            "display_name": "Bélier métalleux — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/headbanger_ram_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "headbanger_ram_walk": {
            "display_name": "Bélier métalleux — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/headbanger_ram_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "pyro_pete_idle": {
            "display_name": "Pyro Pete — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/pyro_pete_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "pyro_pete_walk": {
            "display_name": "Pyro Pete — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/pyro_pete_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "gars_rond_idle": {
            "display_name": "Gars-Rond — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/gars_rond_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "gars_rond_walk": {
            "display_name": "Gars-Rond — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/gars_rond_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "shaman_musicalo_idle": {
            "display_name": "Shaman Musicalo — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/shaman_musicalo_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "shaman_musicalo_walk": {
            "display_name": "Shaman Musicalo — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/shaman_musicalo_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "eggforcer_idle": {
            "display_name": "Eggforcer — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/eggforcer_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "eggforcer_walk": {
            "display_name": "Eggforcer — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/eggforcer_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "vote_vulture_idle": {
            "display_name": "Vautour électoral — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/vote_vulture_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "vote_vulture_walk": {
            "display_name": "Vautour électoral — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/vote_vulture_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "barricade_boar_idle": {
            "display_name": "Sanglier de barricade — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/barricade_boar_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.39,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "barricade_boar_walk": {
            "display_name": "Sanglier de barricade — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/barricade_boar_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.39,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "campaign_goon_idle": {
            "display_name": "Gros bras de campagne — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/campaign_goon_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "campaign_goon_walk": {
            "display_name": "Gros bras de campagne — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/campaign_goon_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "spin_doctor_steve_idle": {
            "display_name": "Steve la Girouette — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/spin_doctor_steve_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "spin_doctor_steve_walk": {
            "display_name": "Steve la Girouette — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/spin_doctor_steve_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "mld_idle": {
            "display_name": "MLD — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/mld_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "mld_walk": {
            "display_name": "MLD — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/mld_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "tunnel_rat_idle": {
            "display_name": "Rat des tunnels — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/tunnel_rat_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "tunnel_rat_walk": {
            "display_name": "Rat des tunnels — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/tunnel_rat_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "rootbound_mannequin_idle": {
            "display_name": "Mannequin enraciné — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/rootbound_mannequin_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "rootbound_mannequin_walk": {
            "display_name": "Mannequin enraciné — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/rootbound_mannequin_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "platform_mimic_idle": {
            "display_name": "Mimique de quai — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/platform_mimic_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "platform_mimic_walk": {
            "display_name": "Mimique de quai — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/platform_mimic_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "mascot_husk_idle": {
            "display_name": "Carcasse de mascotte — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/mascot_husk_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "mascot_husk_walk": {
            "display_name": "Carcasse de mascotte — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/mascot_husk_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "lost_shopper_idle": {
            "display_name": "Client perdu — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/lost_shopper_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "lost_shopper_walk": {
            "display_name": "Client perdu — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/lost_shopper_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "abominable_party_man_idle": {
            "display_name": "Abominable homme des parties — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/abominable_party_man_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "abominable_party_man_walk": {
            "display_name": "Abominable homme des parties — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/abominable_party_man_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "battery_hen_idle": {
            "display_name": "Poule-batterie — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/battery_hen_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "battery_hen_walk": {
            "display_name": "Poule-batterie — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/battery_hen_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "conveyor_hog_idle": {
            "display_name": "Porc de convoyeur — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/conveyor_hog_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "conveyor_hog_walk": {
            "display_name": "Porc de convoyeur — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/conveyor_hog_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "factory_cow_idle": {
            "display_name": "Vache d'usine — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/factory_cow_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "factory_cow_walk": {
            "display_name": "Vache d'usine — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/factory_cow_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "harvester_drone_idle": {
            "display_name": "Drone moissonneur — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/harvester_drone_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "harvester_drone_walk": {
            "display_name": "Drone moissonneur — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/harvester_drone_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "quality_control_bot_idle": {
            "display_name": "Robot de contrôle qualité — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/quality_control_bot_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "quality_control_bot_walk": {
            "display_name": "Robot de contrôle qualité — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/quality_control_bot_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_one_idle": {
            "display_name": "Big Egg — première confrontation — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_one_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.82,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_one_walk": {
            "display_name": "Big Egg — première confrontation — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_one_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.82,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_two_idle": {
            "display_name": "Big Egg — deuxième confrontation — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_two_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_two_walk": {
            "display_name": "Big Egg — deuxième confrontation — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_two_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_three_idle": {
            "display_name": "Big Egg — troisième confrontation — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_three_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_three_walk": {
            "display_name": "Big Egg — troisième confrontation — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_three_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_four_idle": {
            "display_name": "Big Egg — quatrième confrontation — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_four_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_egg_four_walk": {
            "display_name": "Big Egg — quatrième confrontation — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_egg_four_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_big_egg_idle": {
            "display_name": "BIG BIG EGG — repos",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_big_egg_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "big_big_egg_walk": {
            "display_name": "BIG BIG EGG — marche",
            "description": "Généré par PixelLab (v3, high top-down, vue sud).",
            "kind": "frames",
            "path": "res://assets/creatures/big_big_egg_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_squirrel_meat": {
            "display_name": "Viande d'écureuil — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_squirrel_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_golden_acorn": {
            "display_name": "Gland doré — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_golden_acorn.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_turkey_meat": {
            "display_name": "Viande de dindon — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_turkey_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_rage_gizzard": {
            "display_name": "Gésier enragé — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_rage_gizzard.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_raccoon_meat": {
            "display_name": "Viande de raton — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_raccoon_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.19,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_pristine_garbage": {
            "display_name": "Déchet impeccable — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_pristine_garbage.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_skunk_meat": {
            "display_name": "Viande de moufette — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_skunk_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_scent_gland": {
            "display_name": "Glande odorante — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_scent_gland.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_carl_meat": {
            "display_name": "Viande de Carl — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_carl_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_carls_leg": {
            "display_name": "Jambe de Carl — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_carls_leg.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_honeycomb": {
            "display_name": "Rayon de miel — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_honeycomb.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_royal_honey": {
            "display_name": "Miel royal — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_royal_honey.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_oat_bundle": {
            "display_name": "Botte d'avoine — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_oat_bundle.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_golden_carrot": {
            "display_name": "Carotte dorée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_golden_carrot.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_dock_rat_meat": {
            "display_name": "Viande de rat de quai — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_dock_rat_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_salted_tail": {
            "display_name": "Queue salée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_salted_tail.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_barnacle_meat": {
            "display_name": "Chair de bernacle — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_barnacle_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_black_pearl_roe": {
            "display_name": "Oeufs de perle noire — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_black_pearl_roe.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_crab_meat": {
            "display_name": "Chair de crabe — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_crab_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_loaded_claw": {
            "display_name": "Pince pipée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_loaded_claw.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_siren_fillet": {
            "display_name": "Filet de sirène — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_siren_fillet.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_glitter_scale": {
            "display_name": "Écaille scintillante — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_glitter_scale.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_gull_meat": {
            "display_name": "Viande de goéland — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_gull_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_gunpowder_gizzard": {
            "display_name": "Gésier à poudre — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_gunpowder_gizzard.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_shedded_crab_meat": {
            "display_name": "Chair de pince muée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_shedded_crab_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lucky_pearl": {
            "display_name": "Perle porte-bonheur — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lucky_pearl.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_protein_cartridge": {
            "display_name": "Cartouche de protéine — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_protein_cartridge.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lubricant_gel": {
            "display_name": "Gel lubrifiant — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lubricant_gel.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_hound_meat": {
            "display_name": "Viande de molosse — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_hound_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lens_jelly": {
            "display_name": "Gelée optique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lens_jelly.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_concrete_tofu": {
            "display_name": "Tofu de béton — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_concrete_tofu.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_rebar_jerky": {
            "display_name": "Jerky d'armature — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_rebar_jerky.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_roach_protein": {
            "display_name": "Protéine de cafard — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_roach_protein.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_coolant_sac": {
            "display_name": "Poche de liquide froid — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_coolant_sac.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_coach_cutlet": {
            "display_name": "Escalope de coach — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_coach_cutlet.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_performance_serum": {
            "display_name": "Sérum de performance — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_performance_serum.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_energy_gel": {
            "display_name": "Gel énergétique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_energy_gel.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lightning_salt": {
            "display_name": "Sel foudroyant — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lightning_salt.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_crow_meat": {
            "display_name": "Viande de corbeau — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_crow_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_ember_feather": {
            "display_name": "Plume de braise — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_ember_feather.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.19,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_marmot_meat": {
            "display_name": "Viande de marmotte — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_marmot_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lava_fat": {
            "display_name": "Graisse de magma — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lava_fat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_goat_meat": {
            "display_name": "Viande de chèvre — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_goat_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_iron_milk": {
            "display_name": "Lait ferreux — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_iron_milk.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_ram_meat": {
            "display_name": "Viande de bélier — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_ram_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_resonant_marrow": {
            "display_name": "Moelle résonante — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_resonant_marrow.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_charred_meat": {
            "display_name": "Viande carbonisée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_charred_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_hot_sauce_blood": {
            "display_name": "Sang piquant — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_hot_sauce_blood.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_rock_salt": {
            "display_name": "Sel de roche — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_rock_salt.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_molten_truffle": {
            "display_name": "Truffe en fusion — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_molten_truffle.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_rhythm_herb": {
            "display_name": "Herbe rythmique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_rhythm_herb.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_echo_mushroom": {
            "display_name": "Champignon d'écho — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_echo_mushroom.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_enforcer_meat": {
            "display_name": "Viande d'Eggforcer — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_enforcer_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_pepper_marinade": {
            "display_name": "Marinade au poivre — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_pepper_marinade.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_vulture_meat": {
            "display_name": "Viande de vautour — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_vulture_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_stolen_ballot_spice": {
            "display_name": "Épice de bulletin volé — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_stolen_ballot_spice.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_boar_meat": {
            "display_name": "Viande de sanglier — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_boar_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_riot_truffle": {
            "display_name": "Truffe d'émeute — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_riot_truffle.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_goon_meat": {
            "display_name": "Viande de gros bras — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_goon_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lobbyist_lard": {
            "display_name": "Saindoux de lobbyiste — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lobbyist_lard.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_spin_doctor_meat": {
            "display_name": "Viande de girouette — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_spin_doctor_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_premium_spin_sauce": {
            "display_name": "Sauce premium — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_premium_spin_sauce.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_campaign_ration": {
            "display_name": "Ration de campagne — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_campaign_ration.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_dictator_mustard": {
            "display_name": "Moutarde de dictateur — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_dictator_mustard.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_tunnel_rat_meat": {
            "display_name": "Viande de rat des tunnels — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_tunnel_rat_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_metro_mushroom": {
            "display_name": "Champignon de métro — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_metro_mushroom.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_plastic_tofu": {
            "display_name": "Tofu de plastique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_plastic_tofu.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.22,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_moss_heart": {
            "display_name": "Coeur de mousse — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_moss_heart.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_mimic_meat": {
            "display_name": "Chair de mimique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_mimic_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_lost_lunch": {
            "display_name": "Lunch oublié — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_lost_lunch.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_mascot_filling": {
            "display_name": "Bourre de mascotte — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_mascot_filling.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_red_nose_cherry": {
            "display_name": "Cerise nez rouge — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_red_nose_cherry.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_shopper_meat": {
            "display_name": "Viande de client perdu — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_shopper_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_food_court_sauce": {
            "display_name": "Sauce de food court — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_food_court_sauce.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_party_mix": {
            "display_name": "Mélange de fête — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_party_mix.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_forbidden_punch": {
            "display_name": "Punch interdit — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_forbidden_punch.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_chicken_meat": {
            "display_name": "Viande de poulet — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_chicken_meat.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_battery_egg": {
            "display_name": "Oeuf de batterie — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_battery_egg.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_pork": {
            "display_name": "Porc — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_pork.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_conveyor_bacon": {
            "display_name": "Bacon de convoyeur — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_conveyor_bacon.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_beef": {
            "display_name": "Boeuf — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_beef.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_synthetic_marbling": {
            "display_name": "Persillage synthétique — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_synthetic_marbling.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.24,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_crop_protein": {
            "display_name": "Protéine végétale — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_crop_protein.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_perfect_tomato": {
            "display_name": "Tomate parfaite — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_perfect_tomato.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_approved_protein": {
            "display_name": "Protéine approuvée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_approved_protein.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_reject_spice": {
            "display_name": "Épice rejetée — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_reject_spice.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_big_egg_white": {
            "display_name": "Blanc de Big Egg — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_big_egg_white.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.2,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "ingredient_royal_yolk": {
            "display_name": "Jaune royal — icône",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/ingredient_royal_yolk.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.21,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_squirrel_skewer": {
            "display_name": "Brochette d'écureuil — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_squirrel_skewer.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_turkey_panic_roast": {
            "display_name": "Rôti de dindon paniqué — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_turkey_panic_roast.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_trash_funk_stew": {
            "display_name": "Ragoût funk-poubelle — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_trash_funk_stew.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_scented_squirrel_roast": {
            "display_name": "Rôti d'écureuil parfumé — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_scented_squirrel_roast.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.31,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_carls_turkey_dog": {
            "display_name": "Le hot-dog de Carl — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_carls_turkey_dog.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_royal_crater_platter": {
            "display_name": "Assiette royale du Cratère — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_royal_crater_platter.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_bobs_golden_trail_mix": {
            "display_name": "Mélange doré de Bob — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_bobs_golden_trail_mix.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_dock_ratatouille": {
            "display_name": "Ratatouille de quai — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_dock_ratatouille.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_barnacle_chowder": {
            "display_name": "Chaudrée de bernacles — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_barnacle_chowder.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.31,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_loaded_pearl_cakes": {
            "display_name": "Galettes aux perles pipées — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_loaded_pearl_cakes.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_sirens_lucky_roll": {
            "display_name": "Rouleau chanceux de la sirène — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_sirens_lucky_roll.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_powdered_dock_wings": {
            "display_name": "Ailes de quai poudrées — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_powdered_dock_wings.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_gabs_contraband_bisque": {
            "display_name": "Bisque de contrebande de Gab — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_gabs_contraband_bisque.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_crater_surf_and_turf": {
            "display_name": "Terre et mer du Cratère — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_crater_surf_and_turf.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_turnstile_protein_brick": {
            "display_name": "Brique de protéine du tourniquet — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_turnstile_protein_brick.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_camera_hound_sausage": {
            "display_name": "Saucisse de molosse caméra — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_camera_hound_sausage.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_brutalist_performance_slab": {
            "display_name": "Dalle brutaliste dopée — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_brutalist_performance_slab.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_rebar_maintenance_crunch": {
            "display_name": "Croquant d'entretien — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_rebar_maintenance_crunch.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_chrome_lens_cutlet": {
            "display_name": "Escalope chrome et objectif — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_chrome_lens_cutlet.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_jeremie_speed_bowl": {
            "display_name": "Bol de vitesse de Jérémie — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_jeremie_speed_bowl.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_cinder_crow_wings": {
            "display_name": "Ailes de corbeau de braise — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_cinder_crow_wings.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_magma_marmot_melt": {
            "display_name": "Marmotte fondante du magma — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_magma_marmot_melt.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_iron_goat_lava_fondue": {
            "display_name": "Fondue de chèvre à la lave — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_iron_goat_lava_fondue.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_heavy_metal_kebab": {
            "display_name": "Kebab heavy metal — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_heavy_metal_kebab.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_petes_molten_tartare": {
            "display_name": "Tartare en fusion de Pete — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_petes_molten_tartare.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_gars_rond_summit_roast": {
            "display_name": "Rôti du sommet de Gars-Rond — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_gars_rond_summit_roast.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_musicalo_resonance_soup": {
            "display_name": "Soupe de résonance de Musicalo — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_musicalo_resonance_soup.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_olympic_volcano_stack": {
            "display_name": "Tour olympique volcanique — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_olympic_volcano_stack.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_eggforcer_cutlet": {
            "display_name": "Escalope d'Eggforcer — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_eggforcer_cutlet.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_ballot_vulture_pie": {
            "display_name": "Tourte au vautour électoral — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_ballot_vulture_pie.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_spin_boar_roast": {
            "display_name": "Rôti de sanglier à la sauce premium — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_spin_boar_roast.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_campaign_ballot_slider": {
            "display_name": "Petit burger de campagne — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_campaign_ballot_slider.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_pepper_spin_special": {
            "display_name": "Spécial poivre et propagande — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_pepper_spin_special.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_mld_state_dinner": {
            "display_name": "Dîner d'État de MLD — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_mld_state_dinner.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.32,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_protesters_surf_and_turf": {
            "display_name": "Terre et mer du manifestant — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_protesters_surf_and_turf.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_tunnel_rat_stew": {
            "display_name": "Ragoût de rat des tunnels — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_tunnel_rat_stew.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_rootbound_tofu_bowl": {
            "display_name": "Bol de tofu enraciné — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_rootbound_tofu_bowl.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_mimic_mushroom_lunchbox": {
            "display_name": "Boîte à lunch mimique — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_mimic_mushroom_lunchbox.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.29,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_mascot_afterparty_dessert": {
            "display_name": "Dessert d'after de mascotte — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_mascot_afterparty_dessert.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_lost_shopper_forest_combo": {
            "display_name": "Combo forêt du client perdu — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_lost_shopper_forest_combo.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_abominable_party_platter": {
            "display_name": "Plateau de fête abominable — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_abominable_party_platter.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_abandoned_mall_deluxe": {
            "display_name": "Deluxe du centre commercial abandonné — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_abandoned_mall_deluxe.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_battery_hen_nuggets": {
            "display_name": "Croquettes de poule-batterie — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_battery_hen_nuggets.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.27,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_factory_floor_breakfast": {
            "display_name": "Déjeuner de plancher d'usine — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_factory_floor_breakfast.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_automated_crop_loaf": {
            "display_name": "Pain de protéines automatisé — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_automated_crop_loaf.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.28,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_approved_beef_casserole": {
            "display_name": "Casserole de boeuf approuvée — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_approved_beef_casserole.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_world_egg_degustation": {
            "display_name": "Dégustation World Egg — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_world_egg_degustation.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "dish_worlds_biggest_omelette": {
            "display_name": "La plus grosse omelette du monde — dressé",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/items/dish_worlds_biggest_omelette.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 0.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_stove_front": {
            "display_name": "Four de base — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_stove_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_stove_right": {
            "display_name": "Four de base — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_stove_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_stove_back": {
            "display_name": "Four de base — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_stove_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_stove_left": {
            "display_name": "Four de base — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_stove_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.71,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_shelf_front": {
            "display_name": "Étagère — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_shelf_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.25,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_shelf_right": {
            "display_name": "Étagère — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_shelf_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_shelf_back": {
            "display_name": "Étagère — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_shelf_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.23,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_shelf_left": {
            "display_name": "Étagère — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_shelf_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.3,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_dishwasher_front": {
            "display_name": "Plonge — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_dishwasher_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.45,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_dishwasher_right": {
            "display_name": "Plonge — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_dishwasher_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.41,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_dishwasher_back": {
            "display_name": "Plonge — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_dishwasher_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.45,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_dishwasher_left": {
            "display_name": "Plonge — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_dishwasher_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.41,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_trash_front": {
            "display_name": "Poubelle — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_trash_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.12,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_trash_right": {
            "display_name": "Poubelle — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_trash_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.05,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_trash_back": {
            "display_name": "Poubelle — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_trash_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.13,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_trash_left": {
            "display_name": "Poubelle — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_trash_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.05,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_console_front": {
            "display_name": "Console de gestion — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_console_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.6,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_console_right": {
            "display_name": "Console de gestion — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_console_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.55,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_console_back": {
            "display_name": "Console de gestion — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_console_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.6,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_console_left": {
            "display_name": "Console de gestion — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_console_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.55,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_takeout_counter_front": {
            "display_name": "Comptoir takeout — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_takeout_counter_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_takeout_counter_right": {
            "display_name": "Comptoir takeout — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_takeout_counter_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.43,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_takeout_counter_back": {
            "display_name": "Comptoir takeout — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_takeout_counter_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_takeout_counter_left": {
            "display_name": "Comptoir takeout — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_takeout_counter_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.45,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_order_board_front": {
            "display_name": "Ardoise — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_order_board_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.55,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_order_board_right": {
            "display_name": "Ardoise — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_order_board_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.48,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_order_board_back": {
            "display_name": "Ardoise — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_order_board_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.6,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_order_board_left": {
            "display_name": "Ardoise — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_order_board_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_table_front": {
            "display_name": "Tabouret — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_table_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.39,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_table_right": {
            "display_name": "Tabouret — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_table_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.71,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_table_back": {
            "display_name": "Tabouret — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_table_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.26,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_basic_table_left": {
            "display_name": "Tabouret — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/basic_table_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.55,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_employee_locker_front": {
            "display_name": "Casier d'employés — face",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/employee_locker_front.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.6,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_employee_locker_right": {
            "display_name": "Casier d'employés — profil droit",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/employee_locker_right.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_employee_locker_back": {
            "display_name": "Casier d'employés — dos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/employee_locker_back.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.63,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "element_employee_locker_left": {
            "display_name": "Casier d'employés — profil gauche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/props/employee_locker_left.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 8.0,
            "scale": 1.5,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_regular_idle": {
            "display_name": "Habitué du quartier — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_regular_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_regular_walk": {
            "display_name": "Habitué du quartier — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_regular_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_regular_eat": {
            "display_name": "Habitué du quartier — à table",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_regular_eat.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_regular_angry": {
            "display_name": "Habitué du quartier — fâché",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_regular_angry.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_foodie_idle": {
            "display_name": "Critique gastronomique — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_foodie_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_foodie_walk": {
            "display_name": "Critique gastronomique — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_foodie_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_foodie_eat": {
            "display_name": "Critique gastronomique — à table",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_foodie_eat.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_foodie_angry": {
            "display_name": "Critique gastronomique — fâché",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_foodie_angry.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_generous_guest_idle": {
            "display_name": "Militant du KMLD — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_generous_guest_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_generous_guest_angry": {
            "display_name": "Militant du KMLD — fâché",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_generous_guest_angry.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_generous_guest_walk": {
            "display_name": "Militant du KMLD — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_generous_guest_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "customer_generous_guest_eat": {
            "display_name": "Militant du KMLD — à table",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/customer_generous_guest_eat.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_jeremie_idle": {
            "display_name": "Jérémie — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_jeremie_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_jeremie_work": {
            "display_name": "Jérémie — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_jeremie_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_jeremie_walk": {
            "display_name": "Jérémie — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_jeremie_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_bob_the_horse_idle": {
            "display_name": "Bob le cheval — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_bob_the_horse_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_bob_the_horse_walk": {
            "display_name": "Bob le cheval — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_bob_the_horse_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_bob_the_horse_work": {
            "display_name": "Bob le cheval — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_bob_the_horse_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.38,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_mld_idle": {
            "display_name": "MLD — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_mld_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_mld_walk": {
            "display_name": "MLD — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_mld_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_mld_work": {
            "display_name": "MLD — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_mld_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_abominable_party_man_idle": {
            "display_name": "Abominable homme des parties — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_abominable_party_man_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_abominable_party_man_walk": {
            "display_name": "Abominable homme des parties — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_abominable_party_man_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_abominable_party_man_work": {
            "display_name": "Abominable homme des parties — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_abominable_party_man_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gab_le_crab_idle": {
            "display_name": "Gab le Crabe — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gab_le_crab_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gab_le_crab_walk": {
            "display_name": "Gab le Crabe — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gab_le_crab_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gab_le_crab_work": {
            "display_name": "Gab le Crabe — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gab_le_crab_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.36,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_eltuna_idle": {
            "display_name": "eLTuna — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_eltuna_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_eltuna_walk": {
            "display_name": "eLTuna — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_eltuna_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_eltuna_work": {
            "display_name": "eLTuna — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_eltuna_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gars_rond_idle": {
            "display_name": "Gars-Rond — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gars_rond_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gars_rond_work": {
            "display_name": "Gars-Rond — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gars_rond_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_gars_rond_walk": {
            "display_name": "Gars-Rond — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_gars_rond_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_shaman_musicalo_idle": {
            "display_name": "Shaman Musicalo — repos",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_shaman_musicalo_idle.png",
            "columns": 1,
            "rows": 5,
            "count": 5,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_shaman_musicalo_walk": {
            "display_name": "Shaman Musicalo — marche",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_shaman_musicalo_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "employee_shaman_musicalo_work": {
            "display_name": "Shaman Musicalo — au poste",
            "description": "Généré par PixelLab (fond transparent).",
            "kind": "frames",
            "path": "res://assets/characters/employee_shaman_musicalo_work.png",
            "columns": 7,
            "rows": 1,
            "count": 7,
            "fps": 8.0,
            "scale": 0.37,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "player_walk": {
            "display_name": "Joueur — marche",
            "description": "Généré par PixelLab (v3, high top-down, rangées = orientations).",
            "kind": "frames",
            "path": "res://assets/characters/player_walk.png",
            "columns": 7,
            "rows": 5,
            "count": 35,
            "fps": 12.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": true,
            "rows_are_directions": true,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_crater_meadow_background": {
            "display_name": "Vallée du Cratère — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/crater_meadow.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_old_port_background": {
            "display_name": "Vieux-Port — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/old_port.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_olympic_park_background": {
            "display_name": "Parc olympique — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/olympic_park.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_mount_royal_background": {
            "display_name": "Mont Royal — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/mount_royal.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_downtown_background": {
            "display_name": "Centre-ville — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/downtown.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_underground_city_background": {
            "display_name": "Ville souterraine — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/underground_city.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        },
        "biome_world_egg_center_background": {
            "display_name": "World Egg Center — fond",
            "description": "Généré par PixelLab (vue de dessus, sol seul).",
            "kind": "frames",
            "path": "res://assets/backgrounds/world_egg_center.png",
            "columns": 1,
            "rows": 1,
            "count": 1,
            "fps": 1.0,
            "scale": 1.0,
            "offset_x": 0.0,
            "offset_y": 0.0,
            "lifetime": 0.0,
            "loop": true,
            "flip_follows_facing": false,
            "rows_are_directions": false,
            "shader": "",
            "shader_params": [],
            "preview_image": ""
        }
    },
    "story_scenes": {},
    "game_variables": {
        "attack_damage": {
            "display_name": "Attack Damage",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000000.0,
            "rounding": "none",
            "category": "combat",
            "description": "Final player attack damage; its base value comes from the active player profile."
        },
        "build_permit": {
            "display_name": "Permis de chantier",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Débloque le mode construction, qui réaménage la salle."
        },
        "consumable_capacity": {
            "display_name": "Capacité de consommables",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 999.0,
            "rounding": "round",
            "category": "combat",
            "description": "Nombre total de plats préparés transportables."
        },
        "consumable_slot_count": {
            "display_name": "Emplacements de consommables",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 8.0,
            "rounding": "round",
            "category": "combat",
            "description": "Nombre de types de plats transportables."
        },
        "cook_count": {
            "display_name": "Cooks",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 6.0,
            "rounding": "round",
            "category": "kitchen",
            "description": "How many cooks can work the stations at once."
        },
        "cook_idle_rate": {
            "display_name": "Unattended Cooking Rate",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 4.0,
            "rounding": "none",
            "category": "kitchen",
            "description": "Fraction de la vitesse manuelle que le four conserve quand personne ne tient le bouton. 0 = il a besoin du joueur."
        },
        "cook_speed": {
            "display_name": "Cooking Duration Multiplier",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.1,
            "maximum": 10.0,
            "rounding": "none",
            "category": "kitchen",
            "description": "Multiplier applied to recipe cooking duration. 0.70 means 30 percent shorter."
        },
        "customer_appetite": {
            "display_name": "Appétit du client",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 10.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Nombre de repas commandés par visite. La fiche du profil fournit la base."
        },
        "customer_cash": {
            "display_name": "Budget du client",
            "type": "float",
            "base_value": 30.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Budget d'un client à son arrivée. La fiche du profil fournit la base."
        },
        "customer_generosity": {
            "display_name": "Générosité du client",
            "type": "float",
            "base_value": 0.15,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Part du paiement laissée en pourboire, bonifiée par un service rapide."
        },
        "customer_popularity_weight": {
            "display_name": "Poids de réputation du client",
            "type": "float",
            "base_value": 5.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Ce que vaut un client pour la réputation. La fiche du profil fournit la base."
        },
        "customer_spending": {
            "display_name": "Disposition à dépenser",
            "type": "float",
            "base_value": 0.5,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "0 pousse vers le plat le moins cher accessible, 1 vers le plus cher."
        },
        "drop_count_multiplier": {
            "display_name": "Multiplicateur de jets de butin",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Nombre moyen de jets effectu?s pour chaque ligne de butin. La partie enti?re est garantie et la partie d?cimale devient la probabilit? d?un jet suppl?mentaire."
        },
        "drop_magnet_range": {
            "display_name": "Portee magnetique des butins",
            "type": "float",
            "base_value": 50.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 4000.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Distance en pixels dans laquelle les ingr?dients libres sont attir?s vers le h?ros. Z?ro d?sactive le magn?tisme."
        },
        "drop_magnet_speed": {
            "display_name": "Vitesse magn?tique des butins",
            "type": "float",
            "base_value": 150.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 5000.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Vitesse en pixels par seconde ? laquelle les ingr?dients attir?s se d?placent vers le h?ros."
        },
        "employee_locker_count": {
            "display_name": "Casiers d'employés",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Nombre de casiers d'employés débloqués. Zéro garde la fonction Employés indisponible."
        },
        "equipment_slot_count": {
            "display_name": "Emplacements d'équipement",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 4.0,
            "rounding": "round",
            "category": "combat",
            "description": "Nombre d’objets passifs équipables."
        },
        "fast_service_ratio": {
            "display_name": "Seuil de service rapide",
            "type": "float",
            "base_value": 0.6,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Part de patience qui doit rester pour qu’un service compte comme rapide."
        },
        "hurtbox_margin": {
            "display_name": "Marge de hurtbox",
            "type": "float",
            "base_value": 4.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 64.0,
            "rounding": "none",
            "category": "combat",
            "description": "Pixels ajoutés au rayon de toute hurtbox. Le curseur de permissivité des coups."
        },
        "insurance_rate": {
            "display_name": "Assurance de plongée",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Fraction des pièces et des matériaux amassés pendant la plongée qui survit à une mise hors service."
        },
        "management_console": {
            "display_name": "Management Console",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "The management console is part of the restaurant from the first day: it carries the day's menu, the open/closed switch and the hiring board. Set it to 0 to take the console away."
        },
        "max_health": {
            "display_name": "Maximum Health",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 1000000.0,
            "rounding": "none",
            "category": "combat",
            "description": "Final player health; its base value comes from the active player profile."
        },
        "move_speed": {
            "display_name": "Movement Speed",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 10000.0,
            "rounding": "none",
            "category": "movement",
            "description": "Final player movement speed; its base value comes from the active player profile."
        },
        "order_board_slots": {
            "display_name": "Order Board Slots",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 40.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Orders the board can hold at once. Zero means the restaurant has no board and orders live in the player's memory."
        },
        "order_memory_seconds": {
            "display_name": "Order Memory",
            "type": "float",
            "base_value": 8.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 3600.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Seconds a customer order stays readable after the player has moved out of vision range."
        },
        "patience": {
            "display_name": "Customer Patience",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Final patience; its base value comes from the customer profile."
        },
        "payout": {
            "display_name": "Meal Payout Multiplier",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Multiplier applied to each meal payout."
        },
        "plates": {
            "display_name": "Reusable Plates",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Total reusable plate capacity."
        },
        "player_vision": {
            "display_name": "Player Vision",
            "type": "float",
            "base_value": 100.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 4000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Distance in pixels within which the player can read a customer order."
        },
        "popularity_coef_left_closed": {
            "display_name": "Réputation : renvoyé par la fermeture",
            "type": "float",
            "base_value": 0.05,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand la fermeture renvoie un client de la salle."
        },
        "popularity_coef_left_waiting": {
            "display_name": "Réputation : parti sans être servi",
            "type": "float",
            "base_value": 0.5,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand un client part sans avoir été servi."
        },
        "popularity_coef_order_changed": {
            "display_name": "Réputation : commande changée",
            "type": "float",
            "base_value": 0.1,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand un client doit changer de commande."
        },
        "popularity_coef_queue_closed": {
            "display_name": "Réputation : file dispersée",
            "type": "float",
            "base_value": 0.025,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand le rideau tombe sur une file qui attendait."
        },
        "popularity_coef_queue_gave_up": {
            "display_name": "Réputation : file abandonnée",
            "type": "float",
            "base_value": 0.2,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand quelqu’un renonce à attendre dans la file."
        },
        "popularity_coef_served": {
            "display_name": "Réputation : plat servi",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient appliqué quand un plat est servi."
        },
        "popularity_coef_served_fast": {
            "display_name": "Réputation : service rapide",
            "type": "float",
            "base_value": 1.1,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient appliqué quand le plat arrive avant que la patience baisse."
        },
        "popularity_coef_takeout_left": {
            "display_name": "Réputation : comptoir abandonné",
            "type": "float",
            "base_value": 0.25,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient retiré quand un client quitte la file du comptoir."
        },
        "popularity_coef_takeout_served": {
            "display_name": "Réputation : vente au comptoir",
            "type": "float",
            "base_value": 0.5,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Coefficient appliqué à une vente au comptoir."
        },
        "popularity_gain_multiplier": {
            "display_name": "Multiplicateur des hausses",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Multiplie toutes les hausses de réputation, quelle que soit la situation."
        },
        "popularity_loss_multiplier": {
            "display_name": "Multiplicateur des baisses",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1000.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Multiplie toutes les baisses de réputation, quelle que soit la situation."
        },
        "projectile_count_bonus": {
            "display_name": "Projectiles supplémentaires",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 64.0,
            "rounding": "round",
            "category": "combat",
            "description": "Nombre ajouté à chaque salve d'une arme à projectile."
        },
        "projectile_lifetime_multiplier": {
            "display_name": "Durée des projectiles",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.05,
            "maximum": 10.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global du temps de vol."
        },
        "projectile_radius_multiplier": {
            "display_name": "Taille des projectiles",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.05,
            "maximum": 10.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global du rayon de collision."
        },
        "projectile_speed_multiplier": {
            "display_name": "Vitesse des projectiles",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.05,
            "maximum": 100.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global de vitesse de tous les projectiles du joueur."
        },
        "projectile_spread_multiplier": {
            "display_name": "Dispersion des projectiles",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 10.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global de l'angle de dispersion."
        },
        "queue_capacity": {
            "display_name": "Capacité de la file",
            "type": "int",
            "base_value": 4.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 50.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Nombre de personnes qui peuvent attendre dehors avant que les suivants passent leur chemin."
        },
        "repeat_meal_payout_step": {
            "display_name": "Palier de plat enchaîné",
            "type": "float",
            "base_value": 0.15,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Ajouté au paiement pour chaque plat déjà mangé par le même client."
        },
        "reward_choices": {
            "display_name": "Choix de récompense",
            "type": "int",
            "base_value": 3.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 12.0,
            "rounding": "round",
            "category": "dungeon",
            "description": "Nombre de récompenses proposées après une salle nettoyée."
        },
        "room_population_bonus": {
            "display_name": "Bonus de population",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": -200.0,
            "maximum": 200.0,
            "rounding": "round",
            "category": "dungeon",
            "description": "Créatures ajoutées ou retirées à la vague d'ouverture d'une salle."
        },
        "secondary_weapon_slot_count": {
            "display_name": "Action secondaire",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "combat",
            "description": "Débloque une arme ou action secondaire sur une touche distincte."
        },
        "server_count": {
            "display_name": "Servers",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 6.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "How many servers can work the floor at once."
        },
        "shelf_count": {
            "display_name": "Étagères ouvertes",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Nombre d'étagères de service débloquées. Zéro garde le meuble absent."
        },
        "shelf_slots": {
            "display_name": "Shelf Slots",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 12.0,
            "rounding": "round",
            "category": "kitchen",
            "description": "How many plates the shelf can hold at once."
        },
        "sidewalk_traffic": {
            "display_name": "Trafic du trottoir",
            "type": "float",
            "base_value": 10.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 600.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Nombre de personnes qui passent devant le restaurant chaque minute."
        },
        "spice_station_count": {
            "display_name": "Spice Stations",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 2.0,
            "rounding": "round",
            "category": "kitchen",
            "description": "How many refining stations turn a cooked dish into a superior one."
        },
        "stamina": {
            "display_name": "Dungeon Stamina",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100000.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Final stamina; its base value comes from the active player profile."
        },
        "stove_count": {
            "display_name": "Stoves",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 4.0,
            "rounding": "round",
            "category": "kitchen",
            "description": "How many cooking stations run in parallel."
        },
        "superior_payout": {
            "display_name": "Superior Payout",
            "type": "float",
            "base_value": 1.5,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 10.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Sale price multiplier for a dish that came out of the spice station."
        },
        "table_count": {
            "display_name": "Tables ouvertes",
            "type": "int",
            "base_value": 2.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 5.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Nombre de tabourets ouverts au service."
        },
        "takeout_appeal": {
            "display_name": "Takeout Appeal",
            "type": "float",
            "base_value": 0.35,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Base chance that a passer-by wants the selected takeout dish."
        },
        "takeout_cook_speed": {
            "display_name": "Takeout Cooking Speed",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.05,
            "maximum": 100.0,
            "rounding": "none",
            "category": "kitchen",
            "description": "Production rate multiplier while the player or a cook works at the takeout counter."
        },
        "takeout_counter": {
            "display_name": "Takeout Counter",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Set to 1 once the takeout counter by the street is installed."
        },
        "takeout_price_ratio": {
            "display_name": "Coefficient de prix takeout",
            "type": "float",
            "base_value": 0.75,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 5.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Part du prix de vente d'un plat facturée au comptoir takeout."
        },
        "takeout_priority": {
            "display_name": "Takeout Cook Priority",
            "type": "float",
            "base_value": 0.75,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 10.0,
            "rounding": "none",
            "category": "kitchen",
            "description": "How strongly autonomous cooks prioritize replenishing takeout stock against dining-room orders."
        },
        "takeout_queue_capacity": {
            "display_name": "Takeout Queue Capacity",
            "type": "int",
            "base_value": 4.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 50.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "How many customers may wait in the takeout line outside."
        },
        "takeout_service_speed": {
            "display_name": "Takeout Service Speed",
            "type": "float",
            "base_value": 0.0333333333,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.001,
            "maximum": 100.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Takeout customers served per second while finished stock is available."
        },
        "takeout_stock_capacity": {
            "display_name": "Takeout Stock Capacity",
            "type": "int",
            "base_value": 4.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 100.0,
            "rounding": "round",
            "category": "restaurant",
            "description": "Maximum finished dishes accumulated for takeout."
        },
        "throughput_window": {
            "display_name": "Fenêtre de service",
            "type": "float",
            "base_value": 90.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 5.0,
            "maximum": 3600.0,
            "rounding": "none",
            "category": "restaurant",
            "description": "Secondes d’historique récent qu’un passant regarde pour juger la vitesse de service."
        },
        "wave_population_bonus": {
            "display_name": "Bonus de relève",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": -200.0,
            "maximum": 200.0,
            "rounding": "round",
            "category": "dungeon",
            "description": "Créatures ajoutées ou retirées à chaque vague après l'ouverture."
        },
        "wave_spawn_clearance": {
            "display_name": "Dégagement de relève",
            "type": "float",
            "base_value": 260.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 2000.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Distance minimale entre le joueur et une vague de relève qui arrive."
        },
        "wave_trigger_bonus": {
            "display_name": "Avance de relève",
            "type": "float",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": -1.0,
            "maximum": 1.0,
            "rounding": "none",
            "category": "dungeon",
            "description": "Relève le seuil déclaré de chaque vague: elle arrive avec davantage de la précédente encore debout."
        },
        "weapon_attack_speed_multiplier": {
            "display_name": "Vitesse d'attaque des armes",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.05,
            "maximum": 100.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global de fréquence; la recharge est divisée par cette valeur."
        },
        "weapon_damage_multiplier": {
            "display_name": "Multiplicateur de dégâts d'arme",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global appliqué après celui de l'arme équipée."
        },
        "weapon_knockback_multiplier": {
            "display_name": "Projection des armes",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global de projection des armes."
        },
        "weapon_piercing_bonus": {
            "display_name": "Traversée des armes",
            "type": "int",
            "base_value": 0.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 64.0,
            "rounding": "round",
            "category": "combat",
            "description": "Corps supplémentaires traversés par les coups directs et les projectiles."
        },
        "weapon_slot_count": {
            "display_name": "Arme principale",
            "type": "int",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 1.0,
            "maximum": 1.0,
            "rounding": "round",
            "category": "combat",
            "description": "Une seule arme principale peut être équipée."
        },
        "weapon_stamina_cost_multiplier": {
            "display_name": "Coût stamina des armes",
            "type": "float",
            "base_value": 1.0,
            "base_bonus": 0.0,
            "base_coefficient": 1.0,
            "coefficient_bonus": 0.0,
            "minimum": 0.0,
            "maximum": 100.0,
            "rounding": "none",
            "category": "combat",
            "description": "Multiplicateur global du coût en stamina des attaques."
        }
    },
    "game_facts": {
        "enemies_defeated": {
            "display_name": "Enemies Defeated",
            "type": "int",
            "default_value": 0,
            "category": "combat",
            "description": "Total defeated enemies.",
            "scope": "dimension"
        },
        "slime_kills": {
            "display_name": "Slimes Defeated",
            "type": "int",
            "default_value": 0,
            "category": "combat",
            "description": "Total defeated slimes.",
            "scope": "dimension"
        },
        "dishes_served": {
            "display_name": "Dishes Served",
            "type": "int",
            "default_value": 0,
            "category": "restaurant",
            "description": "Total meals delivered.",
            "scope": "dimension"
        },
        "dungeon_runs": {
            "display_name": "Dungeon Runs",
            "type": "int",
            "default_value": 0,
            "category": "dungeon",
            "description": "Total dungeon entries.",
            "scope": "dimension"
        },
        "boss_defeated": {
            "display_name": "Boss Defeated",
            "type": "bool",
            "default_value": false,
            "category": "boss",
            "description": "Set when the first boss is defeated.",
            "scope": "dimension"
        },
        "restaurant_popularity": {
            "display_name": "Popularité du restaurant",
            "type": "float",
            "default_value": 0.0,
            "category": "restaurant",
            "description": "Réputation courante du restaurant. Monte à chaque plat servi, descend à chaque client reparti sans être servi.",
            "scope": "dimension"
        },
        "master_fork_owned": {
            "display_name": "Fourchette maîtresse",
            "type": "bool",
            "default_value": false,
            "category": "dimension",
            "description": "Vrai une fois l’épreuve terminée et la fourchette maîtresse obtenue.",
            "scope": "meta"
        },
        "dimensions_cleared": {
            "display_name": "Dimensions terminées",
            "type": "int",
            "default_value": 0,
            "category": "dimension",
            "description": "Nombre de dimensions dont le boss final est tombé.",
            "scope": "meta"
        }
    },
    "upgrade_themes": {
        "core_cyan": {
            "display_name": "Cyan central",
            "shape": "hexagon",
            "size_scale": 1.0,
            "corner_scale": 0.25,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#123440",
                    "border_color": "#67e8f9",
                    "text_color": "#cbd5e1",
                    "connector_color": "#67e8f9",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#164e63",
                    "border_color": "#67e8f9",
                    "text_color": "#ecfeff",
                    "connector_color": "#67e8f9",
                    "border_width": 2.0,
                    "connector_width": 2.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#123440",
                    "border_color": "#f97316",
                    "text_color": "#ecfeff",
                    "connector_color": "#f97316",
                    "border_width": 2.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#166070",
                    "border_color": "#4ade80",
                    "text_color": "#ecfeff",
                    "connector_color": "#4ade80",
                    "border_width": 8.0,
                    "connector_width": 8.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        },
        "combat_crimson": {
            "display_name": "Combat fuchsia",
            "shape": "diamond",
            "size_scale": 1.25,
            "corner_scale": 0.5,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#3b1140",
                    "border_color": "#f0abfc",
                    "text_color": "#cbd5e1",
                    "connector_color": "#f0abfc",
                    "border_width": 2.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#3b1140",
                    "border_color": "#f0abfc",
                    "text_color": "#ffffff",
                    "connector_color": "#f0abfc",
                    "border_width": 3.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#3b1140",
                    "border_color": "#f97316",
                    "text_color": "#c0bfc0",
                    "connector_color": "#f97316",
                    "border_width": 3.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#86198f",
                    "border_color": "#4ade80",
                    "text_color": "#ffffff",
                    "connector_color": "#4ade80",
                    "border_width": 3.0,
                    "connector_width": 3.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": true,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        },
        "exploration_blue": {
            "display_name": "Exploration azur",
            "shape": "circle",
            "size_scale": 1.0,
            "corner_scale": 0.0,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#111f3f",
                    "border_color": "#93c5fd",
                    "text_color": "#cbd5e1",
                    "connector_color": "#93c5fd",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#1e3a8a",
                    "border_color": "#93c5fd",
                    "text_color": "#eff6ff",
                    "connector_color": "#93c5fd",
                    "border_width": 4.0,
                    "connector_width": 4.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#111f3f",
                    "border_color": "#f97316",
                    "text_color": "#eff6ff",
                    "connector_color": "#f97316",
                    "border_width": 4.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#1d4ed8",
                    "border_color": "#4ade80",
                    "text_color": "#eff6ff",
                    "connector_color": "#4ade80",
                    "border_width": 5.0,
                    "connector_width": 5.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        },
        "kitchen_amber": {
            "display_name": "Cuisine ambre",
            "shape": "square",
            "size_scale": 1.0,
            "corner_scale": 0.75,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#3b2a0c",
                    "border_color": "#fcd34d",
                    "text_color": "#cbd5e1",
                    "connector_color": "#fcd34d",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#78350f",
                    "border_color": "#fcd34d",
                    "text_color": "#fffbeb",
                    "connector_color": "#fcd34d",
                    "border_width": 4.0,
                    "connector_width": 4.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#3b2a0c",
                    "border_color": "#f97316",
                    "text_color": "#fffbeb",
                    "connector_color": "#f97316",
                    "border_width": 4.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#92400e",
                    "border_color": "#4ade80",
                    "text_color": "#fffbeb",
                    "connector_color": "#4ade80",
                    "border_width": 5.0,
                    "connector_width": 5.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        },
        "service_green": {
            "display_name": "Service acier",
            "shape": "circle",
            "size_scale": 1.0,
            "corner_scale": 0.0,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#1c2733",
                    "border_color": "#cbd5e1",
                    "text_color": "#cbd5e1",
                    "connector_color": "#cbd5e1",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#334155",
                    "border_color": "#cbd5e1",
                    "text_color": "#f8fafc",
                    "connector_color": "#cbd5e1",
                    "border_width": 4.0,
                    "connector_width": 4.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#1c2733",
                    "border_color": "#f97316",
                    "text_color": "#f8fafc",
                    "connector_color": "#f97316",
                    "border_width": 4.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#475569",
                    "border_color": "#4ade80",
                    "text_color": "#f8fafc",
                    "connector_color": "#4ade80",
                    "border_width": 5.0,
                    "connector_width": 5.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        },
        "special_violet": {
            "display_name": "Spécial violet",
            "shape": "hexagon",
            "size_scale": 1.0,
            "corner_scale": 0.0,
            "states": {
                "invisible": {
                    "background_color": "#0b101a",
                    "border_color": "#18202d",
                    "text_color": "#4b5563",
                    "connector_color": "#111827",
                    "border_width": 1.0,
                    "connector_width": 1.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "mystery": {
                    "background_color": "#1f2937",
                    "border_color": "#64748b",
                    "text_color": "#ffffff",
                    "connector_color": "#475569",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dotted",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "locked": {
                    "background_color": "#241a44",
                    "border_color": "#c4b5fd",
                    "text_color": "#cbd5e1",
                    "connector_color": "#c4b5fd",
                    "border_width": 3.0,
                    "connector_width": 2.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "available": {
                    "background_color": "#4c1d95",
                    "border_color": "#c4b5fd",
                    "text_color": "#f5f3ff",
                    "connector_color": "#c4b5fd",
                    "border_width": 4.0,
                    "connector_width": 4.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "insufficient": {
                    "background_color": "#241a44",
                    "border_color": "#f97316",
                    "text_color": "#f5f3ff",
                    "connector_color": "#f97316",
                    "border_width": 4.0,
                    "connector_width": 3.0,
                    "connector_pattern": "dashed",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                },
                "purchased": {
                    "background_color": "#5b21b6",
                    "border_color": "#4ade80",
                    "text_color": "#f5f3ff",
                    "connector_color": "#4ade80",
                    "border_width": 5.0,
                    "connector_width": 5.0,
                    "connector_pattern": "solid",
                    "text_size": 13.0,
                    "text_bold": false,
                    "text_italic": false,
                    "text_underline": false
                }
            }
        }
    },
    "upgrade_nodes": {
        "big_egg_core": {
            "display_name": "BIG EGG",
            "node_text": "BIG EGG",
            "detailed_text": "Le premier éclat.",
            "category": "core",
            "parent": "",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 0.0,
            "costs": [],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "core_cyan",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "sharp_fork": {
            "display_name": "Fourchette affûtée",
            "node_text": "+8 ATQ",
            "detailed_text": "Une dent de plus au combat.",
            "category": "combat",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 3.009999999999991,
            "distance": 456.63,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 8.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "sturdy_shell": {
            "display_name": "Coquille solide",
            "node_text": "+30 PV",
            "detailed_text": "La coquille tient.",
            "category": "combat",
            "parent": "sharp_fork",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 30.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.sharp_fork.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [
                {
                    "path": "fact.enemies_defeated",
                    "operator": ">=",
                    "value": 3
                }
            ],
            "unlock_conditions": [
                {
                    "path": "fact.enemies_defeated",
                    "operator": ">=",
                    "value": 5
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "keen_edge": {
            "display_name": "Tranchant vif",
            "node_text": "+15% ATQ",
            "detailed_text": "Le fil garde son mordant.",
            "category": "combat",
            "parent": "sharp_fork",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.15
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.sharp_fork.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.sharp_fork.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "heavy_swing": {
            "display_name": "Coup lourd",
            "node_text": "+14 ATQ",
            "detailed_text": "Un geste. Tout le poids.",
            "category": "combat",
            "parent": "keen_edge",
            "secondary_parents": [],
            "angle": 315.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 14.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.keen_edge.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.keen_edge.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "iron_stomach": {
            "display_name": "Estomac de fer",
            "node_text": "+20% PV",
            "detailed_text": "Plus dur à mettre à terre.",
            "category": "combat",
            "parent": "sturdy_shell",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.sturdy_shell.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.sturdy_shell.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "hunters_eye": {
            "display_name": "Œil du chasseur",
            "node_text": "+120 VUE",
            "detailed_text": "Les commandes se lisent de loin.",
            "category": "combat",
            "parent": "sturdy_shell",
            "secondary_parents": [],
            "angle": 315.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "player_vision",
                    "layer": "flat",
                    "operation": "add",
                    "value": 120.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.sturdy_shell.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.sturdy_shell.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "steel_bones": {
            "display_name": "Os d’acier",
            "node_text": "+60 PV",
            "detailed_text": "Une réserve sous la peau.",
            "category": "combat",
            "parent": "iron_stomach",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 60.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.iron_stomach.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.iron_stomach.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "brawlers_stance": {
            "display_name": "Garde de bagarreur",
            "node_text": "+20% ATQ",
            "detailed_text": "Le corps entier frappe.",
            "category": "combat",
            "parent": "heavy_swing",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.heavy_swing.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.heavy_swing.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "tempered_blade": {
            "display_name": "Lame trempée",
            "node_text": "+40 ATQ",
            "detailed_text": "Le fil sort du feu.",
            "category": "combat",
            "parent": "brawlers_stance",
            "secondary_parents": [],
            "angle": 315.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 40.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.brawlers_stance.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.brawlers_stance.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "thick_hide": {
            "display_name": "Peau dure",
            "node_text": "+120 PV",
            "detailed_text": "Encore debout.",
            "category": "combat",
            "parent": "steel_bones",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 120.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.steel_bones.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.steel_bones.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "berserk_grip": {
            "display_name": "Poigne enragée",
            "node_text": "+35% ATQ",
            "detailed_text": "La colère tient le manche.",
            "category": "combat",
            "parent": "tempered_blade",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.35
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.tempered_blade.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.tempered_blade.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "titan_frame": {
            "display_name": "Carrure de titan",
            "node_text": "+40% PV",
            "detailed_text": "Une masse qui refuse de tomber.",
            "category": "combat",
            "parent": "thick_hide",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.4
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.thick_hide.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.thick_hide.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "master_fork_edge": {
            "display_name": "Fourchette maîtresse",
            "node_text": "+50% ATQ",
            "detailed_text": "Son fil traverse les dimensions.",
            "category": "special",
            "parent": "berserk_grip",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.berserk_grip.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "fact.master_fork_owned",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "quick_feet": {
            "display_name": "Pieds vifs",
            "node_text": "+35 VITESSE",
            "detailed_text": "Un pas devant le chaos.",
            "category": "exploration",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 289.36,
            "distance": 941.22,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "flat",
                    "operation": "add",
                    "value": 35.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "deep_breath": {
            "display_name": "Souffle long",
            "node_text": "+20 ENDURANCE",
            "detailed_text": "De l’air pour la suite.",
            "category": "exploration",
            "parent": "quick_feet",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stamina",
                    "layer": "flat",
                    "operation": "add",
                    "value": 20.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.quick_feet.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.quick_feet.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "lucky_pouch": {
            "display_name": "Bourse chanceuse",
            "node_text": "+25% BUTIN",
            "detailed_text": "Un peu plus tombe à chaque chasse.",
            "category": "exploration",
            "parent": "quick_feet",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "drop_count_multiplier",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.25
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.quick_feet.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.quick_feet.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "magnet_charm": {
            "display_name": "Charme aimanté",
            "node_text": "+150 PORTÉE",
            "detailed_text": "Le butin vient à toi.",
            "category": "exploration",
            "parent": "lucky_pouch",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "drop_magnet_range",
                    "layer": "flat",
                    "operation": "add",
                    "value": 150.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.lucky_pouch.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.lucky_pouch.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "magnet_pull": {
            "display_name": "Aimant vif",
            "node_text": "+250 VITESSE",
            "detailed_text": "Le butin accourt.",
            "category": "exploration",
            "parent": "magnet_charm",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "drop_magnet_speed",
                    "layer": "flat",
                    "operation": "add",
                    "value": 250.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.magnet_charm.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.magnet_charm.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "long_stride": {
            "display_name": "Longue foulée",
            "node_text": "+45 VITESSE",
            "detailed_text": "Les couloirs raccourcissent.",
            "category": "exploration",
            "parent": "deep_breath",
            "secondary_parents": [],
            "angle": 277.68000000000006,
            "distance": 179.61,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "flat",
                    "operation": "add",
                    "value": 45.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.deep_breath.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.deep_breath.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_wind": {
            "display_name": "Second souffle",
            "node_text": "+30% ENDURANCE",
            "detailed_text": "Le souffle revient plus profond.",
            "category": "exploration",
            "parent": "deep_breath",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 370.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stamina",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.deep_breath.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.deep_breath.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "scout_map": {
            "display_name": "Carte d’éclaireur",
            "node_text": "+1 CHOIX",
            "detailed_text": "Une récompense de plus en vue.",
            "category": "exploration",
            "parent": "lucky_pouch",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "reward_choices",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.lucky_pouch.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.lucky_pouch.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "crowded_halls": {
            "display_name": "Salles bondées",
            "node_text": "+4 ENNEMIS",
            "detailed_text": "Plus de risques, plus de prises.",
            "category": "exploration",
            "parent": "scout_map",
            "secondary_parents": [],
            "angle": 149.37,
            "distance": 410.21,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "room_population_bonus",
                    "layer": "flat",
                    "operation": "add",
                    "value": 4.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.scout_map.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.scout_map.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "rich_veins": {
            "display_name": "Filons riches",
            "node_text": "+40% BUTIN",
            "detailed_text": "Chaque victoire laisse davantage.",
            "category": "exploration",
            "parent": "magnet_pull",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "drop_count_multiplier",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.4
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.magnet_pull.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.magnet_pull.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "cartographer": {
            "display_name": "Carte clandestine",
            "node_text": "+1 CHOIX",
            "detailed_text": "Le choix s’élargit encore.",
            "category": "exploration",
            "parent": "scout_map",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "reward_choices",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.scout_map.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.scout_map.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "relentless_waves": {
            "display_name": "Relève nombreuse",
            "node_text": "+3 RENFORTS",
            "detailed_text": "La relève arrive plus nombreuse.",
            "category": "exploration",
            "parent": "crowded_halls",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "wave_population_bonus",
                    "layer": "flat",
                    "operation": "add",
                    "value": 3.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.crowded_halls.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.crowded_halls.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "early_alarm": {
            "display_name": "Alarme précoce",
            "node_text": "+15 pts SEUIL",
            "detailed_text": "Les renforts n’attendent plus la fin.",
            "category": "exploration",
            "parent": "relentless_waves",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "wave_trigger_bonus",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.15
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.relentless_waves.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.relentless_waves.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "exploration_blue",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "survivor_insurance": {
            "display_name": "Assurance du survivant",
            "node_text": "+30% SAUVÉ",
            "detailed_text": "Une chute épargne une part du butin.",
            "category": "special",
            "parent": "second_wind",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "insurance_rate",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_wind.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_wind.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "dimensional_stride": {
            "display_name": "Pas sans frontière",
            "node_text": "+25% VITESSE",
            "detailed_text": "Cette vitesse ne s’efface plus.",
            "category": "special",
            "parent": "long_stride",
            "secondary_parents": [],
            "angle": 315.0,
            "distance": 200.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.25
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.long_stride.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.long_stride.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "hoarders_luck": {
            "display_name": "Main heureuse",
            "node_text": "+50% BUTIN",
            "detailed_text": "Le butin aime les habitués.",
            "category": "special",
            "parent": "rich_veins",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "drop_count_multiplier",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.rich_veins.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.rich_veins.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "hot_pan": {
            "display_name": "Poêle brûlante",
            "node_text": "-30% CUISSON",
            "detailed_text": "Le feu prend de l’avance.",
            "category": "kitchen",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 56.31,
            "distance": 778.8,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": -0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "auto_stove": {
            "display_name": "Four autonome",
            "node_text": "+40% EN AUTONOMIE",
            "detailed_text": "Le four travaille sans main.",
            "category": "kitchen",
            "parent": "hot_pan",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_idle_rate",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.4
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_stove": {
            "display_name": "Deuxième four",
            "node_text": "+1 FOUR",
            "detailed_text": "Deux feux, deux plats.",
            "category": "kitchen",
            "parent": "hot_pan",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stove_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "first_shelf": {
            "display_name": "Étagère de service",
            "node_text": "+1 ÉTAGÈRE",
            "detailed_text": "Une étagère accueille enfin les assiettes prêtes.",
            "category": "kitchen",
            "parent": "second_stove",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "shelf_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "bigger_shelf": {
            "display_name": "Étagère profonde",
            "node_text": "+3 PLACES",
            "detailed_text": "Trois assiettes trouvent leur place.",
            "category": "kitchen",
            "parent": "first_shelf",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "shelf_slots",
                    "layer": "flat",
                    "operation": "add",
                    "value": 3.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.first_shelf.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.first_shelf.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "sharp_knives": {
            "display_name": "Couteaux affûtés",
            "node_text": "-12% CUISSON",
            "detailed_text": "La préparation devance le feu.",
            "category": "kitchen",
            "parent": "auto_stove",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": -0.12
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.auto_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.auto_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "first_cook": {
            "display_name": "Premier cuisinier",
            "node_text": "+1 CUISINIER",
            "detailed_text": "Un tablier rejoint la brigade.",
            "category": "kitchen",
            "parent": "second_stove",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "third_stove": {
            "display_name": "Troisième four",
            "node_text": "+1 FOUR",
            "detailed_text": "Un troisième feu s’allume.",
            "category": "kitchen",
            "parent": "second_stove",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 370.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stove_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "wall_shelf": {
            "display_name": "Étagère murale",
            "node_text": "+4 PLACES",
            "detailed_text": "La vaisselle gagne les murs.",
            "category": "kitchen",
            "parent": "bigger_shelf",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 200.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "shelf_slots",
                    "layer": "flat",
                    "operation": "add",
                    "value": 4.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.bigger_shelf.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.bigger_shelf.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_cook": {
            "display_name": "Deuxième cuisinier",
            "node_text": "+1 CUISINIER",
            "detailed_text": "Deux tabliers tiennent les fourneaux.",
            "category": "kitchen",
            "parent": "first_cook",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.first_cook.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.first_cook.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "prep_station": {
            "display_name": "Mise en place",
            "node_text": "-12% CUISSON",
            "detailed_text": "Tout attend déjà le premier geste.",
            "category": "kitchen",
            "parent": "sharp_knives",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": -0.12
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.sharp_knives.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.sharp_knives.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fourth_stove": {
            "display_name": "Quatrième four",
            "node_text": "+1 FOUR",
            "detailed_text": "Le dernier feu de la ligne.",
            "category": "kitchen",
            "parent": "third_stove",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stove_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.third_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.third_stove.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "third_cook": {
            "display_name": "Troisième cuisinier",
            "node_text": "+1 CUISINIER",
            "detailed_text": "La brigade prend son rythme.",
            "category": "kitchen",
            "parent": "second_cook",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_cook.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_cook.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "kitchen_mastery": {
            "display_name": "Main de maître",
            "node_text": "-15% CUISSON",
            "detailed_text": "Le geste précède la flamme.",
            "category": "kitchen",
            "parent": "prep_station",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": -0.15
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.prep_station.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.prep_station.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "casier": {
            "display_name": "Casier d’équipe",
            "node_text": "+1 CASIER",
            "detailed_text": "La brigade peut enfin s’installer.",
            "category": "kitchen",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 147.26,
            "distance": 798.88,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "employee_locker_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "comfy_chairs": {
            "display_name": "Chaises confortables",
            "node_text": "+30 PATIENCE",
            "detailed_text": "On attend mieux bien assis.",
            "category": "service",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 201.15999999999997,
            "distance": 797.8,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "patience",
                    "layer": "flat",
                    "operation": "add",
                    "value": 30.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_table": {
            "display_name": "Deuxième place",
            "node_text": "+1 PLACE",
            "detailed_text": "Une chaise de plus à servir.",
            "category": "service",
            "parent": "comfy_chairs",
            "secondary_parents": [],
            "angle": 214.54999999999995,
            "distance": 296.24,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "table_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [
                {
                    "path": "fact.dishes_served",
                    "operator": ">=",
                    "value": 2
                }
            ],
            "unlock_conditions": [
                {
                    "path": "fact.dishes_served",
                    "operator": ">=",
                    "value": 4
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "third_table": {
            "display_name": "Troisième place",
            "node_text": "+1 PLACE",
            "detailed_text": "La salle s’élargit.",
            "category": "service",
            "parent": "second_table",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "table_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "wider_menu": {
            "display_name": "Bouche à oreille",
            "node_text": "+1 RECETTE",
            "detailed_text": "Un plat de plus au menu.",
            "category": "service",
            "parent": "comfy_chairs",
            "secondary_parents": [],
            "angle": 138.89,
            "distance": 292.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "popularity_coef_served",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "first_server": {
            "display_name": "Premier serveur",
            "node_text": "+1 SERVEUR",
            "detailed_text": "Un plateau rejoint la salle.",
            "category": "service",
            "parent": "wider_menu",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "server_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.wider_menu.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.wider_menu.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_server": {
            "display_name": "Deuxième serveur",
            "node_text": "+1 SERVEUR",
            "detailed_text": "Le service trouve son rythme.",
            "category": "service",
            "parent": "first_server",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "server_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.first_server.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.first_server.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fourth_table": {
            "display_name": "Quatrième place",
            "node_text": "+1 PLACE",
            "detailed_text": "Une table de plus s’anime.",
            "category": "service",
            "parent": "third_table",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "table_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.third_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.third_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fifth_table": {
            "display_name": "Cinquième place",
            "node_text": "+1 PLACE",
            "detailed_text": "Cinq couverts peuvent tourner.",
            "category": "service",
            "parent": "fourth_table",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "table_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.fourth_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.fourth_table.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "bigger_menu": {
            "display_name": "Réputation de quartier",
            "node_text": "+1 RECETTE",
            "detailed_text": "Le menu gagne une ligne.",
            "category": "service",
            "parent": "wider_menu",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "popularity_coef_served",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                },
                {
                    "variable": "sidewalk_traffic",
                    "layer": "flat",
                    "operation": "add",
                    "value": 3.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.wider_menu.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.wider_menu.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "third_server": {
            "display_name": "Troisième serveur",
            "node_text": "+1 SERVEUR",
            "detailed_text": "La salle tourne en brigade.",
            "category": "service",
            "parent": "second_server",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "server_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_server.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_server.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "street_sign": {
            "display_name": "Enseigne de rue",
            "node_text": "+8 PASSANTS/MIN",
            "detailed_text": "La rue lève les yeux.",
            "category": "service",
            "parent": "comfy_chairs",
            "secondary_parents": [],
            "angle": 246.71000000000004,
            "distance": 313.56,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "sidewalk_traffic",
                    "layer": "flat",
                    "operation": "add",
                    "value": 8.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "word_of_mouth": {
            "display_name": "Bouche-à-oreille",
            "node_text": "+1,5 POP./PLAT",
            "detailed_text": "Les bonnes tables voyagent par la voix.",
            "category": "service",
            "parent": "street_sign",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "popularity_coef_served",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.street_sign.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.street_sign.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "good_reputation": {
            "display_name": "Réputation solide",
            "node_text": "-1 PERTE/CLIENT",
            "detailed_text": "Un départ pèse moins lourd.",
            "category": "service",
            "parent": "word_of_mouth",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "popularity_coef_left_waiting",
                    "layer": "flat",
                    "operation": "add",
                    "value": -0.25
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.word_of_mouth.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.word_of_mouth.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "queue_rope": {
            "display_name": "Cordon de file",
            "node_text": "+4 EN FILE",
            "detailed_text": "La file respire davantage.",
            "category": "service",
            "parent": "street_sign",
            "secondary_parents": [],
            "angle": 315.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "queue_capacity",
                    "layer": "flat",
                    "operation": "add",
                    "value": 4.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.street_sign.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.street_sign.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "patient_line": {
            "display_name": "File indulgente",
            "node_text": "-0,5 SI ABANDON",
            "detailed_text": "Un abandon laisse moins de traces.",
            "category": "service",
            "parent": "queue_rope",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "popularity_coef_queue_gave_up",
                    "layer": "flat",
                    "operation": "add",
                    "value": -0.1
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.queue_rope.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.queue_rope.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "long_memory": {
            "display_name": "Mémoire du quartier",
            "node_text": "+60 s D’HISTORIQUE",
            "detailed_text": "La rue juge sur la durée.",
            "category": "service",
            "parent": "word_of_mouth",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "throughput_window",
                    "layer": "flat",
                    "operation": "add",
                    "value": 60.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.word_of_mouth.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.word_of_mouth.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fancy_plating": {
            "display_name": "Dressage soigné",
            "node_text": "+40% GAIN",
            "detailed_text": "L’œil goûte avant la bouche.",
            "category": "kitchen",
            "parent": "hot_pan",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 600.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.4
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.hot_pan.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "golden_plates": {
            "display_name": "Assiettes dorées",
            "node_text": "+30% GAIN",
            "detailed_text": "Un éclat qui hausse l’addition.",
            "category": "kitchen",
            "parent": "fancy_plating",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.fancy_plating.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.fancy_plating.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_plate": {
            "display_name": "Deuxième assiette",
            "node_text": "+1 ASSIETTE",
            "detailed_text": "Un couvert revient dans la ronde.",
            "category": "service",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 115.76999999999998,
            "distance": 772.86,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "plates",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "third_plate": {
            "display_name": "Troisième assiette",
            "node_text": "+1 ASSIETTE",
            "detailed_text": "La plonge gagne du souffle.",
            "category": "service",
            "parent": "second_plate",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "plates",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.second_plate.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.second_plate.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fourth_plate": {
            "display_name": "Quatrième assiette",
            "node_text": "+1 ASSIETTE",
            "detailed_text": "Quatre assiettes en circulation.",
            "category": "service",
            "parent": "third_plate",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "plates",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.third_plate.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.third_plate.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "order_board": {
            "display_name": "Ardoise des commandes",
            "node_text": "+6 COMMANDES",
            "detailed_text": "La brigade partage enfin sa mémoire.",
            "category": "kitchen",
            "parent": "comfy_chairs",
            "secondary_parents": [],
            "angle": 239.83000000000004,
            "distance": 1193.75,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "order_board_slots",
                    "layer": "flat",
                    "operation": "add",
                    "value": 6.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "wider_board": {
            "display_name": "Grande ardoise",
            "node_text": "+8 COMMANDES",
            "detailed_text": "Huit lignes pour garder le fil.",
            "category": "kitchen",
            "parent": "order_board",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 370.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "order_board_slots",
                    "layer": "flat",
                    "operation": "add",
                    "value": 8.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.order_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.order_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "order_memory": {
            "display_name": "Mémoire des commandes",
            "node_text": "+8 s MÉMOIRE",
            "detailed_text": "Les commandes s’effacent moins vite.",
            "category": "kitchen",
            "parent": "wider_board",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "order_memory_seconds",
                    "layer": "flat",
                    "operation": "add",
                    "value": 8.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.wider_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.wider_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "build_permit": {
            "display_name": "Permis de chantier",
            "node_text": "MODE CONSTRUCTION",
            "detailed_text": "La salle devient modulable.",
            "category": "kitchen",
            "parent": "order_board",
            "secondary_parents": [],
            "angle": 90.0,
            "distance": 320.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "build_permit",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.order_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.order_board.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "kitchen_amber",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "street_window": {
            "display_name": "Guichet sur rue",
            "node_text": "COMPTOIR OUVERT",
            "detailed_text": "La cuisine s’ouvre au trottoir.",
            "category": "takeout",
            "parent": "comfy_chairs",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 600.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_counter",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.comfy_chairs.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "deeper_counter": {
            "display_name": "Comptoir profond",
            "node_text": "+6 EN RÉSERVE",
            "detailed_text": "Six plats attendent derrière la vitre.",
            "category": "takeout",
            "parent": "street_window",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_stock_capacity",
                    "layer": "flat",
                    "operation": "add",
                    "value": 6.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.street_window.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.street_window.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "street_reputation": {
            "display_name": "Appel du guichet",
            "node_text": "+20 pts ATTRAIT",
            "detailed_text": "Le plat du jour attire davantage.",
            "category": "takeout",
            "parent": "street_window",
            "secondary_parents": [],
            "angle": 45.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_appeal",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.street_window.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.street_window.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "fast_wrap": {
            "display_name": "Emballage vif",
            "node_text": "+0,02 SERVICE/S",
            "detailed_text": "La file avance plus vite.",
            "category": "takeout",
            "parent": "deeper_counter",
            "secondary_parents": [],
            "angle": 225.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_service_speed",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.02
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.deeper_counter.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.deeper_counter.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "batch_cooking": {
            "display_name": "Cuisson en lot",
            "node_text": "+30% PRODUCTION",
            "detailed_text": "Le comptoir se regarnit plus vite.",
            "category": "takeout",
            "parent": "deeper_counter",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_cook_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.deeper_counter.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.deeper_counter.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "queue_line": {
            "display_name": "File du guichet",
            "node_text": "+4 EN FILE",
            "detailed_text": "Quatre clients attendent de plus.",
            "category": "takeout",
            "parent": "fast_wrap",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_queue_capacity",
                    "layer": "flat",
                    "operation": "add",
                    "value": 4.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.fast_wrap.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.fast_wrap.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "premium_counter": {
            "display_name": "Comptoir soigné",
            "node_text": "+10 pts PRIX",
            "detailed_text": "L’emporté se rapproche du prix en salle.",
            "category": "takeout",
            "parent": "street_reputation",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_price_ratio",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.1
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.street_reputation.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.street_reputation.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "counter_priority": {
            "display_name": "Priorité comptoir",
            "node_text": "+0,5 PRIORITÉ",
            "detailed_text": "La brigade regarnit d’abord le guichet.",
            "category": "takeout",
            "parent": "batch_cooking",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "takeout_priority",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.batch_cooking.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.batch_cooking.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "service_green",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "boss_trophy": {
            "display_name": "Trophée du gardien",
            "node_text": "+0,2 GAIN BASE",
            "detailed_text": "La victoire se glisse dans l’addition.",
            "category": "boss",
            "parent": "sturdy_shell",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "visibility_conditions": [],
            "reveal_conditions": [
                {
                    "path": "enemies.eltuna.total_killed",
                    "operator": ">=",
                    "value": 1
                }
            ],
            "unlock_conditions": [
                {
                    "path": "fact.boss_defeated",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "spice_station": {
            "display_name": "Poste à épices",
            "node_text": "+1 POSTE",
            "detailed_text": "Le dernier geste relève le prix.",
            "category": "special",
            "parent": "fancy_plating",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 225.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "spice_station_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.fancy_plating.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.fancy_plating.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "rare_spices": {
            "display_name": "Épices rares",
            "node_text": "+0,3 GAIN RAFFINÉ",
            "detailed_text": "Chaque pincée vaut davantage.",
            "category": "special",
            "parent": "spice_station",
            "secondary_parents": [],
            "angle": 180.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "superior_payout",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.3
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.spice_station.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.spice_station.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "second_spice_station": {
            "display_name": "Deuxième poste",
            "node_text": "+1 POSTE",
            "detailed_text": "Deux assiettes s’affinent à la fois.",
            "category": "special",
            "parent": "rare_spices",
            "secondary_parents": [],
            "angle": 135.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "spice_station_count",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.rare_spices.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.rare_spices.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "dimensional_ledger": {
            "display_name": "Livre des dimensions",
            "node_text": "+50% GAIN",
            "detailed_text": "Ces marges survivent au prochain monde.",
            "category": "special",
            "parent": "boss_trophy",
            "secondary_parents": [],
            "angle": 0.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "payout",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.5
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.boss_trophy.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.boss_trophy.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "veteran_grip": {
            "display_name": "Poigne de vétéran",
            "node_text": "+80 ATQ",
            "detailed_text": "Le manche se souvient des combats.",
            "category": "special",
            "parent": "dimensional_ledger",
            "secondary_parents": [],
            "angle": 5.509999999999991,
            "distance": 500.31,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 80.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.dimensional_ledger.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.dimensional_ledger.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "legend_of_the_kmld": {
            "display_name": "Légende du KMLD",
            "node_text": "+100% POPULARITÉ",
            "detailed_text": "Le nom franchit toutes les dimensions.",
            "category": "special",
            "parent": "dimensional_ledger",
            "secondary_parents": [],
            "angle": 270.0,
            "distance": 175.0,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "meta",
            "modifiers": [
                {
                    "variable": "popularity_gain_multiplier",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.dimensional_ledger.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [
                {
                    "path": "upgrade_nodes.dimensional_ledger.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "theme": "special_violet",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "atk1": {
            "display_name": "xxx ATK+1",
            "node_text": "xxx ATK+1",
            "detailed_text": "",
            "category": "general",
            "parent": "xxxtransit",
            "secondary_parents": [],
            "angle": 53.129999999999995,
            "distance": 599.93,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.xxxtransit.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "xxxtransit": {
            "display_name": "xxx transit",
            "node_text": "xxx transit",
            "detailed_text": "",
            "category": "general",
            "parent": "big_egg_core",
            "secondary_parents": [],
            "angle": 130.60000000000002,
            "distance": 1106.35,
            "costs": [],
            "scope": "dimension",
            "modifiers": [],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.big_egg_core.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "core_cyan",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "pv1": {
            "display_name": "xxx PV+15",
            "node_text": "PV+15",
            "detailed_text": "",
            "category": "general",
            "parent": "atk1",
            "secondary_parents": [],
            "angle": 111.89999999999998,
            "distance": 589.1,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 15.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.atk1.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        },
        "sta1": {
            "display_name": "xxx STA 1",
            "node_text": "STA +10",
            "detailed_text": "",
            "category": "general",
            "parent": "pv1",
            "secondary_parents": [],
            "angle": 25.620000000000005,
            "distance": 456.6,
            "costs": [
                {
                    "resource": "coins",
                    "amount": 1
                }
            ],
            "scope": "dimension",
            "modifiers": [
                {
                    "variable": "stamina",
                    "layer": "flat",
                    "operation": "add",
                    "value": 10.0
                }
            ],
            "visibility_conditions": [
                {
                    "path": "upgrade_nodes.pv1.purchased",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "reveal_conditions": [],
            "unlock_conditions": [],
            "theme": "combat_crimson",
            "image_path": "",
            "show_parent_link": true,
            "on_purchase": []
        }
    },
    "biomes": {
        "crater_meadow": {
            "display_name": "Vallée du Cratère",
            "description": "Un grand parc-vallée autour d'un cratère ancien : herbe trop haute, tables de pique-nique brisées, poubelles éventrées et sentiers qui finissent dans des zones condamnées.",
            "floor_color": "#243b1e",
            "wall_color": "#6d7a4a",
            "accent_color": "#8a9a4f",
            "ambient_color": "#ffffff",
            "ambient_energy": 1.0,
            "visuals": {
                "background": "biome_crater_meadow_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "old_port": {
            "display_name": "Vieux-Port",
            "description": "Quais de bois, grues anciennes, tavernes, marchés et casinos flottants. Chaque commerce ressemble à un pari et chaque pari cache une petite arnaque.",
            "floor_color": "#16303f",
            "wall_color": "#4b6a7b",
            "accent_color": "#2f8ca0",
            "ambient_color": "#dff0ff",
            "ambient_energy": 0.9,
            "visuals": {
                "background": "biome_old_port_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "olympic_park": {
            "display_name": "Parc olympique",
            "description": "Un complexe sportif devenu monument de béton au régime : couloirs immenses, caméras, portiques et installations mécaniques démesurées.",
            "floor_color": "#2a2d31",
            "wall_color": "#6b6f76",
            "accent_color": "#9aa1a8",
            "ambient_color": "#eaf2ff",
            "ambient_energy": 1.1,
            "visuals": {
                "background": "biome_olympic_park_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "mount_royal": {
            "display_name": "Mont Royal",
            "description": "Les forages ont transformé la montagne en massif géothermique : fissures rouges, passerelles métalliques et grottes chauffées.",
            "floor_color": "#3a1a14",
            "wall_color": "#7b4a3a",
            "accent_color": "#e2543a",
            "ambient_color": "#ffd9c2",
            "ambient_energy": 1.2,
            "visuals": {
                "background": "biome_mount_royal_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "downtown": {
            "display_name": "Centre-ville",
            "description": "Écrans géants, affiches électorales, barricades, slogans contradictoires et foules qui se déplacent d'une rue à l'autre.",
            "floor_color": "#232323",
            "wall_color": "#5c5c5c",
            "accent_color": "#e8c33a",
            "ambient_color": "#fff8e0",
            "ambient_energy": 1.0,
            "visuals": {
                "background": "biome_downtown_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "underground_city": {
            "display_name": "Ville souterraine",
            "description": "Stations condamnées, boutiques mortes, food courts humides et tunnels où les racines percent le béton.",
            "floor_color": "#161122",
            "wall_color": "#3f3352",
            "accent_color": "#5aa05a",
            "ambient_color": "#9fb8d8",
            "ambient_energy": 0.6,
            "visuals": {
                "background": "biome_underground_city_background"
            },
            "vfx": {},
            "on_enter": []
        },
        "world_egg_center": {
            "display_name": "World Egg Center",
            "description": "Une tour corporative qui mélange palais politique, ferme verticale, usine alimentaire et chaîne de production. Plus on monte, plus le décor devient propre et inhumain.",
            "floor_color": "#e9ecef",
            "wall_color": "#b7bfc7",
            "accent_color": "#f5b301",
            "ambient_color": "#ffffff",
            "ambient_energy": 1.3,
            "visuals": {
                "background": "biome_world_egg_center_background"
            },
            "vfx": {},
            "on_enter": []
        }
    },
    "dimensions": {
        "dimension_one": {
            "display_name": "Première dimension",
            "description": "Vallée du Cratère, Vieux-Port, puis la première confrontation avec Big Egg au Centre-ville.",
            "order": 1,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_complete": []
        },
        "dimension_two": {
            "display_name": "Deuxième dimension",
            "description": "La même route, plus le Parc olympique et sa surveillance.",
            "order": 2,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_complete": []
        },
        "dimension_three": {
            "display_name": "Troisième dimension",
            "description": "Le Mont Royal s'ouvre: forages, feu et premier vrai saut de difficulté.",
            "order": 3,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_complete": []
        },
        "dimension_four": {
            "display_name": "Quatrième dimension",
            "description": "La route s'ouvre en grand: blocage après Big Egg, ville souterraine, fourchette maîtresse, puis le World Egg Center.",
            "order": 4,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_complete": []
        },
        "fork_trial": {
            "display_name": "Épreuve de la fourchette",
            "description": "Une descente courte et scellée sous la ville. Son gardien détient la fourchette maîtresse.",
            "order": 0,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_complete": [
                {
                    "op": "set",
                    "path": "fact.master_fork_owned",
                    "value": true
                }
            ]
        }
    },
    "rewards": {
        "whetted_edge": {
            "display_name": "Tranchant affûté",
            "description": "+20 % de dégâts d’attaque pour le reste de la plongée.",
            "weight": 3.0,
            "modifiers": [
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.2
                }
            ],
            "on_taken": []
        },
        "second_wind": {
            "display_name": "Second souffle",
            "description": "+25 d’endurance pour le reste de la plongée.",
            "weight": 3.0,
            "modifiers": [
                {
                    "variable": "stamina",
                    "layer": "flat",
                    "operation": "add",
                    "value": 25.0
                }
            ],
            "on_taken": []
        },
        "light_step": {
            "display_name": "Pas léger",
            "description": "+15 % de vitesse pour le reste de la plongée.",
            "weight": 3.0,
            "modifiers": [
                {
                    "variable": "move_speed",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.15
                }
            ],
            "on_taken": []
        },
        "thick_hide": {
            "display_name": "Cuir épais",
            "description": "+30 points de vie maximum pour le reste de la plongée.",
            "weight": 3.0,
            "modifiers": [
                {
                    "variable": "max_health",
                    "layer": "flat",
                    "operation": "add",
                    "value": 30.0
                }
            ],
            "on_taken": []
        },
        "quiet_halls": {
            "display_name": "Couloirs calmes",
            "description": "Les salles contiennent 3 créatures de moins.",
            "weight": 2.0,
            "modifiers": [
                {
                    "variable": "room_population_bonus",
                    "layer": "flat",
                    "operation": "add",
                    "value": -3.0
                }
            ],
            "on_taken": []
        },
        "crowded_halls": {
            "display_name": "Couloirs bondés",
            "description": "Les salles contiennent 4 créatures de plus, et chaque coup frappe 35 % plus fort.",
            "weight": 1.0,
            "modifiers": [
                {
                    "variable": "room_population_bonus",
                    "layer": "flat",
                    "operation": "add",
                    "value": 4.0
                },
                {
                    "variable": "attack_damage",
                    "layer": "scaling",
                    "operation": "add",
                    "value": 0.35
                },
                {
                    "variable": "drop_count_multiplier",
                    "layer": "flat",
                    "operation": "add",
                    "value": 1.0
                }
            ],
            "on_taken": []
        },
        "deep_pockets": {
            "display_name": "Poches profondes",
            "description": "L’assurance couvre 25 % de plus de la plongée.",
            "weight": 2.0,
            "modifiers": [
                {
                    "variable": "insurance_rate",
                    "layer": "flat",
                    "operation": "add",
                    "value": 0.25
                }
            ],
            "on_taken": []
        },
        "sharp_eyes": {
            "display_name": "Œil aiguisé",
            "description": "+120 de vision, utile de retour au restaurant.",
            "weight": 1.0,
            "modifiers": [
                {
                    "variable": "player_vision",
                    "layer": "flat",
                    "operation": "add",
                    "value": 120.0
                }
            ],
            "on_taken": []
        }
    },
    "room_elements": {
        "picnic_table": {
            "display_name": "Table de pique-nique",
            "description": "Une table municipale qui n'a pas survécu à la dernière charge de dindon.",
            "kind": "destructible",
            "shape": "square",
            "color": "#8a6a3d",
            "size": 1.2,
            "health": 14.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "garbage_pile": {
            "display_name": "Tas de déchets",
            "description": "Un tas que le raton-poubelle considère comme son garde-manger.",
            "kind": "destructible",
            "shape": "circle",
            "color": "#6f6a5f",
            "size": 1.0,
            "health": 10.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": false,
            "drops": [
                {
                    "ingredient_id": "pristine_garbage",
                    "chance": 25.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "crater_vending": {
            "display_name": "Distributrice éventrée",
            "description": "Elle rend encore la monnaie, à qui insiste.",
            "kind": "chest",
            "shape": "square",
            "color": "#b4623c",
            "size": 1.1,
            "health": 0.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 15,
            "solid": true,
            "drops": [
                {
                    "ingredient_id": "squirrel_meat",
                    "chance": 100.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "rope_coil": {
            "display_name": "Rouleau de cordage",
            "description": "Cordage de quai empilé plus haut qu'un homme.",
            "kind": "destructible",
            "shape": "circle",
            "color": "#b9a48a",
            "size": 0.9,
            "health": 12.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": false,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "dice_barrel": {
            "display_name": "Baril à dés",
            "description": "Le casino-barge y range ce qu'il ne déclare pas.",
            "kind": "destructible",
            "shape": "square",
            "color": "#c94f2f",
            "size": 1.0,
            "health": 16.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 20,
            "solid": true,
            "drops": [
                {
                    "ingredient_id": "crab_meat",
                    "chance": 40.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "security_turnstile": {
            "display_name": "Portique de sécurité",
            "description": "Il ne s'ouvre pour personne, surtout pas pour vous.",
            "kind": "decor",
            "shape": "square",
            "color": "#9aa1a8",
            "size": 1.3,
            "health": 0.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "alarm_camera": {
            "display_name": "Caméra d'alarme",
            "description": "Elle marque ce qu'elle voit, et le secteur entier s'en souvient.",
            "kind": "trap",
            "shape": "hexagon",
            "color": "#6b6f76",
            "size": 0.7,
            "health": 0.0,
            "damage": 12.0,
            "trigger_radius": 180.0,
            "rearm_delay": 4.0,
            "coins": 0,
            "solid": false,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "steam_vent": {
            "display_name": "Évent de vapeur",
            "description": "Les forages ont ouvert des bouches que personne ne referme.",
            "kind": "trap",
            "shape": "circle",
            "color": "#e2543a",
            "size": 0.9,
            "health": 0.0,
            "damage": 20.0,
            "trigger_radius": 120.0,
            "rearm_delay": 3.0,
            "coins": 0,
            "solid": false,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "fuel_barrel": {
            "display_name": "Baril de carburant",
            "description": "Pete l'a laissé là. Pete laisse toujours ça là.",
            "kind": "destructible",
            "shape": "square",
            "color": "#f07b28",
            "size": 1.0,
            "health": 8.0,
            "damage": 30.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [
                {
                    "ingredient_id": "charred_meat",
                    "chance": 50.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "campaign_barricade": {
            "display_name": "Barricade de campagne",
            "description": "Montée en une nuit, avec du mobilier urbain et beaucoup de slogans.",
            "kind": "destructible",
            "shape": "square",
            "color": "#e8c33a",
            "size": 1.4,
            "health": 40.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "ballot_box": {
            "display_name": "Urne électorale",
            "description": "Scellée, pleine, et parfaitement inutile.",
            "kind": "chest",
            "shape": "square",
            "color": "#e8dcc0",
            "size": 1.0,
            "health": 0.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 45,
            "solid": true,
            "drops": [
                {
                    "ingredient_id": "stolen_ballot_spice",
                    "chance": 100.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "mall_bench": {
            "display_name": "Banc de galerie",
            "description": "Il est peut-être un banc. Il est peut-être autre chose.",
            "kind": "destructible",
            "shape": "square",
            "color": "#6a4a6a",
            "size": 1.1,
            "health": 20.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "forgotten_tray": {
            "display_name": "Plateau oublié",
            "description": "Le repas est encore dessus, et la fermeture date d'années.",
            "kind": "destructible",
            "shape": "oval",
            "color": "#b8a06a",
            "size": 0.7,
            "health": 6.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": false,
            "drops": [
                {
                    "ingredient_id": "lost_lunch",
                    "chance": 20.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "conveyor_crate": {
            "display_name": "Caisse de convoyeur",
            "description": "Elle avance toute seule vers un endroit qui n'existe plus.",
            "kind": "destructible",
            "shape": "square",
            "color": "#b7bfc7",
            "size": 1.1,
            "health": 25.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [
                {
                    "ingredient_id": "crop_protein",
                    "chance": 60.0
                }
            ],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "kmld_courier": {
            "display_name": "Courrier du KMLD",
            "description": "Il ne dit jamais où il va, seulement d'où il revient.",
            "kind": "npc",
            "shape": "triangle",
            "color": "#4cc9f0",
            "size": 1.0,
            "health": 0.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": false,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        },
        "black_market_stall": {
            "display_name": "Étal du marché noir",
            "description": "Tout y est négociable, y compris le prix affiché.",
            "kind": "shop",
            "shape": "square",
            "color": "#7f8c5a",
            "size": 1.4,
            "health": 0.0,
            "damage": 0.0,
            "trigger_radius": 0.0,
            "rearm_delay": 0.0,
            "coins": 0,
            "solid": true,
            "drops": [],
            "visuals": {},
            "vfx": {},
            "on_destroyed": [],
            "on_triggered": []
        }
    },
    "rooms": {
        "d1_l01_crater_edge": {
            "display_name": "Lisière du cratère",
            "description": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère.",
            "dimension": "dimension_one",
            "level": 1,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "crazy_squirrel": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {},
                    "delay": 0.0,
                    "remaining": 0.0,
                    "trigger": "all",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {},
                    "delay": 0.0,
                    "remaining": 0.0,
                    "trigger": "all",
                    "chance": 0.5
                },
                {
                    "count": 1,
                    "enemies": {},
                    "delay": 0.0,
                    "remaining": 0.0,
                    "trigger": "all",
                    "chance": 0.5
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "dice_barrel": {
                    "chance": 1.0,
                    "min": 1,
                    "max": 1
                },
                "crater_vending": {
                    "chance": 1.0,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l02_picnic_area": {
            "display_name": "Aire de pique-nique condamnée",
            "description": "Des tables municipales transformées en forteresses par un dindon.",
            "dimension": "dimension_one",
            "level": 2,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l03_wild_dump": {
            "display_name": "Dépotoir sauvage",
            "description": "Le dépôt que la ville prétend avoir nettoyé deux fois.",
            "dimension": "dimension_one",
            "level": 3,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l04_abandoned_greenhouse": {
            "display_name": "Serre abandonnée",
            "description": "La vieille serre du Cratère, protégée par une réputation exagérée.",
            "dimension": "dimension_one",
            "level": 4,
            "biome": "crater_meadow",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "eltuna": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l05_lower_docks": {
            "display_name": "Quais bas",
            "description": "Cordages, caisses et trous dans le plancher du quai.",
            "dimension": "dimension_one",
            "level": 5,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l06_sunken_drydock": {
            "display_name": "Cale sèche engloutie",
            "description": "La marée monte lentement sur des carcasses couvertes de coquillages.",
            "dimension": "dimension_one",
            "level": 6,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l07_games_alley": {
            "display_name": "Allée des jeux flottants",
            "description": "Les résultats s'affichent au décor avant que les dés n'explosent.",
            "dimension": "dimension_one",
            "level": 7,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l08_pier_cabaret": {
            "display_name": "Cabaret de la jetée",
            "description": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique.",
            "dimension": "dimension_one",
            "level": 8,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l09_warehouse_roofs": {
            "display_name": "Toits des entrepôts",
            "description": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre.",
            "dimension": "dimension_one",
            "level": 9,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l10_casino_barge": {
            "display_name": "Casino-barge de Gab",
            "description": "Le pari est truqué, la sortie aussi.",
            "dimension": "dimension_one",
            "level": 10,
            "biome": "old_port",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gab_le_crab": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l11_checkpoint_boulevard": {
            "display_name": "Boulevard des checkpoints",
            "description": "Des unités qui avancent en petits groupes et se protègent entre elles.",
            "dimension": "dimension_one",
            "level": 11,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l12_plaza_roofs": {
            "display_name": "Toits de Propaganda Plaza",
            "description": "La menace tourne au-dessus des rues déjà encombrées.",
            "dimension": "dimension_one",
            "level": 12,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.6,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l13_barricade_street": {
            "display_name": "Rue des barricades",
            "description": "L'arène se reconfigure pendant le combat.",
            "dimension": "dimension_one",
            "level": 13,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 3,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d1_l14_propaganda_plaza": {
            "display_name": "Propaganda Plaza",
            "description": "Première confrontation: il vous reconnaît, et cela l'amuse.",
            "dimension": "dimension_one",
            "level": 14,
            "biome": "downtown",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "big_egg_one": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": true,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l01_crater_edge": {
            "display_name": "Lisière du cratère",
            "description": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère.",
            "dimension": "dimension_two",
            "level": 1,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "crazy_squirrel": 4.0,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l02_picnic_area": {
            "display_name": "Aire de pique-nique condamnée",
            "description": "Des tables municipales transformées en forteresses par un dindon.",
            "dimension": "dimension_two",
            "level": 2,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l03_wild_dump": {
            "display_name": "Dépotoir sauvage",
            "description": "Le dépôt que la ville prétend avoir nettoyé deux fois.",
            "dimension": "dimension_two",
            "level": 3,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l04_abandoned_greenhouse": {
            "display_name": "Serre abandonnée",
            "description": "La vieille serre du Cratère, protégée par une réputation exagérée.",
            "dimension": "dimension_two",
            "level": 4,
            "biome": "crater_meadow",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "eltuna": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l05_lower_docks": {
            "display_name": "Quais bas",
            "description": "Cordages, caisses et trous dans le plancher du quai.",
            "dimension": "dimension_two",
            "level": 5,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l06_sunken_drydock": {
            "display_name": "Cale sèche engloutie",
            "description": "La marée monte lentement sur des carcasses couvertes de coquillages.",
            "dimension": "dimension_two",
            "level": 6,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l07_games_alley": {
            "display_name": "Allée des jeux flottants",
            "description": "Les résultats s'affichent au décor avant que les dés n'explosent.",
            "dimension": "dimension_two",
            "level": 7,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l08_pier_cabaret": {
            "display_name": "Cabaret de la jetée",
            "description": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique.",
            "dimension": "dimension_two",
            "level": 8,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l09_warehouse_roofs": {
            "display_name": "Toits des entrepôts",
            "description": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre.",
            "dimension": "dimension_two",
            "level": 9,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l10_casino_barge": {
            "display_name": "Casino-barge de Gab",
            "description": "Le pari est truqué, la sortie aussi.",
            "dimension": "dimension_two",
            "level": 10,
            "biome": "old_port",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gab_le_crab": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l11_entrance_gates": {
            "display_name": "Portiques d'entrée",
            "description": "L'espace lui-même devient hostile: on passe quand la machine le permet.",
            "dimension": "dimension_two",
            "level": 11,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "turnstile_drone": 4.0,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l12_surveillance_concourse": {
            "display_name": "Concourse de surveillance",
            "description": "Des caméras murales et des lignes de vue qui marquent les intrus.",
            "dimension": "dimension_two",
            "level": 12,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l13_brutalist_ramps": {
            "display_name": "Rampes brutalistes",
            "description": "Des couloirs massifs où l'architecture vaut mieux que la force.",
            "dimension": "dimension_two",
            "level": 13,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l14_egglympic_track": {
            "display_name": "Piste des Egglympics",
            "description": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes.",
            "dimension": "dimension_two",
            "level": 14,
            "biome": "olympic_park",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "jeremie": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l15_checkpoint_boulevard": {
            "display_name": "Boulevard des checkpoints",
            "description": "Des unités qui avancent en petits groupes et se protègent entre elles.",
            "dimension": "dimension_two",
            "level": 15,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l16_plaza_roofs": {
            "display_name": "Toits de Propaganda Plaza",
            "description": "La menace tourne au-dessus des rues déjà encombrées.",
            "dimension": "dimension_two",
            "level": 16,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.6,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l17_barricade_street": {
            "display_name": "Rue des barricades",
            "description": "L'arène se reconfigure pendant le combat.",
            "dimension": "dimension_two",
            "level": 17,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 4,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 6.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d2_l18_propaganda_plaza": {
            "display_name": "Propaganda Plaza",
            "description": "Deuxième confrontation: la machine a grandi entre-temps.",
            "dimension": "dimension_two",
            "level": 18,
            "biome": "downtown",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "big_egg_two": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": true,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l01_crater_edge": {
            "display_name": "Lisière du cratère",
            "description": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère.",
            "dimension": "dimension_three",
            "level": 1,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "crazy_squirrel": 4.0,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l02_picnic_area": {
            "display_name": "Aire de pique-nique condamnée",
            "description": "Des tables municipales transformées en forteresses par un dindon.",
            "dimension": "dimension_three",
            "level": 2,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l03_wild_dump": {
            "display_name": "Dépotoir sauvage",
            "description": "Le dépôt que la ville prétend avoir nettoyé deux fois.",
            "dimension": "dimension_three",
            "level": 3,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l04_abandoned_greenhouse": {
            "display_name": "Serre abandonnée",
            "description": "La vieille serre du Cratère, protégée par une réputation exagérée.",
            "dimension": "dimension_three",
            "level": 4,
            "biome": "crater_meadow",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "eltuna": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l05_lower_docks": {
            "display_name": "Quais bas",
            "description": "Cordages, caisses et trous dans le plancher du quai.",
            "dimension": "dimension_three",
            "level": 5,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l06_sunken_drydock": {
            "display_name": "Cale sèche engloutie",
            "description": "La marée monte lentement sur des carcasses couvertes de coquillages.",
            "dimension": "dimension_three",
            "level": 6,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l07_games_alley": {
            "display_name": "Allée des jeux flottants",
            "description": "Les résultats s'affichent au décor avant que les dés n'explosent.",
            "dimension": "dimension_three",
            "level": 7,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l08_pier_cabaret": {
            "display_name": "Cabaret de la jetée",
            "description": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique.",
            "dimension": "dimension_three",
            "level": 8,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l09_warehouse_roofs": {
            "display_name": "Toits des entrepôts",
            "description": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre.",
            "dimension": "dimension_three",
            "level": 9,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l10_casino_barge": {
            "display_name": "Casino-barge de Gab",
            "description": "Le pari est truqué, la sortie aussi.",
            "dimension": "dimension_three",
            "level": 10,
            "biome": "old_port",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gab_le_crab": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l11_entrance_gates": {
            "display_name": "Portiques d'entrée",
            "description": "L'espace lui-même devient hostile: on passe quand la machine le permet.",
            "dimension": "dimension_three",
            "level": 11,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "turnstile_drone": 4.0,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l12_surveillance_concourse": {
            "display_name": "Concourse de surveillance",
            "description": "Des caméras murales et des lignes de vue qui marquent les intrus.",
            "dimension": "dimension_three",
            "level": 12,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l13_brutalist_ramps": {
            "display_name": "Rampes brutalistes",
            "description": "Des couloirs massifs où l'architecture vaut mieux que la force.",
            "dimension": "dimension_three",
            "level": 13,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l14_egglympic_track": {
            "display_name": "Piste des Egglympics",
            "description": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes.",
            "dimension": "dimension_three",
            "level": 14,
            "biome": "olympic_park",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "jeremie": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l15_chimney_trail": {
            "display_name": "Sentier des cheminées",
            "description": "La chaleur monte des évents selon un rythme qu'on peut lire.",
            "dimension": "dimension_three",
            "level": 15,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "cinder_crow": 4.0,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l16_smoking_burrows": {
            "display_name": "Terriers fumants",
            "description": "Le sol fissuré annonce ce qui va en sortir.",
            "dimension": "dimension_three",
            "level": 16,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l17_mining_walkways": {
            "display_name": "Passerelles minières",
            "description": "Décor destructible: une charge peut ouvrir un passage.",
            "dimension": "dimension_three",
            "level": 17,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l18_summit_sanctuary": {
            "display_name": "Sanctuaire du sommet",
            "description": "Le gardien croit défendre la montagne contre vous.",
            "dimension": "dimension_three",
            "level": 18,
            "biome": "mount_royal",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gars_rond": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l19_checkpoint_boulevard": {
            "display_name": "Boulevard des checkpoints",
            "description": "Des unités qui avancent en petits groupes et se protègent entre elles.",
            "dimension": "dimension_three",
            "level": 19,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l20_plaza_roofs": {
            "display_name": "Toits de Propaganda Plaza",
            "description": "La menace tourne au-dessus des rues déjà encombrées.",
            "dimension": "dimension_three",
            "level": 20,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.6,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l21_barricade_street": {
            "display_name": "Rue des barricades",
            "description": "L'arène se reconfigure pendant le combat.",
            "dimension": "dimension_three",
            "level": 21,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 5,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 0,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d3_l22_propaganda_plaza": {
            "display_name": "Propaganda Plaza",
            "description": "Troisième confrontation: la ville entière travaille pour lui.",
            "dimension": "dimension_three",
            "level": 22,
            "biome": "downtown",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "big_egg_three": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": true,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l01_crater_edge": {
            "display_name": "Lisière du cratère",
            "description": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère.",
            "dimension": "dimension_four",
            "level": 1,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "crazy_squirrel": 4.0,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l02_picnic_area": {
            "display_name": "Aire de pique-nique condamnée",
            "description": "Des tables municipales transformées en forteresses par un dindon.",
            "dimension": "dimension_four",
            "level": 2,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 4.0,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l03_wild_dump": {
            "display_name": "Dépotoir sauvage",
            "description": "Le dépôt que la ville prétend avoir nettoyé deux fois.",
            "dimension": "dimension_four",
            "level": 3,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 4.0,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l04_drainage_ditch": {
            "display_name": "Fossé de drainage",
            "description": "Un couloir de conduites à ciel ouvert où rester immobile est une mauvaise idée.",
            "dimension": "dimension_four",
            "level": 4,
            "biome": "crater_meadow",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 4.0,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "crazy_squirrel": 1.2,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l05_abandoned_greenhouse": {
            "display_name": "Serre abandonnée",
            "description": "La vieille serre du Cratère, protégée par une réputation exagérée.",
            "dimension": "dimension_four",
            "level": 5,
            "biome": "crater_meadow",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "eltuna": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l06_lower_docks": {
            "display_name": "Quais bas",
            "description": "Cordages, caisses et trous dans le plancher du quai.",
            "dimension": "dimension_four",
            "level": 6,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l07_sunken_drydock": {
            "display_name": "Cale sèche engloutie",
            "description": "La marée monte lentement sur des carcasses couvertes de coquillages.",
            "dimension": "dimension_four",
            "level": 7,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l08_games_alley": {
            "display_name": "Allée des jeux flottants",
            "description": "Les résultats s'affichent au décor avant que les dés n'explosent.",
            "dimension": "dimension_four",
            "level": 8,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 4.0,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l09_pier_cabaret": {
            "display_name": "Cabaret de la jetée",
            "description": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique.",
            "dimension": "dimension_four",
            "level": 9,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 4.0,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l10_warehouse_roofs": {
            "display_name": "Toits des entrepôts",
            "description": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre.",
            "dimension": "dimension_four",
            "level": 10,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l11_lower_docks": {
            "display_name": "Quais bas",
            "description": "Cordages, caisses et trous dans le plancher du quai.",
            "dimension": "dimension_four",
            "level": 11,
            "biome": "old_port",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "dock_rat": 4.0,
                        "barnacle_brute": 1.2,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "dock_rat": 1.2,
                        "barnacle_brute": 4.0,
                        "loaded_dice_crab": 1.2,
                        "siren_dancer": 1.2,
                        "powder_gull": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "rope_coil": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "dice_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l12_casino_barge": {
            "display_name": "Casino-barge de Gab",
            "description": "Le pari est truqué, la sortie aussi.",
            "dimension": "dimension_four",
            "level": 12,
            "biome": "old_port",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gab_le_crab": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l13_entrance_gates": {
            "display_name": "Portiques d'entrée",
            "description": "L'espace lui-même devient hostile: on passe quand la machine le permet.",
            "dimension": "dimension_four",
            "level": 13,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "turnstile_drone": 4.0,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l14_surveillance_concourse": {
            "display_name": "Concourse de surveillance",
            "description": "Des caméras murales et des lignes de vue qui marquent les intrus.",
            "dimension": "dimension_four",
            "level": 14,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 4.0,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l15_brutalist_ramps": {
            "display_name": "Rampes brutalistes",
            "description": "Des couloirs massifs où l'architecture vaut mieux que la force.",
            "dimension": "dimension_four",
            "level": 15,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 1.8,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 4.0,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l16_service_ducts": {
            "display_name": "Conduits de service",
            "description": "Petits espaces, vagues rapides, liquide de refroidissement partout.",
            "dimension": "dimension_four",
            "level": 16,
            "biome": "olympic_park",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 4.0,
                        "coach_chrome": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "turnstile_drone": 1.2,
                        "camera_hound": 1.2,
                        "concrete_golem": 1.2,
                        "maintenance_roach": 1.2,
                        "coach_chrome": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "security_turnstile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "alarm_camera": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l17_egglympic_track": {
            "display_name": "Piste des Egglympics",
            "description": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes.",
            "dimension": "dimension_four",
            "level": 17,
            "biome": "olympic_park",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "jeremie": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l18_chimney_trail": {
            "display_name": "Sentier des cheminées",
            "description": "La chaleur monte des évents selon un rythme qu'on peut lire.",
            "dimension": "dimension_four",
            "level": 18,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "cinder_crow": 4.0,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l19_smoking_burrows": {
            "display_name": "Terriers fumants",
            "description": "Le sol fissuré annonce ce qui va en sortir.",
            "dimension": "dimension_four",
            "level": 19,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 4.0,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l20_mining_walkways": {
            "display_name": "Passerelles minières",
            "description": "Décor destructible: une charge peut ouvrir un passage.",
            "dimension": "dimension_four",
            "level": 20,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 4.0,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l21_rock_amphitheatre": {
            "display_name": "Amphithéâtre de roche",
            "description": "Une arène circulaire où le son précède l'animation.",
            "dimension": "dimension_four",
            "level": 21,
            "biome": "mount_royal",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 4.0,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "cinder_crow": 1.2,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l22_summit_sanctuary": {
            "display_name": "Sanctuaire du sommet",
            "description": "Le gardien croit défendre la montagne contre vous.",
            "dimension": "dimension_four",
            "level": 22,
            "biome": "mount_royal",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "gars_rond": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l23_checkpoint_boulevard": {
            "display_name": "Boulevard des checkpoints",
            "description": "Des unités qui avancent en petits groupes et se protègent entre elles.",
            "dimension": "dimension_four",
            "level": 23,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l24_plaza_roofs": {
            "display_name": "Toits de Propaganda Plaza",
            "description": "La menace tourne au-dessus des rues déjà encombrées.",
            "dimension": "dimension_four",
            "level": 24,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.6,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l25_barricade_street": {
            "display_name": "Rue des barricades",
            "description": "L'arène se reconfigure pendant le combat.",
            "dimension": "dimension_four",
            "level": 25,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l26_campaign_hq": {
            "display_name": "QG électoral improvisé",
            "description": "Seuls ils sont médiocres; en groupe ils encerclent.",
            "dimension": "dimension_four",
            "level": 26,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l27_propaganda_plaza": {
            "display_name": "Propaganda Plaza",
            "description": "Quatrième confrontation: après elle, la route s'arrête net.",
            "dimension": "dimension_four",
            "level": 27,
            "biome": "downtown",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "big_egg_four": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l28_blockage": {
            "display_name": "Blocage",
            "description": "Big Egg tombe, la route s'arrête net. Le seul passage encore ouvert descend sous la ville.",
            "dimension": "dimension_four",
            "level": 28,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 0,
                    "enemies": {},
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "story"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l29_black_tunnel": {
            "display_name": "Tunnel de service noir",
            "description": "Un bruit de griffes, puis plus rien, puis le bruit de nouveau.",
            "dimension": "dimension_four",
            "level": 29,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 4.0,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l30_mall_gallery": {
            "display_name": "Galerie commerciale envahie",
            "description": "Les racines ont repris les vitrines, et quelque chose regarde encore.",
            "dimension": "dimension_four",
            "level": 30,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l31_ghost_station": {
            "display_name": "Station fantôme",
            "description": "Certains bancs sont trop symétriques pour être des bancs.",
            "dimension": "dimension_four",
            "level": 31,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l32_party_arcade": {
            "display_name": "Arcade de fête abandonnée",
            "description": "Des ballons fanés et une tête qui s'incline lentement.",
            "dimension": "dimension_four",
            "level": 32,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l33_flooded_food_court": {
            "display_name": "Food court noyé",
            "description": "Des annonces jouent encore, sans source claire.",
            "dimension": "dimension_four",
            "level": 33,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 4.0,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 4.0,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 4.0,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l34_forgotten_birthday_room": {
            "display_name": "Salle d'anniversaire oubliée",
            "description": "Personne ne sait ce qu'il était avant. Lui non plus.",
            "dimension": "dimension_four",
            "level": 34,
            "biome": "underground_city",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "abominable_party_man": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l35_master_fork": {
            "display_name": "La fourchette maîtresse",
            "description": "Au fond de la ville souterraine: la fourchette maîtresse, et de quoi remonter jusqu'à la tour.",
            "dimension": "dimension_four",
            "level": 35,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 0,
                    "enemies": {},
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "story"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [
                {
                    "op": "set",
                    "path": "fact.master_fork_owned",
                    "value": true
                }
            ],
            "on_blocked": []
        },
        "d4_l36_checkpoint_boulevard": {
            "display_name": "Boulevard des checkpoints",
            "description": "Des unités qui avancent en petits groupes et se protègent entre elles.",
            "dimension": "dimension_four",
            "level": 36,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l37_plaza_roofs": {
            "display_name": "Toits de Propaganda Plaza",
            "description": "La menace tourne au-dessus des rues déjà encombrées.",
            "dimension": "dimension_four",
            "level": 37,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 1.6,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 4.0,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l38_barricade_street": {
            "display_name": "Rue des barricades",
            "description": "L'arène se reconfigure pendant le combat.",
            "dimension": "dimension_four",
            "level": 38,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 4.0,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l39_campaign_hq": {
            "display_name": "QG électoral improvisé",
            "description": "Seuls ils sont médiocres; en groupe ils encerclent.",
            "dimension": "dimension_four",
            "level": 39,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 4.0,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l40_news_studio": {
            "display_name": "Studio de nouvelles",
            "description": "Les indicateurs mentent, les contrôles restent honnêtes.",
            "dimension": "dimension_four",
            "level": 40,
            "biome": "downtown",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "eggforcer": 1.2,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l41_vertical_farm": {
            "display_name": "Ferme verticale",
            "description": "La cruauté industrielle, affichée en rendement plutôt qu'en sang.",
            "dimension": "dimension_four",
            "level": 41,
            "biome": "world_egg_center",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "vertical",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "battery_hen": 4.0,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 4.0,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 4.0,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 4.0,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "conveyor_crate": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l42_slaughter_line": {
            "display_name": "Chaîne d'abattage",
            "description": "Le niveau lui-même accélère ce qui vous charge dessus.",
            "dimension": "dimension_four",
            "level": 42,
            "biome": "world_egg_center",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 4.0,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 4.0,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 4.0,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 4.0,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "conveyor_crate": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l43_cattle_hall": {
            "display_name": "Salle de rendement bovin",
            "description": "Les écrans affichent tout de l'animal, sauf son nom.",
            "dimension": "dimension_four",
            "level": 43,
            "biome": "world_egg_center",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 4.0,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 4.0,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 4.0,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 4.0,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "conveyor_crate": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l44_production_greenhouses": {
            "display_name": "Serres de production",
            "description": "Entre les rangées, certaines plantes redirigent les projectiles.",
            "dimension": "dimension_four",
            "level": 44,
            "biome": "world_egg_center",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 4.0,
                        "quality_control_bot": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "conveyor_crate": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l45_compliance_lab": {
            "display_name": "Laboratoire de conformité",
            "description": "APPROVED, REWORK ou REJECT: le test porte sur votre build.",
            "dimension": "dimension_four",
            "level": 45,
            "biome": "world_egg_center",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "battery_hen": 1.2,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 4.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 4.0,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 4.0,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "battery_hen": 4.0,
                        "conveyor_hog": 1.2,
                        "factory_cow": 1.2,
                        "harvester_drone": 1.2,
                        "quality_control_bot": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "conveyor_crate": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                }
            },
            "behaviours": [],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "d4_l46_executive_floors": {
            "display_name": "Étages exécutifs",
            "description": "Tout converge ici: le port, la surveillance, l'énergie, la répression.",
            "dimension": "dimension_four",
            "level": 46,
            "biome": "world_egg_center",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "big_big_egg": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [
                {
                    "path": "fact.master_fork_owned",
                    "operator": "truthy",
                    "value": true
                }
            ],
            "ends_dimension": true,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": [
                {
                    "op": "set",
                    "path": "meta.gate_pending",
                    "value": "fork_trial"
                }
            ]
        },
        "ft_l01_black_tunnel": {
            "display_name": "Tunnel de service noir",
            "description": "Un bruit de griffes, puis plus rien, puis le bruit de nouveau.",
            "dimension": "fork_trial",
            "level": 1,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 4.0,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "ft_l02_mall_gallery": {
            "display_name": "Galerie commerciale envahie",
            "description": "Les racines ont repris les vitrines, et quelque chose regarde encore.",
            "dimension": "fork_trial",
            "level": 2,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 4.0,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "ft_l03_ghost_station": {
            "display_name": "Station fantôme",
            "description": "Certains bancs sont trop symétriques pour être des bancs.",
            "dimension": "fork_trial",
            "level": 3,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 4.0,
                        "mascot_husk": 1.2,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "ft_l04_party_arcade": {
            "display_name": "Arcade de fête abandonnée",
            "description": "Des ballons fanés et une tête qui s'incline lentement.",
            "dimension": "fork_trial",
            "level": 4,
            "biome": "underground_city",
            "reward_choices": 0,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 6,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 4.0,
                        "lost_shopper": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                },
                {
                    "count": 1,
                    "enemies": {
                        "tunnel_rat": 1.2,
                        "rootbound_mannequin": 1.2,
                        "platform_mimic": 1.2,
                        "mascot_husk": 1.2,
                        "lost_shopper": 4.0
                    },
                    "delay": 4.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "mall_bench": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "forgotten_tray": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "ambush"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "ft_l05_forgotten_birthday_room": {
            "display_name": "Salle d'anniversaire oubliée",
            "description": "Personne ne sait ce qu'il était avant. Lui non plus.",
            "dimension": "fork_trial",
            "level": 5,
            "biome": "underground_city",
            "reward_choices": 3,
            "max_per_run": 0,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 1,
                    "enemies": {
                        "abominable_party_man": 1.0
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {},
            "behaviours": [
                "elite"
            ],
            "replaces": [],
            "conditions": [],
            "ends_dimension": true,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "bob_service_road": {
            "display_name": "Ancienne route de service",
            "description": "Bob est déjà là. Bob a toujours été là.",
            "dimension": "",
            "level": 0,
            "biome": "crater_meadow",
            "reward_choices": 2,
            "max_per_run": 1,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "horizontal",
            "scroll_extent": 2.0,
            "waves": [
                {
                    "count": 2,
                    "enemies": {
                        "bob_the_horse": 3.0,
                        "crazy_squirrel": 4.0,
                        "attack_turkey": 1.2,
                        "trash_panda": 1.2,
                        "skunk": 1.2,
                        "cardboard_carl": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "picnic_table": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "garbage_pile": {
                    "chance": 0.5,
                    "min": 1,
                    "max": 2
                },
                "crater_vending": {
                    "chance": 0.2,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [
                "elite"
            ],
            "replaces": [
                {
                    "dimension": "dimension_one",
                    "level": 2,
                    "chance": 0.2
                },
                {
                    "dimension": "dimension_two",
                    "level": 2,
                    "chance": 0.2
                },
                {
                    "dimension": "dimension_three",
                    "level": 2,
                    "chance": 0.2
                },
                {
                    "dimension": "dimension_four",
                    "level": 2,
                    "chance": 0.25
                }
            ],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "musicalo_sanctuary": {
            "display_name": "Sanctuaire sonore",
            "description": "Il affirme que la musique traverse les dimensions. Personne ne le croit encore.",
            "dimension": "",
            "level": 0,
            "biome": "mount_royal",
            "reward_choices": 2,
            "max_per_run": 1,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 2,
                    "enemies": {
                        "shaman_musicalo": 3.0,
                        "cinder_crow": 4.0,
                        "magma_marmot": 1.2,
                        "ironhide_goat": 1.2,
                        "headbanger_ram": 1.2,
                        "pyro_pete": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "steam_vent": {
                    "chance": 0.6,
                    "min": 1,
                    "max": 3
                },
                "fuel_barrel": {
                    "chance": 0.4,
                    "min": 1,
                    "max": 2
                }
            },
            "behaviours": [
                "elite",
                "story"
            ],
            "replaces": [
                {
                    "dimension": "dimension_three",
                    "level": 17,
                    "chance": 0.25
                },
                {
                    "dimension": "dimension_four",
                    "level": 20,
                    "chance": 0.3
                }
            ],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        },
        "mld_republic": {
            "display_name": "Grande République de MLD",
            "description": "Trois rues, un mégaphone, et des décrets qui changent les règles de l'arène.",
            "dimension": "",
            "level": 0,
            "biome": "downtown",
            "reward_choices": 2,
            "max_per_run": 1,
            "exit_offset": 1,
            "exit_level": 0,
            "scroll_axis": "none",
            "scroll_extent": 1.0,
            "waves": [
                {
                    "count": 2,
                    "enemies": {
                        "mld": 3.0,
                        "eggforcer": 4.0,
                        "vote_vulture": 1.2,
                        "barricade_boar": 1.2,
                        "campaign_goon": 1.2,
                        "spin_doctor_steve": 0.8
                    },
                    "delay": 0.0,
                    "remaining": -1.0,
                    "trigger": "any",
                    "chance": 1.0
                }
            ],
            "rewards": {},
            "modifiers": [],
            "elements": {
                "campaign_barricade": {
                    "chance": 0.7,
                    "min": 1,
                    "max": 3
                },
                "ballot_box": {
                    "chance": 0.25,
                    "min": 1,
                    "max": 1
                }
            },
            "behaviours": [
                "elite"
            ],
            "replaces": [
                {
                    "dimension": "dimension_three",
                    "level": 21,
                    "chance": 0.3
                },
                {
                    "dimension": "dimension_four",
                    "level": 25,
                    "chance": 0.3
                }
            ],
            "conditions": [],
            "ends_dimension": false,
            "visuals": {},
            "vfx": {},
            "on_enter": [],
            "on_cleared": [],
            "on_blocked": []
        }
    },
    "languages": [
        "fr",
        "en"
    ],
    "localization": {
        "attack_patterns.acid_swarm.display_name": {
            "fr": "Nuée acide",
            "en": "Acid Swarm",
            "default": "Nuée acide"
        },
        "attack_patterns.bite_cone.display_name": {
            "fr": "Coup de dents",
            "en": "Bite Cone",
            "default": "Coup de dents"
        },
        "attack_patterns.blade_seeds.display_name": {
            "fr": "Graines tranchantes",
            "en": "Blade Seeds",
            "default": "Graines tranchantes"
        },
        "attack_patterns.confetti_storm.display_name": {
            "fr": "Tempête de confettis",
            "en": "Confetti Storm",
            "default": "Tempête de confettis"
        },
        "attack_patterns.dive_bomb.display_name": {
            "fr": "Piqué",
            "en": "Dive Bomb",
            "default": "Piqué"
        },
        "attack_patterns.drone_volley.display_name": {
            "fr": "Volée de drones",
            "en": "Drone Volley",
            "default": "Volée de drones"
        },
        "attack_patterns.egg_launcher_volley.display_name": {
            "default": "Estoc de fourchette (volée)"
        },
        "attack_patterns.electric_peck.display_name": {
            "fr": "Bec électrique",
            "en": "Electric Peck",
            "default": "Bec électrique"
        },
        "attack_patterns.flame_line.display_name": {
            "fr": "Ligne de flammes",
            "en": "Flame Line",
            "default": "Ligne de flammes"
        },
        "attack_patterns.flash_mark.display_name": {
            "fr": "Flash de marquage",
            "en": "Flash Mark",
            "default": "Flash de marquage"
        },
        "attack_patterns.furniture_snap.display_name": {
            "fr": "Claquement de mobilier",
            "en": "Furniture Snap",
            "default": "Claquement de mobilier"
        },
        "attack_patterns.grasping_roots.display_name": {
            "fr": "Racines agrippantes",
            "en": "Grasping Roots",
            "default": "Racines agrippantes"
        },
        "attack_patterns.heavy_slam.display_name": {
            "fr": "Écrasement lourd",
            "en": "Heavy Slam",
            "default": "Écrasement lourd"
        },
        "attack_patterns.hero_fork_thrust.display_name": {
            "fr": "Estoc de fourchette",
            "en": "Fork Thrust",
            "default": "Estoc de fourchette"
        },
        "attack_patterns.hoof_kick.display_name": {
            "fr": "Ruade",
            "en": "Hoof Kick",
            "default": "Ruade"
        },
        "attack_patterns.lunge_bite.display_name": {
            "fr": "Morsure bondissante",
            "en": "Lunge Bite",
            "default": "Morsure bondissante"
        },
        "attack_patterns.paper_volley.display_name": {
            "fr": "Volée de papier",
            "en": "Paper Volley",
            "default": "Volée de papier"
        },
        "attack_patterns.pincer_snap.display_name": {
            "fr": "Coup de pince",
            "en": "Pincer Snap",
            "default": "Coup de pince"
        },
        "attack_patterns.pollen_burst.display_name": {
            "fr": "Explosion de pollen",
            "en": "Pollen Burst",
            "default": "Explosion de pollen"
        },
        "attack_patterns.rally_cry.display_name": {
            "fr": "Cri de ralliement",
            "en": "Rally Cry",
            "default": "Cri de ralliement"
        },
        "attack_patterns.rhythm_pulse.display_name": {
            "fr": "Pulsation rythmique",
            "en": "Rhythm Pulse",
            "default": "Pulsation rythmique"
        },
        "attack_patterns.rolling_bounce.display_name": {
            "fr": "Roulade rebondissante",
            "en": "Rolling Bounce",
            "default": "Roulade rebondissante"
        },
        "attack_patterns.scan_beam.display_name": {
            "fr": "Faisceau de contrôle",
            "en": "Scan Beam",
            "default": "Faisceau de contrôle"
        },
        "attack_patterns.scan_beam_copy.display_name": {
            "default": "Faisceau de croquette"
        },
        "attack_patterns.scent_cloud.display_name": {
            "fr": "Nuage odorant",
            "en": "Scent Cloud",
            "default": "Nuage odorant"
        },
        "attack_patterns.shield_bash.display_name": {
            "fr": "Coup de bouclier",
            "en": "Shield Bash",
            "default": "Coup de bouclier"
        },
        "attack_patterns.shockwave_stomp.display_name": {
            "fr": "Onde de choc",
            "en": "Shockwave Stomp",
            "default": "Onde de choc"
        },
        "attack_patterns.sound_wave.display_name": {
            "fr": "Onde sonore",
            "en": "Sound Wave",
            "default": "Onde sonore"
        },
        "attack_patterns.speed_streak.display_name": {
            "fr": "Traînée fulgurante",
            "en": "Speed Streak",
            "default": "Traînée fulgurante"
        },
        "attack_patterns.spin_swipe.display_name": {
            "fr": "Tour complet",
            "en": "Spin Swipe",
            "default": "Tour complet"
        },
        "attack_patterns.steam_release.display_name": {
            "fr": "Relâche de vapeur",
            "en": "Steam Release",
            "default": "Relâche de vapeur"
        },
        "attack_patterns.straight_charge.display_name": {
            "fr": "Charge droite",
            "en": "Straight Charge",
            "default": "Charge droite"
        },
        "attack_patterns.thrown_debris.display_name": {
            "fr": "Projectile improvisé",
            "en": "Thrown Debris",
            "default": "Projectile improvisé"
        },
        "attack_patterns.wide_swipe.display_name": {
            "fr": "Balayage large",
            "en": "Wide Swipe",
            "default": "Balayage large"
        },
        "biomes.crater_meadow.description": {
            "fr": "Un grand parc-vallée autour d'un cratère ancien : herbe trop haute, tables de pique-nique brisées, poubelles éventrées et sentiers qui finissent dans des zones condamnées.",
            "en": "A wide valley park around an old crater: overgrown grass, broken picnic tables, gutted bins and paths that end in condemned ground.",
            "default": "Un grand parc-vallée autour d'un cratère ancien : herbe trop haute, tables de pique-nique brisées, poubelles éventrées et sentiers qui finissent dans des zones condamnées."
        },
        "biomes.crater_meadow.display_name": {
            "fr": "Vallée du Cratère",
            "en": "Crater Meadow",
            "default": "Vallée du Cratère"
        },
        "biomes.downtown.description": {
            "fr": "Écrans géants, affiches électorales, barricades, slogans contradictoires et foules qui se déplacent d'une rue à l'autre.",
            "en": "Giant screens, campaign posters, barricades, contradictory slogans and crowds moving from street to street.",
            "default": "Écrans géants, affiches électorales, barricades, slogans contradictoires et foules qui se déplacent d'une rue à l'autre."
        },
        "biomes.downtown.display_name": {
            "fr": "Centre-ville",
            "en": "Downtown",
            "default": "Centre-ville"
        },
        "biomes.mount_royal.description": {
            "fr": "Les forages ont transformé la montagne en massif géothermique : fissures rouges, passerelles métalliques et grottes chauffées.",
            "en": "Drilling turned the mountain into a geothermal massif: red fissures, metal walkways and heated caves.",
            "default": "Les forages ont transformé la montagne en massif géothermique : fissures rouges, passerelles métalliques et grottes chauffées."
        },
        "biomes.mount_royal.display_name": {
            "fr": "Mont Royal",
            "en": "Mount Royal",
            "default": "Mont Royal"
        },
        "biomes.old_port.description": {
            "fr": "Quais de bois, grues anciennes, tavernes, marchés et casinos flottants. Chaque commerce ressemble à un pari et chaque pari cache une petite arnaque.",
            "en": "Wooden docks, old cranes, taverns, markets and floating casinos. Every business looks like a bet and every bet hides a small scam.",
            "default": "Quais de bois, grues anciennes, tavernes, marchés et casinos flottants. Chaque commerce ressemble à un pari et chaque pari cache une petite arnaque."
        },
        "biomes.old_port.display_name": {
            "fr": "Vieux-Port",
            "en": "Old Port",
            "default": "Vieux-Port"
        },
        "biomes.olympic_park.description": {
            "fr": "Un complexe sportif devenu monument de béton au régime : couloirs immenses, caméras, portiques et installations mécaniques démesurées.",
            "en": "A sports complex turned concrete monument to the regime: huge corridors, cameras, gates and oversized machinery.",
            "default": "Un complexe sportif devenu monument de béton au régime : couloirs immenses, caméras, portiques et installations mécaniques démesurées."
        },
        "biomes.olympic_park.display_name": {
            "fr": "Parc olympique",
            "en": "Olympic Park",
            "default": "Parc olympique"
        },
        "biomes.underground_city.description": {
            "fr": "Stations condamnées, boutiques mortes, food courts humides et tunnels où les racines percent le béton.",
            "en": "Sealed stations, dead shops, damp food courts and tunnels where roots split the concrete.",
            "default": "Stations condamnées, boutiques mortes, food courts humides et tunnels où les racines percent le béton."
        },
        "biomes.underground_city.display_name": {
            "fr": "Ville souterraine",
            "en": "Underground City",
            "default": "Ville souterraine"
        },
        "biomes.world_egg_center.description": {
            "fr": "Une tour corporative qui mélange palais politique, ferme verticale, usine alimentaire et chaîne de production. Plus on monte, plus le décor devient propre et inhumain.",
            "en": "A corporate tower mixing political palace, vertical farm, food plant and production line. The higher you climb, the cleaner and less human it gets.",
            "default": "Une tour corporative qui mélange palais politique, ferme verticale, usine alimentaire et chaîne de production. Plus on monte, plus le décor devient propre et inhumain."
        },
        "biomes.world_egg_center.display_name": {
            "fr": "World Egg Center",
            "en": "World Egg Center",
            "default": "World Egg Center"
        },
        "customer_profiles.foodie.display_name": {
            "default": "Gros criss",
            "fr": "Critique gastronomique",
            "en": "Food Critic"
        },
        "customer_profiles.generous_guest.display_name": {
            "default": "hipster",
            "fr": "Militant du KMLD",
            "en": "KMLD Militant"
        },
        "customer_profiles.regular.display_name": {
            "default": "paumé",
            "fr": "Habitué du quartier",
            "en": "Neighborhood Regular"
        },
        "dimensions.dimension_four.description": {
            "default": "La route s'ouvre en grand: blocage après Big Egg, ville souterraine, fourchette maîtresse, puis le World Egg Center.",
            "fr": "La route s'ouvre en grand: blocage après Big Egg, ville souterraine, fourchette maîtresse, puis le World Egg Center.",
            "en": "The route breaks open: blockage after Big Egg, underground city, master fork, then the World Egg Center."
        },
        "dimensions.dimension_four.display_name": {
            "default": "Quatrième dimension",
            "fr": "Quatrième dimension",
            "en": "Fourth Dimension"
        },
        "dimensions.dimension_one.description": {
            "default": "Vallée du Cratère, Vieux-Port, puis la première confrontation avec Big Egg au Centre-ville.",
            "fr": "Vallée du Cratère, Vieux-Port, puis la première confrontation avec Big Egg au Centre-ville.",
            "en": "Crater Meadow, Old Port, then the first Big Egg confrontation Downtown."
        },
        "dimensions.dimension_one.display_name": {
            "default": "Première dimension",
            "fr": "Première dimension",
            "en": "First Dimension"
        },
        "dimensions.dimension_three.description": {
            "default": "Le Mont Royal s'ouvre: forages, feu et premier vrai saut de difficulté.",
            "fr": "Le Mont Royal s'ouvre: forages, feu et premier vrai saut de difficulté.",
            "en": "Mount Royal opens up: drilling, fire and the first real difficulty jump."
        },
        "dimensions.dimension_three.display_name": {
            "default": "Troisième dimension",
            "fr": "Troisième dimension",
            "en": "Third Dimension"
        },
        "dimensions.dimension_two.description": {
            "default": "La même route, plus le Parc olympique et sa surveillance.",
            "fr": "La même route, plus le Parc olympique et sa surveillance.",
            "en": "The same route, plus the Olympic Park and its surveillance."
        },
        "dimensions.dimension_two.display_name": {
            "default": "Deuxième dimension",
            "fr": "Deuxième dimension",
            "en": "Second Dimension"
        },
        "dimensions.fork_trial.description": {
            "default": "Une descente courte et scellée sous la ville. Son gardien détient la fourchette maîtresse.",
            "fr": "Une descente courte et scellée sous la ville. Son gardien détient la fourchette maîtresse.",
            "en": "A short sealed descent under the city. Its guardian holds the master fork."
        },
        "dimensions.fork_trial.display_name": {
            "default": "Épreuve de la fourchette",
            "fr": "Épreuve de la fourchette",
            "en": "Fork Trial"
        },
        "effects.burning.description": {
            "default": "Inflige des dégâts de feu périodiques."
        },
        "effects.burning.display_name": {
            "default": "Brûlure"
        },
        "effects.chilled.description": {
            "default": "Ralentit la cible et peut la geler complètement."
        },
        "effects.chilled.display_name": {
            "default": "Givre"
        },
        "effects.electrified.description": {
            "default": "Peut paralyser brièvement la cible."
        },
        "effects.electrified.display_name": {
            "default": "Électrisation"
        },
        "effects.hasted.description": {
            "default": "Accélère temporairement le joueur."
        },
        "effects.hasted.display_name": {
            "default": "Hâte"
        },
        "effects.paralyzed.description": {
            "default": "Bloque le mouvement et les attaques."
        },
        "effects.paralyzed.display_name": {
            "default": "Paralysie"
        },
        "effects.poisoned.description": {
            "default": "Inflige des dégâts persistants; chaque dose prolonge la durée."
        },
        "effects.poisoned.display_name": {
            "default": "Poison"
        },
        "employees.abominable_party_man.description": {
            "fr": "Anime la salle. Les clients rient, puis se demandent pourquoi.",
            "en": "Works the room. Guests laugh, then wonder why.",
            "default": "Anime la salle. Les clients rient, puis se demandent pourquoi."
        },
        "employees.abominable_party_man.display_name": {
            "fr": "Abominable homme des parties",
            "en": "Abominable Party Man",
            "default": "Abominable homme des parties"
        },
        "employees.bob_the_horse.description": {
            "fr": "Ne parle jamais. Tout le monde le comprend parfaitement.",
            "en": "Never speaks. Everyone understands him perfectly.",
            "default": "Ne parle jamais. Tout le monde le comprend parfaitement."
        },
        "employees.bob_the_horse.display_name": {
            "fr": "Bob le cheval",
            "en": "Bob the Horse",
            "default": "Bob le cheval"
        },
        "employees.eltuna.description": {
            "fr": "Spécialiste du miel et du sucre. Débloque les douceurs du Cratère.",
            "en": "Honey and sugar specialist. Opens up the Crater's sweet side.",
            "default": "Spécialiste du miel et du sucre. Débloque les douceurs du Cratère."
        },
        "employees.eltuna.display_name": {
            "fr": "eLTuna",
            "en": "eLTuna",
            "default": "eLTuna"
        },
        "employees.gab_le_crab.description": {
            "fr": "Fournisseur et préparateur de fruits de mer, sans jamais dire d'où ils viennent.",
            "en": "Seafood supplier and prep cook, never saying where it came from.",
            "default": "Fournisseur et préparateur de fruits de mer, sans jamais dire d'où ils viennent."
        },
        "employees.gab_le_crab.display_name": {
            "fr": "Gab le Crabe",
            "en": "Gab the Crab",
            "default": "Gab le Crabe"
        },
        "employees.gars_rond.description": {
            "fr": "Manutention et stocks. Range plus vite qu'une étagère ne se remplit.",
            "en": "Hauling and stock. Puts things away faster than a shelf fills up.",
            "default": "Manutention et stocks. Range plus vite qu'une étagère ne se remplit."
        },
        "employees.gars_rond.display_name": {
            "fr": "Gars-Rond",
            "en": "Round Guy",
            "default": "Gars-Rond"
        },
        "employees.jeremie.description": {
            "fr": "Serveur des Egglympics. Traverse la salle avant qu'on ait fini la commande.",
            "en": "Egglympics runner. Crosses the room before you finish the order.",
            "default": "Serveur des Egglympics. Traverse la salle avant qu'on ait fini la commande."
        },
        "employees.jeremie.display_name": {
            "fr": "Jérémie",
            "en": "Jérémie",
            "default": "Jérémie"
        },
        "employees.mld.description": {
            "fr": "Se prend pour un chef d'État. Tient la salle comme un micro-territoire.",
            "en": "Thinks he is a head of state. Runs the room like a micro-territory.",
            "default": "Se prend pour un chef d'État. Tient la salle comme un micro-territoire."
        },
        "employees.mld.display_name": {
            "fr": "MLD",
            "en": "MLD",
            "default": "MLD"
        },
        "employees.shaman_musicalo.description": {
            "fr": "La musique traverse les dimensions. Il avait raison depuis le début.",
            "en": "Music crosses dimensions. He was right all along.",
            "default": "La musique traverse les dimensions. Il avait raison depuis le début."
        },
        "employees.shaman_musicalo.display_name": {
            "fr": "Shaman Musicalo",
            "en": "Shaman Musicalo",
            "default": "Shaman Musicalo"
        },
        "enemies.abominable_party_man.display_name": {
            "fr": "Abominable homme des parties",
            "en": "Abominable Party Man",
            "default": "Abominable homme des parties"
        },
        "enemies.attack_turkey.display_name": {
            "fr": "Dindon d'assaut",
            "en": "Attack Turkey",
            "default": "Dindon d'assaut"
        },
        "enemies.barnacle_brute.display_name": {
            "fr": "Brute aux bernacles",
            "en": "Barnacle Brute",
            "default": "Brute aux bernacles"
        },
        "enemies.barricade_boar.display_name": {
            "fr": "Sanglier de barricade",
            "en": "Barricade Boar",
            "default": "Sanglier de barricade"
        },
        "enemies.battery_hen.display_name": {
            "fr": "Poule-batterie",
            "en": "Battery Hen",
            "default": "Poule-batterie"
        },
        "enemies.big_big_egg.display_name": {
            "fr": "BIG BIG EGG",
            "en": "BIG BIG EGG",
            "default": "BIG BIG EGG"
        },
        "enemies.big_egg_four.display_name": {
            "fr": "Big Egg — quatrième confrontation",
            "en": "Big Egg — Fourth Confrontation",
            "default": "Big Egg — quatrième confrontation"
        },
        "enemies.big_egg_one.display_name": {
            "fr": "Big Egg — première confrontation",
            "en": "Big Egg — First Confrontation",
            "default": "Big Egg — première confrontation"
        },
        "enemies.big_egg_three.display_name": {
            "fr": "Big Egg — troisième confrontation",
            "en": "Big Egg — Third Confrontation",
            "default": "Big Egg — troisième confrontation"
        },
        "enemies.big_egg_two.display_name": {
            "fr": "Big Egg — deuxième confrontation",
            "en": "Big Egg — Second Confrontation",
            "default": "Big Egg — deuxième confrontation"
        },
        "enemies.bob_the_horse.display_name": {
            "fr": "Bob le cheval",
            "en": "Bob the Horse",
            "default": "Bob le cheval"
        },
        "enemies.camera_hound.display_name": {
            "fr": "Molosse caméra",
            "en": "Camera Hound",
            "default": "Molosse caméra"
        },
        "enemies.campaign_goon.display_name": {
            "fr": "Gros bras de campagne",
            "en": "Campaign Goon",
            "default": "Gros bras de campagne"
        },
        "enemies.cardboard_carl.display_name": {
            "fr": "Carl Carton",
            "en": "Cardboard Carl",
            "default": "Carl Carton"
        },
        "enemies.cinder_crow.display_name": {
            "fr": "Corbeau de braise",
            "en": "Cinder Crow",
            "default": "Corbeau de braise"
        },
        "enemies.coach_chrome.display_name": {
            "fr": "Coach Chrome",
            "en": "Coach Chrome",
            "default": "Coach Chrome"
        },
        "enemies.concrete_golem.display_name": {
            "fr": "Golem de béton",
            "en": "Concrete Golem",
            "default": "Golem de béton"
        },
        "enemies.conveyor_hog.display_name": {
            "fr": "Porc de convoyeur",
            "en": "Conveyor Hog",
            "default": "Porc de convoyeur"
        },
        "enemies.crazy_squirrel.display_name": {
            "fr": "Écureuil cinglé",
            "en": "Crazy Squirrel",
            "default": "Écureuil cinglé"
        },
        "enemies.dock_rat.display_name": {
            "fr": "Rat de quai",
            "en": "Dock Rat",
            "default": "Rat de quai"
        },
        "enemies.eggforcer.display_name": {
            "fr": "Eggforcer",
            "en": "Eggforcer",
            "default": "Eggforcer"
        },
        "enemies.eltuna.display_name": {
            "fr": "eLTuna",
            "en": "eLTuna",
            "default": "eLTuna"
        },
        "enemies.factory_cow.display_name": {
            "fr": "Vache d'usine",
            "en": "Factory Cow",
            "default": "Vache d'usine"
        },
        "enemies.gab_le_crab.display_name": {
            "fr": "Gab le Crabe",
            "en": "Gab the Crab",
            "default": "Gab le Crabe"
        },
        "enemies.gars_rond.display_name": {
            "fr": "Gars-Rond",
            "en": "Round Guy",
            "default": "Gars-Rond"
        },
        "enemies.harvester_drone.display_name": {
            "fr": "Drone moissonneur",
            "en": "Harvester Drone",
            "default": "Drone moissonneur"
        },
        "enemies.headbanger_ram.display_name": {
            "fr": "Bélier métalleux",
            "en": "Headbanger Ram",
            "default": "Bélier métalleux"
        },
        "enemies.ironhide_goat.display_name": {
            "fr": "Chèvre cuirassée",
            "en": "Ironhide Goat",
            "default": "Chèvre cuirassée"
        },
        "enemies.jeremie.display_name": {
            "fr": "Jérémie",
            "en": "Jérémie",
            "default": "Jérémie"
        },
        "enemies.loaded_dice_crab.display_name": {
            "fr": "Crabe aux dés pipés",
            "en": "Loaded Dice Crab",
            "default": "Crabe aux dés pipés"
        },
        "enemies.lost_shopper.display_name": {
            "fr": "Client perdu",
            "en": "Lost Shopper",
            "default": "Client perdu"
        },
        "enemies.magma_marmot.display_name": {
            "fr": "Marmotte de magma",
            "en": "Magma Marmot",
            "default": "Marmotte de magma"
        },
        "enemies.maintenance_roach.display_name": {
            "fr": "Cafard d'entretien",
            "en": "Maintenance Roach",
            "default": "Cafard d'entretien"
        },
        "enemies.mascot_husk.display_name": {
            "fr": "Carcasse de mascotte",
            "en": "Mascot Husk",
            "default": "Carcasse de mascotte"
        },
        "enemies.mld.display_name": {
            "fr": "MLD",
            "en": "MLD",
            "default": "MLD"
        },
        "enemies.platform_mimic.display_name": {
            "fr": "Mimique de quai",
            "en": "Platform Mimic",
            "default": "Mimique de quai"
        },
        "enemies.powder_gull.display_name": {
            "fr": "Goéland à poudre",
            "en": "Powder Gull",
            "default": "Goéland à poudre"
        },
        "enemies.pyro_pete.display_name": {
            "fr": "Pyro Pete",
            "en": "Pyro Pete",
            "default": "Pyro Pete"
        },
        "enemies.quality_control_bot.display_name": {
            "fr": "Robot de contrôle qualité",
            "en": "Quality-Control Bot",
            "default": "Robot de contrôle qualité"
        },
        "enemies.rootbound_mannequin.display_name": {
            "fr": "Mannequin enraciné",
            "en": "Rootbound Mannequin",
            "default": "Mannequin enraciné"
        },
        "enemies.shaman_musicalo.display_name": {
            "fr": "Shaman Musicalo",
            "en": "Shaman Musicalo",
            "default": "Shaman Musicalo"
        },
        "enemies.siren_dancer.display_name": {
            "fr": "Danseuse sirène",
            "en": "Siren Dancer",
            "default": "Danseuse sirène"
        },
        "enemies.skunk.display_name": {
            "fr": "Moufette toxique",
            "en": "Skunk",
            "default": "Moufette toxique"
        },
        "enemies.spin_doctor_steve.display_name": {
            "fr": "Steve la Girouette",
            "en": "Spin Doctor Steve",
            "default": "Steve la Girouette"
        },
        "enemies.trash_panda.display_name": {
            "fr": "Raton-poubelle",
            "en": "Trash Panda",
            "default": "Raton-poubelle"
        },
        "enemies.tunnel_rat.display_name": {
            "fr": "Rat des tunnels",
            "en": "Tunnel Rat",
            "default": "Rat des tunnels"
        },
        "enemies.turnstile_drone.display_name": {
            "fr": "Drone tourniquet",
            "en": "Turnstile Drone",
            "default": "Drone tourniquet"
        },
        "enemies.vote_vulture.display_name": {
            "fr": "Vautour électoral",
            "en": "Vote Vulture",
            "default": "Vautour électoral"
        },
        "equipment.frost_charm.description": {
            "default": "Un objet magique léger qui améliore la vitesse."
        },
        "equipment.frost_charm.display_name": {
            "default": "Breloque givrée"
        },
        "equipment.iron_apron.description": {
            "default": "Une armure de cuisine qui augmente la vie maximale."
        },
        "equipment.iron_apron.display_name": {
            "default": "Tablier de fer"
        },
        "fact.boss_defeated.description": {
            "default": "Set when the first boss is defeated."
        },
        "fact.boss_defeated.display_name": {
            "default": "Boss Defeated"
        },
        "fact.dimensions_cleared.description": {
            "default": "Nombre de dimensions dont le boss final est tombé."
        },
        "fact.dimensions_cleared.display_name": {
            "default": "Dimensions terminées"
        },
        "fact.dishes_served.description": {
            "default": "Total meals delivered."
        },
        "fact.dishes_served.display_name": {
            "default": "Dishes Served"
        },
        "fact.dungeon_runs.description": {
            "default": "Total dungeon entries."
        },
        "fact.dungeon_runs.display_name": {
            "default": "Dungeon Runs"
        },
        "fact.enemies_defeated.description": {
            "default": "Total defeated enemies."
        },
        "fact.enemies_defeated.display_name": {
            "default": "Enemies Defeated"
        },
        "fact.master_fork_owned.description": {
            "default": "Vrai une fois l’épreuve terminée et la fourchette maîtresse obtenue."
        },
        "fact.master_fork_owned.display_name": {
            "default": "Fourchette maîtresse"
        },
        "fact.restaurant_popularity.description": {
            "default": "Réputation courante du restaurant. Monte à chaque plat servi, descend à chaque client reparti sans être servi."
        },
        "fact.restaurant_popularity.display_name": {
            "default": "Popularité du restaurant"
        },
        "fact.slime_kills.description": {
            "default": "Total defeated slimes."
        },
        "fact.slime_kills.display_name": {
            "default": "Slimes Defeated"
        },
        "food_categories.dessert.description": {
            "default": "Sucré, servi pour finir ou pour se faire plaisir."
        },
        "food_categories.dessert.display_name": {
            "default": "Dessert"
        },
        "food_categories.drink.description": {
            "default": "Liquide bu plutôt que mangé."
        },
        "food_categories.drink.display_name": {
            "default": "Boisson"
        },
        "food_categories.luxury.description": {
            "default": "Ingrédient rare et présentation soignée."
        },
        "food_categories.luxury.display_name": {
            "default": "Grande cuisine"
        },
        "food_categories.meat.description": {
            "default": "Chair animale, quelle qu'en soit la provenance."
        },
        "food_categories.meat.display_name": {
            "default": "Viande"
        },
        "food_categories.mineral.description": {
            "default": "Roche, métal, béton et autres matières non organiques."
        },
        "food_categories.mineral.display_name": {
            "default": "Minéral"
        },
        "food_categories.seafood.description": {
            "default": "Tout ce qui vient de l'eau salée."
        },
        "food_categories.seafood.display_name": {
            "default": "Fruits de mer"
        },
        "food_categories.spicy.description": {
            "default": "Piquant, brûlant ou volcanique."
        },
        "food_categories.spicy.display_name": {
            "default": "Épicé"
        },
        "food_categories.street_food.description": {
            "default": "Mangé debout, sans cérémonie."
        },
        "food_categories.street_food.display_name": {
            "default": "Malbouffe"
        },
        "food_categories.trash.description": {
            "default": "Récupéré, périmé ou franchement douteux."
        },
        "food_categories.trash.display_name": {
            "default": "Poubelle"
        },
        "food_categories.vegetal.description": {
            "default": "Plantes, champignons, tofu et protéines sans animal."
        },
        "food_categories.vegetal.display_name": {
            "default": "Végétal"
        },
        "ingredients.approved_protein.description": {
            "default": "Classée APPROVED par un robot très poli."
        },
        "ingredients.approved_protein.display_name": {
            "fr": "Protéine approuvée",
            "en": "Approved Protein",
            "default": "Protéine approuvée"
        },
        "ingredients.barnacle_meat.description": {
            "default": "Chair dense arrachée à une carapace de coquillages."
        },
        "ingredients.barnacle_meat.display_name": {
            "fr": "Chair de bernacle",
            "en": "Barnacle Meat",
            "default": "Chair de bernacle"
        },
        "ingredients.battery_egg.description": {
            "default": "Oeuf pondu sous contact électrique. Coquille tiède."
        },
        "ingredients.battery_egg.display_name": {
            "fr": "Oeuf de batterie",
            "en": "Battery Egg",
            "default": "Oeuf de batterie"
        },
        "ingredients.beef.description": {
            "default": "Viande de rendement, notée avant d'être nommée."
        },
        "ingredients.beef.display_name": {
            "fr": "Boeuf",
            "en": "Beef",
            "default": "Boeuf"
        },
        "ingredients.big_egg_white.description": {
            "default": "Une quantité grotesque de blanc d'oeuf."
        },
        "ingredients.big_egg_white.display_name": {
            "fr": "Blanc de Big Egg",
            "en": "Big Egg White",
            "default": "Blanc de Big Egg"
        },
        "ingredients.black_pearl_roe.description": {
            "default": "Petits oeufs noirs récoltés dans la cale sèche engloutie."
        },
        "ingredients.black_pearl_roe.display_name": {
            "fr": "Oeufs de perle noire",
            "en": "Black Pearl Roe",
            "default": "Oeufs de perle noire"
        },
        "ingredients.boar_meat.description": {
            "default": "Viande d'un animal qui déplaçait des barricades entières."
        },
        "ingredients.boar_meat.display_name": {
            "fr": "Viande de sanglier",
            "en": "Boar Meat",
            "default": "Viande de sanglier"
        },
        "ingredients.campaign_ration.description": {
            "default": "Ration officielle d'une république de trois rues."
        },
        "ingredients.campaign_ration.display_name": {
            "fr": "Ration de campagne",
            "en": "Campaign Ration",
            "default": "Ration de campagne"
        },
        "ingredients.carl_meat.description": {
            "default": "Personne ne pose de question, Carl non plus."
        },
        "ingredients.carl_meat.display_name": {
            "fr": "Viande de Carl",
            "en": "Carl Meat",
            "default": "Viande de Carl"
        },
        "ingredients.carls_leg.description": {
            "default": "Carl la récupère toujours. Personne ne sait comment."
        },
        "ingredients.carls_leg.display_name": {
            "fr": "Jambe de Carl",
            "en": "Carl's Leg",
            "default": "Jambe de Carl"
        },
        "ingredients.charred_meat.description": {
            "default": "Cuite bien avant d'être récupérée, merci Pete."
        },
        "ingredients.charred_meat.display_name": {
            "fr": "Viande carbonisée",
            "en": "Charred Meat",
            "default": "Viande carbonisée"
        },
        "ingredients.chicken_meat.description": {
            "default": "Parfaitement uniforme, comme l'exige la fiche produit."
        },
        "ingredients.chicken_meat.display_name": {
            "fr": "Viande de poulet",
            "en": "Chicken Meat",
            "default": "Viande de poulet"
        },
        "ingredients.coach_cutlet.description": {
            "default": "Coupe premium d'un athlète augmenté jusqu'à l'absurde."
        },
        "ingredients.coach_cutlet.display_name": {
            "fr": "Escalope de coach",
            "en": "Coach Cutlet",
            "default": "Escalope de coach"
        },
        "ingredients.concrete_tofu.description": {
            "default": "Bloc préfabriqué qui s'attendrit à la cuisson. Presque."
        },
        "ingredients.concrete_tofu.display_name": {
            "fr": "Tofu de béton",
            "en": "Concrete Tofu",
            "default": "Tofu de béton"
        },
        "ingredients.conveyor_bacon.description": {
            "default": "Tranché à la vitesse de la chaîne, jamais autrement."
        },
        "ingredients.conveyor_bacon.display_name": {
            "fr": "Bacon de convoyeur",
            "en": "Conveyor Bacon",
            "default": "Bacon de convoyeur"
        },
        "ingredients.coolant_sac.description": {
            "default": "Poche de refroidissement industriel, étonnamment rafraîchissante."
        },
        "ingredients.coolant_sac.display_name": {
            "fr": "Poche de liquide froid",
            "en": "Coolant Sac",
            "default": "Poche de liquide froid"
        },
        "ingredients.crab_meat.description": {
            "default": "Chair de crabe de casino, gagnée plutôt que pêchée."
        },
        "ingredients.crab_meat.display_name": {
            "fr": "Chair de crabe",
            "en": "Crab Meat",
            "default": "Chair de crabe"
        },
        "ingredients.crop_protein.description": {
            "default": "Produite automatiquement, sans intervention humaine."
        },
        "ingredients.crop_protein.display_name": {
            "fr": "Protéine végétale",
            "en": "Crop Protein",
            "default": "Protéine végétale"
        },
        "ingredients.crow_meat.description": {
            "default": "Chair naturellement fumée par les évents volcaniques."
        },
        "ingredients.crow_meat.display_name": {
            "fr": "Viande de corbeau",
            "en": "Crow Meat",
            "default": "Viande de corbeau"
        },
        "ingredients.dictator_mustard.description": {
            "default": "Condiment beaucoup trop cérémonial servi en pot doré."
        },
        "ingredients.dictator_mustard.display_name": {
            "fr": "Moutarde de dictateur",
            "en": "Dictator Mustard",
            "default": "Moutarde de dictateur"
        },
        "ingredients.dock_rat_meat.description": {
            "default": "Maigre, rapide, et étonnamment savoureuse une fois saisie."
        },
        "ingredients.dock_rat_meat.display_name": {
            "fr": "Viande de rat de quai",
            "en": "Dock Rat Meat",
            "default": "Viande de rat de quai"
        },
        "ingredients.echo_mushroom.description": {
            "default": "Champignon qui répète une note plusieurs secondes après qu'on l'a touché."
        },
        "ingredients.echo_mushroom.display_name": {
            "fr": "Champignon d'écho",
            "en": "Echo Mushroom",
            "default": "Champignon d'écho"
        },
        "ingredients.ember_feather.description": {
            "default": "Plume encore tiède qui parfume tout ce qu'elle touche."
        },
        "ingredients.ember_feather.display_name": {
            "fr": "Plume de braise",
            "en": "Ember Feather",
            "default": "Plume de braise"
        },
        "ingredients.energy_gel.description": {
            "default": "Gel énergétique réglementaire des Egglympics."
        },
        "ingredients.energy_gel.display_name": {
            "fr": "Gel énergétique",
            "en": "Energy Gel",
            "default": "Gel énergétique"
        },
        "ingredients.enforcer_meat.description": {
            "default": "Coupe standardisée, uniforme jusque dans le goût."
        },
        "ingredients.enforcer_meat.display_name": {
            "fr": "Viande d'Eggforcer",
            "en": "Enforcer Meat",
            "default": "Viande d'Eggforcer"
        },
        "ingredients.food_court_sauce.description": {
            "default": "Sauce de comptoir dont la recette est morte avec le centre commercial."
        },
        "ingredients.food_court_sauce.display_name": {
            "fr": "Sauce de food court",
            "en": "Food Court Sauce",
            "default": "Sauce de food court"
        },
        "ingredients.forbidden_punch.description": {
            "default": "Punch fluorescent dont la recette est interdite dans plusieurs dimensions."
        },
        "ingredients.forbidden_punch.display_name": {
            "fr": "Punch interdit",
            "en": "Forbidden Punch",
            "default": "Punch interdit"
        },
        "ingredients.glitter_scale.description": {
            "default": "Écaille de scène, comestible et parfaitement théâtrale."
        },
        "ingredients.glitter_scale.display_name": {
            "fr": "Écaille scintillante",
            "en": "Glitter Scale",
            "default": "Écaille scintillante"
        },
        "ingredients.goat_meat.description": {
            "default": "Chèvre de montagne nourrie de mousse et de métal."
        },
        "ingredients.goat_meat.display_name": {
            "fr": "Viande de chèvre",
            "en": "Goat Meat",
            "default": "Viande de chèvre"
        },
        "ingredients.golden_acorn.description": {
            "default": "Un gland que l'écureuil défendait comme un trésor de famille."
        },
        "ingredients.golden_acorn.display_name": {
            "fr": "Gland doré",
            "en": "Golden Acorn",
            "default": "Gland doré"
        },
        "ingredients.golden_carrot.description": {
            "default": "Carotte dorée que Bob refuse mystérieusement de manger."
        },
        "ingredients.golden_carrot.display_name": {
            "fr": "Carotte dorée",
            "en": "Golden Carrot",
            "default": "Carotte dorée"
        },
        "ingredients.goon_meat.description": {
            "default": "Militant de terrain reconverti, puis reconverti encore."
        },
        "ingredients.goon_meat.display_name": {
            "fr": "Viande de gros bras",
            "en": "Goon Meat",
            "default": "Viande de gros bras"
        },
        "ingredients.gull_meat.description": {
            "default": "Oiseau d'entrepôt au goût légèrement fumé."
        },
        "ingredients.gull_meat.display_name": {
            "fr": "Viande de goéland",
            "en": "Gull Meat",
            "default": "Viande de goéland"
        },
        "ingredients.gunpowder_gizzard.description": {
            "default": "Gésier chargé de poudre noire. À doser."
        },
        "ingredients.gunpowder_gizzard.display_name": {
            "fr": "Gésier à poudre",
            "en": "Gunpowder Gizzard",
            "default": "Gésier à poudre"
        },
        "ingredients.honeycomb.description": {
            "default": "Rayon de miel brut ramassé dans la serre du Cratère."
        },
        "ingredients.honeycomb.display_name": {
            "fr": "Rayon de miel",
            "en": "Honeycomb",
            "default": "Rayon de miel"
        },
        "ingredients.hot_sauce_blood.description": {
            "default": "Se comporte exactement comme une sauce piquante haut de gamme."
        },
        "ingredients.hot_sauce_blood.display_name": {
            "fr": "Sang piquant",
            "en": "Hot Sauce Blood",
            "default": "Sang piquant"
        },
        "ingredients.hound_meat.description": {
            "default": "Viande d'unité de surveillance, moitié bête moitié machine."
        },
        "ingredients.hound_meat.display_name": {
            "fr": "Viande de molosse",
            "en": "Hound Meat",
            "default": "Viande de molosse"
        },
        "ingredients.iron_milk.description": {
            "default": "Lait épais au goût de clou. Très nourrissant."
        },
        "ingredients.iron_milk.display_name": {
            "fr": "Lait ferreux",
            "en": "Iron Milk",
            "default": "Lait ferreux"
        },
        "ingredients.lava_fat.description": {
            "default": "Graisse qui reste liquide bien après la cuisson."
        },
        "ingredients.lava_fat.display_name": {
            "fr": "Graisse de magma",
            "en": "Lava Fat",
            "default": "Graisse de magma"
        },
        "ingredients.lens_jelly.description": {
            "default": "Gelée transparente prise dans une tête-caméra."
        },
        "ingredients.lens_jelly.display_name": {
            "fr": "Gelée optique",
            "en": "Lens Jelly",
            "default": "Gelée optique"
        },
        "ingredients.lightning_salt.description": {
            "default": "Sel ionisé qui crépite quand on le saupoudre."
        },
        "ingredients.lightning_salt.display_name": {
            "fr": "Sel foudroyant",
            "en": "Lightning Salt",
            "default": "Sel foudroyant"
        },
        "ingredients.loaded_claw.description": {
            "default": "Une pince qui tombe toujours du bon côté."
        },
        "ingredients.loaded_claw.display_name": {
            "fr": "Pince pipée",
            "en": "Loaded Claw",
            "default": "Pince pipée"
        },
        "ingredients.lobbyist_lard.description": {
            "default": "Gras onctueux qui adoucit absolument tout."
        },
        "ingredients.lobbyist_lard.display_name": {
            "fr": "Saindoux de lobbyiste",
            "en": "Lobbyist Lard",
            "default": "Saindoux de lobbyiste"
        },
        "ingredients.lost_lunch.description": {
            "default": "Boîte-repas retrouvée intacte, longtemps après la fermeture."
        },
        "ingredients.lost_lunch.display_name": {
            "fr": "Lunch oublié",
            "en": "Lost Lunch",
            "default": "Lunch oublié"
        },
        "ingredients.lubricant_gel.description": {
            "default": "Officiellement alimentaire. Officiellement."
        },
        "ingredients.lubricant_gel.display_name": {
            "fr": "Gel lubrifiant",
            "en": "Lubricant Gel",
            "default": "Gel lubrifiant"
        },
        "ingredients.lucky_pearl.description": {
            "default": "Perle gagnée dans des circonstances statistiquement douteuses."
        },
        "ingredients.lucky_pearl.display_name": {
            "fr": "Perle porte-bonheur",
            "en": "Lucky Pearl",
            "default": "Perle porte-bonheur"
        },
        "ingredients.marmot_meat.description": {
            "default": "Viande grasse déjà à moitié cuite par son terrier."
        },
        "ingredients.marmot_meat.display_name": {
            "fr": "Viande de marmotte",
            "en": "Marmot Meat",
            "default": "Viande de marmotte"
        },
        "ingredients.mascot_filling.description": {
            "default": "Ce qui gonflait le costume. On ne cherche pas plus loin."
        },
        "ingredients.mascot_filling.display_name": {
            "fr": "Bourre de mascotte",
            "en": "Mascot Filling",
            "default": "Bourre de mascotte"
        },
        "ingredients.metro_mushroom.description": {
            "default": "Pousse le long des rails, à l'abri de toute lumière."
        },
        "ingredients.metro_mushroom.display_name": {
            "fr": "Champignon de métro",
            "en": "Metro Mushroom",
            "default": "Champignon de métro"
        },
        "ingredients.mimic_meat.description": {
            "default": "Chair molle d'un banc qui n'en était pas un."
        },
        "ingredients.mimic_meat.display_name": {
            "fr": "Chair de mimique",
            "en": "Mimic Meat",
            "default": "Chair de mimique"
        },
        "ingredients.molten_truffle.description": {
            "default": "Truffe rare poussant près des poches géothermiques."
        },
        "ingredients.molten_truffle.display_name": {
            "fr": "Truffe en fusion",
            "en": "Molten Truffle",
            "default": "Truffe en fusion"
        },
        "ingredients.moss_heart.description": {
            "default": "Noyau de mousse tiède pris dans un mannequin enraciné."
        },
        "ingredients.moss_heart.display_name": {
            "fr": "Coeur de mousse",
            "en": "Moss Heart",
            "default": "Coeur de mousse"
        },
        "ingredients.oat_bundle.description": {
            "default": "Sac d'avoine de voyage que Bob transporte partout."
        },
        "ingredients.oat_bundle.display_name": {
            "fr": "Botte d'avoine",
            "en": "Oat Bundle",
            "default": "Botte d'avoine"
        },
        "ingredients.party_mix.description": {
            "default": "Mélange de grignotines trouvé partout après son passage."
        },
        "ingredients.party_mix.display_name": {
            "fr": "Mélange de fête",
            "en": "Party Mix",
            "default": "Mélange de fête"
        },
        "ingredients.pepper_marinade.description": {
            "default": "Marinade dispersante servie en très petite quantité."
        },
        "ingredients.pepper_marinade.display_name": {
            "fr": "Marinade au poivre",
            "en": "Pepper Marinade",
            "default": "Marinade au poivre"
        },
        "ingredients.perfect_tomato.description": {
            "default": "Une tomate si parfaite qu'elle en devient inquiétante."
        },
        "ingredients.perfect_tomato.display_name": {
            "fr": "Tomate parfaite",
            "en": "Perfect Tomato",
            "default": "Tomate parfaite"
        },
        "ingredients.performance_serum.description": {
            "default": "Sérum de records que plus personne ne regarde."
        },
        "ingredients.performance_serum.display_name": {
            "fr": "Sérum de performance",
            "en": "Performance Serum",
            "default": "Sérum de performance"
        },
        "ingredients.plastic_tofu.description": {
            "default": "Récupéré dans les galeries envahies par les racines."
        },
        "ingredients.plastic_tofu.display_name": {
            "fr": "Tofu de plastique",
            "en": "Plastic Tofu",
            "default": "Tofu de plastique"
        },
        "ingredients.pork.description": {
            "default": "Coupe industrielle d'un animal qui courait sur convoyeur."
        },
        "ingredients.pork.display_name": {
            "fr": "Porc",
            "en": "Pork",
            "default": "Porc"
        },
        "ingredients.premium_spin_sauce.description": {
            "default": "Une sauce dont la publicité est meilleure que le goût."
        },
        "ingredients.premium_spin_sauce.display_name": {
            "fr": "Sauce premium",
            "en": "Premium Spin Sauce",
            "default": "Sauce premium"
        },
        "ingredients.pristine_garbage.description": {
            "default": "Un déchet si bien conservé qu'il passe pour un ingrédient."
        },
        "ingredients.pristine_garbage.display_name": {
            "fr": "Déchet impeccable",
            "en": "Pristine Garbage",
            "default": "Déchet impeccable"
        },
        "ingredients.protein_cartridge.description": {
            "default": "Ration réglementaire, grise et profondément sans joie."
        },
        "ingredients.protein_cartridge.display_name": {
            "fr": "Cartouche de protéine",
            "en": "Protein Cartridge",
            "default": "Cartouche de protéine"
        },
        "ingredients.raccoon_meat.description": {
            "default": "Viande de fouilleur, au goût de tout ce qu'il a trouvé."
        },
        "ingredients.raccoon_meat.display_name": {
            "fr": "Viande de raton",
            "en": "Raccoon Meat",
            "default": "Viande de raton"
        },
        "ingredients.rage_gizzard.description": {
            "default": "Gésier encore contracté, à manipuler avec un peu de respect."
        },
        "ingredients.rage_gizzard.display_name": {
            "fr": "Gésier enragé",
            "en": "Rage Gizzard",
            "default": "Gésier enragé"
        },
        "ingredients.ram_meat.description": {
            "default": "Viande dense d'un animal qui frappait le sol en cadence."
        },
        "ingredients.ram_meat.display_name": {
            "fr": "Viande de bélier",
            "en": "Ram Meat",
            "default": "Viande de bélier"
        },
        "ingredients.rebar_jerky.description": {
            "default": "Lanières séchées récupérées dans les rampes brutalistes."
        },
        "ingredients.rebar_jerky.display_name": {
            "fr": "Jerky d'armature",
            "en": "Rebar Jerky",
            "default": "Jerky d'armature"
        },
        "ingredients.red_nose_cherry.description": {
            "default": "Cerise confite d'un rouge de fête un peu trop vif."
        },
        "ingredients.red_nose_cherry.display_name": {
            "fr": "Cerise nez rouge",
            "en": "Red Nose Cherry",
            "default": "Cerise nez rouge"
        },
        "ingredients.reject_spice.description": {
            "default": "Tout ce que le contrôle qualité a refusé, broyé ensemble."
        },
        "ingredients.reject_spice.display_name": {
            "fr": "Épice rejetée",
            "en": "Reject Spice",
            "default": "Épice rejetée"
        },
        "ingredients.resonant_marrow.description": {
            "default": "Moelle qui vibre encore quand on approche l'oreille."
        },
        "ingredients.resonant_marrow.display_name": {
            "fr": "Moelle résonante",
            "en": "Resonant Marrow",
            "default": "Moelle résonante"
        },
        "ingredients.rhythm_herb.description": {
            "default": "Herbe aromatique qui vibre légèrement au rythme de la musique."
        },
        "ingredients.rhythm_herb.display_name": {
            "fr": "Herbe rythmique",
            "en": "Rhythm Herb",
            "default": "Herbe rythmique"
        },
        "ingredients.riot_truffle.description": {
            "default": "Poussée sous les pavés retournés de la rue des barricades."
        },
        "ingredients.riot_truffle.display_name": {
            "fr": "Truffe d'émeute",
            "en": "Riot Truffle",
            "default": "Truffe d'émeute"
        },
        "ingredients.roach_protein.description": {
            "default": "Efficace, abondante, et jamais mentionnée au menu."
        },
        "ingredients.roach_protein.display_name": {
            "fr": "Protéine de cafard",
            "en": "Roach Protein",
            "default": "Protéine de cafard"
        },
        "ingredients.rock_salt.description": {
            "default": "Sel minéral récolté dans les fissures du sommet."
        },
        "ingredients.rock_salt.display_name": {
            "fr": "Sel de roche",
            "en": "Rock Salt",
            "default": "Sel de roche"
        },
        "ingredients.royal_honey.description": {
            "default": "Miel rarissime qui brille presque comme de l'or."
        },
        "ingredients.royal_honey.display_name": {
            "fr": "Miel royal",
            "en": "Royal Honey",
            "default": "Miel royal"
        },
        "ingredients.royal_yolk.description": {
            "default": "Jaune d'oeuf d'une richesse presque obscène."
        },
        "ingredients.royal_yolk.display_name": {
            "fr": "Jaune royal",
            "en": "Royal Yolk",
            "default": "Jaune royal"
        },
        "ingredients.salted_tail.description": {
            "default": "Charcuterie de quai séchée dans l'air du port."
        },
        "ingredients.salted_tail.display_name": {
            "fr": "Queue salée",
            "en": "Salted Tail",
            "default": "Queue salée"
        },
        "ingredients.scent_gland.description": {
            "default": "Un condiment d'une puissance médicalement discutable."
        },
        "ingredients.scent_gland.display_name": {
            "fr": "Glande odorante",
            "en": "Scent Gland",
            "default": "Glande odorante"
        },
        "ingredients.shedded_crab_meat.description": {
            "default": "Chair d'une pince que Gab renouvelle naturellement."
        },
        "ingredients.shedded_crab_meat.display_name": {
            "fr": "Chair de pince muée",
            "en": "Shedded Crab Meat",
            "default": "Chair de pince muée"
        },
        "ingredients.shopper_meat.description": {
            "default": "Toujours accompagnée de quelques étiquettes."
        },
        "ingredients.shopper_meat.display_name": {
            "fr": "Viande de client perdu",
            "en": "Shopper Meat",
            "default": "Viande de client perdu"
        },
        "ingredients.siren_fillet.description": {
            "default": "Filet brillant qui vibre encore un peu au rythme du cabaret."
        },
        "ingredients.siren_fillet.display_name": {
            "fr": "Filet de sirène",
            "en": "Siren Fillet",
            "default": "Filet de sirène"
        },
        "ingredients.skunk_meat.description": {
            "default": "Se cuisine très bien, à condition de ne pas y penser."
        },
        "ingredients.skunk_meat.display_name": {
            "fr": "Viande de moufette",
            "en": "Skunk Meat",
            "default": "Viande de moufette"
        },
        "ingredients.spin_doctor_meat.description": {
            "default": "Change de goût selon la façon dont on la présente."
        },
        "ingredients.spin_doctor_meat.display_name": {
            "fr": "Viande de girouette",
            "en": "Spin Doctor Meat",
            "default": "Viande de girouette"
        },
        "ingredients.squirrel_meat.description": {
            "default": "Petite viande nerveuse prise sur un rongeur beaucoup trop intense."
        },
        "ingredients.squirrel_meat.display_name": {
            "fr": "Viande d'écureuil",
            "en": "Squirrel Meat",
            "default": "Viande d'écureuil"
        },
        "ingredients.stolen_ballot_spice.description": {
            "default": "Épice tirée de papiers que personne n'a comptés."
        },
        "ingredients.stolen_ballot_spice.display_name": {
            "fr": "Épice de bulletin volé",
            "en": "Stolen Ballot Spice",
            "default": "Épice de bulletin volé"
        },
        "ingredients.synthetic_marbling.description": {
            "default": "Persillage injecté, conforme aux normes du secteur."
        },
        "ingredients.synthetic_marbling.display_name": {
            "fr": "Persillage synthétique",
            "en": "Synthetic Marbling",
            "default": "Persillage synthétique"
        },
        "ingredients.tunnel_rat_meat.description": {
            "default": "Pâle, silencieuse, réconfortante surtout parce qu'elle est chaude."
        },
        "ingredients.tunnel_rat_meat.display_name": {
            "fr": "Viande de rat des tunnels",
            "en": "Tunnel Rat Meat",
            "default": "Viande de rat des tunnels"
        },
        "ingredients.turkey_meat.description": {
            "default": "Chair ferme d'un oiseau qui chargeait sans jamais douter."
        },
        "ingredients.turkey_meat.display_name": {
            "fr": "Viande de dindon",
            "en": "Turkey Meat",
            "default": "Viande de dindon"
        },
        "ingredients.vulture_meat.description": {
            "default": "Coriace, électorale, étrangement populaire en campagne."
        },
        "ingredients.vulture_meat.display_name": {
            "fr": "Viande de vautour",
            "en": "Vulture Meat",
            "default": "Viande de vautour"
        },
        "movement_patterns.big_leap.display_name": {
            "default": "Grand bond",
            "fr": "Grand bond",
            "en": "Big Leap"
        },
        "movement_patterns.hover.display_name": {
            "fr": "Vol stationnaire",
            "en": "Hover",
            "default": "Vol stationnaire"
        },
        "movement_patterns.linear.display_name": {
            "default": "Direct",
            "fr": "Direct",
            "en": "Linear"
        },
        "movement_patterns.lumber.display_name": {
            "fr": "Pas lourd",
            "en": "Lumber",
            "default": "Pas lourd"
        },
        "movement_patterns.patrol.display_name": {
            "default": "Patrouille",
            "fr": "Patrouille",
            "en": "Patrol"
        },
        "movement_patterns.skitter.display_name": {
            "fr": "Course nerveuse",
            "en": "Skitter",
            "default": "Course nerveuse"
        },
        "movement_patterns.small_hop.display_name": {
            "default": "Petit bond",
            "fr": "Petit bond",
            "en": "Small Hop"
        },
        "movement_patterns.stalk.display_name": {
            "fr": "Traque",
            "en": "Stalk",
            "default": "Traque"
        },
        "movement_patterns.static.display_name": {
            "default": "Immobile",
            "fr": "Immobile",
            "en": "Static"
        },
        "player_configs.default_player.display_name": {
            "default": "Default Player"
        },
        "projectiles.egg_launcher_shot.display_name": {
            "default": "Lance-œuf — munition"
        },
        "recipes.abandoned_mall_deluxe.display_name": {
            "fr": "Deluxe du centre commercial abandonné",
            "en": "Abandoned Mall Deluxe",
            "default": "Deluxe du centre commercial abandonné"
        },
        "recipes.abominable_party_platter.display_name": {
            "fr": "Plateau de fête abominable",
            "en": "Abominable Party Platter",
            "default": "Plateau de fête abominable"
        },
        "recipes.approved_beef_casserole.display_name": {
            "fr": "Casserole de boeuf approuvée",
            "en": "Approved Beef Casserole",
            "default": "Casserole de boeuf approuvée"
        },
        "recipes.automated_crop_loaf.display_name": {
            "fr": "Pain de protéines automatisé",
            "en": "Automated Crop Loaf",
            "default": "Pain de protéines automatisé"
        },
        "recipes.ballot_vulture_pie.display_name": {
            "fr": "Tourte au vautour électoral",
            "en": "Ballot Vulture Pie",
            "default": "Tourte au vautour électoral"
        },
        "recipes.barnacle_chowder.display_name": {
            "fr": "Chaudrée de bernacles",
            "en": "Barnacle Chowder",
            "default": "Chaudrée de bernacles"
        },
        "recipes.battery_hen_nuggets.display_name": {
            "fr": "Croquettes de poule-batterie",
            "en": "Battery Hen Nuggets",
            "default": "Croquettes de poule-batterie"
        },
        "recipes.bobs_golden_trail_mix.display_name": {
            "fr": "Mélange doré de Bob",
            "en": "Bob's Golden Trail Mix",
            "default": "Mélange doré de Bob"
        },
        "recipes.brutalist_performance_slab.display_name": {
            "fr": "Dalle brutaliste dopée",
            "en": "Brutalist Performance Slab",
            "default": "Dalle brutaliste dopée"
        },
        "recipes.camera_hound_sausage.display_name": {
            "fr": "Saucisse de molosse caméra",
            "en": "Camera Hound Sausage",
            "default": "Saucisse de molosse caméra"
        },
        "recipes.campaign_ballot_slider.display_name": {
            "fr": "Petit burger de campagne",
            "en": "Campaign Ballot Slider",
            "default": "Petit burger de campagne"
        },
        "recipes.carls_turkey_dog.display_name": {
            "fr": "Le hot-dog de Carl",
            "en": "Carl's Turkey Dog",
            "default": "Le hot-dog de Carl"
        },
        "recipes.chrome_lens_cutlet.display_name": {
            "fr": "Escalope chrome et objectif",
            "en": "Chrome Lens Cutlet",
            "default": "Escalope chrome et objectif"
        },
        "recipes.cinder_crow_wings.display_name": {
            "fr": "Ailes de corbeau de braise",
            "en": "Cinder Crow Wings",
            "default": "Ailes de corbeau de braise"
        },
        "recipes.crater_surf_and_turf.display_name": {
            "fr": "Terre et mer du Cratère",
            "en": "Crater Surf & Turf",
            "default": "Terre et mer du Cratère"
        },
        "recipes.dock_ratatouille.display_name": {
            "fr": "Ratatouille de quai",
            "en": "Dock Ratatouille",
            "default": "Ratatouille de quai"
        },
        "recipes.eggforcer_cutlet.display_name": {
            "fr": "Escalope d'Eggforcer",
            "en": "Eggforcer Cutlet",
            "default": "Escalope d'Eggforcer"
        },
        "recipes.factory_floor_breakfast.display_name": {
            "fr": "Déjeuner de plancher d'usine",
            "en": "Factory Floor Breakfast",
            "default": "Déjeuner de plancher d'usine"
        },
        "recipes.gabs_contraband_bisque.display_name": {
            "fr": "Bisque de contrebande de Gab",
            "en": "Gab's Contraband Bisque",
            "default": "Bisque de contrebande de Gab"
        },
        "recipes.gars_rond_summit_roast.display_name": {
            "fr": "Rôti du sommet de Gars-Rond",
            "en": "Gars-Rond Summit Roast",
            "default": "Rôti du sommet de Gars-Rond"
        },
        "recipes.heavy_metal_kebab.display_name": {
            "fr": "Kebab heavy metal",
            "en": "Heavy Metal Kebab",
            "default": "Kebab heavy metal"
        },
        "recipes.iron_goat_lava_fondue.display_name": {
            "fr": "Fondue de chèvre à la lave",
            "en": "Iron Goat Lava Fondue",
            "default": "Fondue de chèvre à la lave"
        },
        "recipes.jeremie_speed_bowl.display_name": {
            "fr": "Bol de vitesse de Jérémie",
            "en": "Jérémie Speed Bowl",
            "default": "Bol de vitesse de Jérémie"
        },
        "recipes.loaded_pearl_cakes.display_name": {
            "fr": "Galettes aux perles pipées",
            "en": "Loaded Pearl Cakes",
            "default": "Galettes aux perles pipées"
        },
        "recipes.lost_shopper_forest_combo.display_name": {
            "fr": "Combo forêt du client perdu",
            "en": "Lost Shopper Forest Combo",
            "default": "Combo forêt du client perdu"
        },
        "recipes.magma_marmot_melt.display_name": {
            "fr": "Marmotte fondante du magma",
            "en": "Magma Marmot Melt",
            "default": "Marmotte fondante du magma"
        },
        "recipes.mascot_afterparty_dessert.display_name": {
            "fr": "Dessert d'after de mascotte",
            "en": "Mascot Afterparty Dessert",
            "default": "Dessert d'after de mascotte"
        },
        "recipes.mimic_mushroom_lunchbox.display_name": {
            "fr": "Boîte à lunch mimique",
            "en": "Mimic Mushroom Lunchbox",
            "default": "Boîte à lunch mimique"
        },
        "recipes.mld_state_dinner.display_name": {
            "fr": "Dîner d'État de MLD",
            "en": "MLD State Dinner",
            "default": "Dîner d'État de MLD"
        },
        "recipes.musicalo_resonance_soup.display_name": {
            "fr": "Soupe de résonance de Musicalo",
            "en": "Musicalo Resonance Soup",
            "default": "Soupe de résonance de Musicalo"
        },
        "recipes.olympic_volcano_stack.display_name": {
            "fr": "Tour olympique volcanique",
            "en": "Olympic Volcano Stack",
            "default": "Tour olympique volcanique"
        },
        "recipes.pepper_spin_special.display_name": {
            "fr": "Spécial poivre et propagande",
            "en": "Pepper Spin Special",
            "default": "Spécial poivre et propagande"
        },
        "recipes.petes_molten_tartare.display_name": {
            "fr": "Tartare en fusion de Pete",
            "en": "Pete's Molten Tartare",
            "default": "Tartare en fusion de Pete"
        },
        "recipes.powdered_dock_wings.display_name": {
            "fr": "Ailes de quai poudrées",
            "en": "Powdered Dock Wings",
            "default": "Ailes de quai poudrées"
        },
        "recipes.protesters_surf_and_turf.display_name": {
            "fr": "Terre et mer du manifestant",
            "en": "Protester's Surf & Turf",
            "default": "Terre et mer du manifestant"
        },
        "recipes.rebar_maintenance_crunch.display_name": {
            "fr": "Croquant d'entretien",
            "en": "Rebar Maintenance Crunch",
            "default": "Croquant d'entretien"
        },
        "recipes.rootbound_tofu_bowl.display_name": {
            "fr": "Bol de tofu enraciné",
            "en": "Rootbound Tofu Bowl",
            "default": "Bol de tofu enraciné"
        },
        "recipes.royal_crater_platter.display_name": {
            "fr": "Assiette royale du Cratère",
            "en": "Royal Crater Platter",
            "default": "Assiette royale du Cratère"
        },
        "recipes.scented_squirrel_roast.display_name": {
            "fr": "Rôti d'écureuil parfumé",
            "en": "Scented Squirrel Roast",
            "default": "Rôti d'écureuil parfumé"
        },
        "recipes.sirens_lucky_roll.display_name": {
            "fr": "Rouleau chanceux de la sirène",
            "en": "Siren's Lucky Roll",
            "default": "Rouleau chanceux de la sirène"
        },
        "recipes.spin_boar_roast.display_name": {
            "fr": "Rôti de sanglier à la sauce premium",
            "en": "Spin Boar Roast",
            "default": "Rôti de sanglier à la sauce premium"
        },
        "recipes.squirrel_skewer.display_name": {
            "fr": "Brochette d'écureuil",
            "en": "Squirrel Skewer",
            "default": "XXX Brochette d'écureuil"
        },
        "recipes.squirrel_skewer_copy.display_name": {
            "default": "XXX L'écureuil et ses amis"
        },
        "recipes.squirrel_skewer_copy_2.display_name": {
            "default": "XXX Les noix de l'écureuil"
        },
        "recipes.trash_funk_stew.display_name": {
            "fr": "Ragoût funk-poubelle",
            "en": "Trash-Funk Stew",
            "default": "Ragoût funk-poubelle"
        },
        "recipes.tunnel_rat_stew.display_name": {
            "fr": "Ragoût de rat des tunnels",
            "en": "Tunnel Rat Stew",
            "default": "Ragoût de rat des tunnels"
        },
        "recipes.turkey_panic_roast.display_name": {
            "fr": "Rôti de dindon paniqué",
            "en": "Turkey Panic Roast",
            "default": "Rôti de dindon paniqué"
        },
        "recipes.turnstile_protein_brick.display_name": {
            "fr": "Brique de protéine du tourniquet",
            "en": "Turnstile Protein Brick",
            "default": "Brique de protéine du tourniquet"
        },
        "recipes.world_egg_degustation.display_name": {
            "fr": "Dégustation World Egg",
            "en": "World Egg Degustation",
            "default": "Dégustation World Egg"
        },
        "recipes.worlds_biggest_omelette.display_name": {
            "fr": "La plus grosse omelette du monde",
            "en": "The World's Biggest Omelette",
            "default": "La plus grosse omelette du monde"
        },
        "restaurant_elements.basic_console.description": {
            "fr": "Le tableau de commande du magasin.",
            "en": "Le tableau de commande du magasin.",
            "default": "Le tableau de commande du magasin."
        },
        "restaurant_elements.basic_console.display_name": {
            "fr": "Console de gestion",
            "en": "Console de gestion",
            "default": "Console de gestion"
        },
        "restaurant_elements.basic_dishwasher.description": {
            "fr": "Lave la vaisselle sale.",
            "en": "Lave la vaisselle sale.",
            "default": "Lave la vaisselle sale."
        },
        "restaurant_elements.basic_dishwasher.display_name": {
            "fr": "Plonge",
            "en": "Plonge",
            "default": "Plonge"
        },
        "restaurant_elements.basic_order_board.description": {
            "fr": "La file de travail du restaurant.",
            "en": "La file de travail du restaurant.",
            "default": "La file de travail du restaurant."
        },
        "restaurant_elements.basic_order_board.display_name": {
            "fr": "Ardoise",
            "en": "Ardoise",
            "default": "Ardoise"
        },
        "restaurant_elements.basic_shelf.description": {
            "fr": "Range les assiettes prêtes.",
            "en": "Range les assiettes prêtes.",
            "default": "Range les assiettes prêtes."
        },
        "restaurant_elements.basic_shelf.display_name": {
            "fr": "Étagère",
            "en": "Étagère",
            "default": "Étagère"
        },
        "restaurant_elements.basic_stove.description": {
            "fr": "Le poste de cuisson d'origine.",
            "en": "Le poste de cuisson d'origine.",
            "default": "Le poste de cuisson d'origine."
        },
        "restaurant_elements.basic_stove.display_name": {
            "fr": "Four de base",
            "en": "Four de base",
            "default": "Four de base"
        },
        "restaurant_elements.basic_table.description": {
            "fr": "Une place assise.",
            "en": "Une place assise.",
            "default": "Une place assise."
        },
        "restaurant_elements.basic_table.display_name": {
            "fr": "Tabouret",
            "en": "Tabouret",
            "default": "Tabouret"
        },
        "restaurant_elements.basic_takeout_counter.description": {
            "fr": "Vend à la rue, adossé au mur nord.",
            "en": "Vend à la rue, adossé au mur nord.",
            "default": "Vend à la rue, adossé au mur nord."
        },
        "restaurant_elements.basic_takeout_counter.display_name": {
            "fr": "Comptoir takeout",
            "en": "Comptoir takeout",
            "default": "Comptoir takeout"
        },
        "restaurant_elements.basic_trash.description": {
            "fr": "Jette un plat raté.",
            "en": "Jette un plat raté.",
            "default": "Jette un plat raté."
        },
        "restaurant_elements.basic_trash.display_name": {
            "fr": "Poubelle",
            "en": "Poubelle",
            "default": "Poubelle"
        },
        "restaurant_elements.employee_locker.description": {
            "fr": "Permet d'engager des employés lorsque le comptoir tablette et l'ardoise sont installés.",
            "en": "Allows employees to be hired once the shelf counter and order board are installed.",
            "default": "Rend l'embauche possible quand l'étagère et l'ardoise sont installées."
        },
        "restaurant_elements.employee_locker.display_name": {
            "fr": "Casier d'employés",
            "en": "Employee locker",
            "default": "Casier d'employés"
        },
        "rewards.crowded_halls.description": {
            "default": "Les salles contiennent 4 créatures de plus, et chaque coup frappe 35 % plus fort."
        },
        "rewards.crowded_halls.display_name": {
            "default": "Couloirs bondés"
        },
        "rewards.deep_pockets.description": {
            "default": "L’assurance couvre 25 % de plus de la plongée."
        },
        "rewards.deep_pockets.display_name": {
            "default": "Poches profondes"
        },
        "rewards.light_step.description": {
            "default": "+15 % de vitesse pour le reste de la plongée."
        },
        "rewards.light_step.display_name": {
            "default": "Pas léger"
        },
        "rewards.quiet_halls.description": {
            "default": "Les salles contiennent 3 créatures de moins."
        },
        "rewards.quiet_halls.display_name": {
            "default": "Couloirs calmes"
        },
        "rewards.second_wind.description": {
            "default": "+25 d’endurance pour le reste de la plongée."
        },
        "rewards.second_wind.display_name": {
            "default": "Second souffle"
        },
        "rewards.sharp_eyes.description": {
            "default": "+120 de vision, utile de retour au restaurant."
        },
        "rewards.sharp_eyes.display_name": {
            "default": "Œil aiguisé"
        },
        "rewards.thick_hide.description": {
            "default": "+30 points de vie maximum pour le reste de la plongée."
        },
        "rewards.thick_hide.display_name": {
            "default": "Cuir épais"
        },
        "rewards.whetted_edge.description": {
            "default": "+20 % de dégâts d’attaque pour le reste de la plongée."
        },
        "rewards.whetted_edge.display_name": {
            "default": "Tranchant affûté"
        },
        "room_elements.alarm_camera.description": {
            "fr": "Elle marque ce qu'elle voit, et le secteur entier s'en souvient.",
            "en": "It marks what it sees, and the whole sector remembers.",
            "default": "Elle marque ce qu'elle voit, et le secteur entier s'en souvient."
        },
        "room_elements.alarm_camera.display_name": {
            "fr": "Caméra d'alarme",
            "en": "Alarm Camera",
            "default": "Caméra d'alarme"
        },
        "room_elements.ballot_box.description": {
            "fr": "Scellée, pleine, et parfaitement inutile.",
            "en": "Sealed, full, and perfectly useless.",
            "default": "Scellée, pleine, et parfaitement inutile."
        },
        "room_elements.ballot_box.display_name": {
            "fr": "Urne électorale",
            "en": "Ballot Box",
            "default": "Urne électorale"
        },
        "room_elements.black_market_stall.description": {
            "fr": "Tout y est négociable, y compris le prix affiché.",
            "en": "Everything is negotiable, including the listed price.",
            "default": "Tout y est négociable, y compris le prix affiché."
        },
        "room_elements.black_market_stall.display_name": {
            "fr": "Étal du marché noir",
            "en": "Black Market Stall",
            "default": "Étal du marché noir"
        },
        "room_elements.campaign_barricade.description": {
            "fr": "Montée en une nuit, avec du mobilier urbain et beaucoup de slogans.",
            "en": "Built overnight from street furniture and a lot of slogans.",
            "default": "Montée en une nuit, avec du mobilier urbain et beaucoup de slogans."
        },
        "room_elements.campaign_barricade.display_name": {
            "fr": "Barricade de campagne",
            "en": "Campaign Barricade",
            "default": "Barricade de campagne"
        },
        "room_elements.conveyor_crate.description": {
            "fr": "Elle avance toute seule vers un endroit qui n'existe plus.",
            "en": "It moves on its own toward a place that no longer exists.",
            "default": "Elle avance toute seule vers un endroit qui n'existe plus."
        },
        "room_elements.conveyor_crate.display_name": {
            "fr": "Caisse de convoyeur",
            "en": "Conveyor Crate",
            "default": "Caisse de convoyeur"
        },
        "room_elements.crater_vending.description": {
            "fr": "Elle rend encore la monnaie, à qui insiste.",
            "en": "It still gives change, to whoever insists.",
            "default": "Elle rend encore la monnaie, à qui insiste."
        },
        "room_elements.crater_vending.display_name": {
            "fr": "Distributrice éventrée",
            "en": "Gutted Vending Machine",
            "default": "Distributrice éventrée"
        },
        "room_elements.dice_barrel.description": {
            "fr": "Le casino-barge y range ce qu'il ne déclare pas.",
            "en": "The casino barge stores what it does not declare in here.",
            "default": "Le casino-barge y range ce qu'il ne déclare pas."
        },
        "room_elements.dice_barrel.display_name": {
            "fr": "Baril à dés",
            "en": "Dice Barrel",
            "default": "Baril à dés"
        },
        "room_elements.forgotten_tray.description": {
            "fr": "Le repas est encore dessus, et la fermeture date d'années.",
            "en": "The meal is still on it, and the closure was years ago.",
            "default": "Le repas est encore dessus, et la fermeture date d'années."
        },
        "room_elements.forgotten_tray.display_name": {
            "fr": "Plateau oublié",
            "en": "Forgotten Tray",
            "default": "Plateau oublié"
        },
        "room_elements.fuel_barrel.description": {
            "fr": "Pete l'a laissé là. Pete laisse toujours ça là.",
            "en": "Pete left it there. Pete always leaves those there.",
            "default": "Pete l'a laissé là. Pete laisse toujours ça là."
        },
        "room_elements.fuel_barrel.display_name": {
            "fr": "Baril de carburant",
            "en": "Fuel Barrel",
            "default": "Baril de carburant"
        },
        "room_elements.garbage_pile.description": {
            "fr": "Un tas que le raton-poubelle considère comme son garde-manger.",
            "en": "A pile the trash panda considers its own pantry.",
            "default": "Un tas que le raton-poubelle considère comme son garde-manger."
        },
        "room_elements.garbage_pile.display_name": {
            "fr": "Tas de déchets",
            "en": "Garbage Pile",
            "default": "Tas de déchets"
        },
        "room_elements.kmld_courier.description": {
            "fr": "Il ne dit jamais où il va, seulement d'où il revient.",
            "en": "He never says where he is going, only where he came back from.",
            "default": "Il ne dit jamais où il va, seulement d'où il revient."
        },
        "room_elements.kmld_courier.display_name": {
            "fr": "Courrier du KMLD",
            "en": "KMLD Courier",
            "default": "Courrier du KMLD"
        },
        "room_elements.mall_bench.description": {
            "fr": "Il est peut-être un banc. Il est peut-être autre chose.",
            "en": "It might be a bench. It might be something else.",
            "default": "Il est peut-être un banc. Il est peut-être autre chose."
        },
        "room_elements.mall_bench.display_name": {
            "fr": "Banc de galerie",
            "en": "Mall Bench",
            "default": "Banc de galerie"
        },
        "room_elements.picnic_table.description": {
            "fr": "Une table municipale qui n'a pas survécu à la dernière charge de dindon.",
            "en": "A municipal table that did not survive the last turkey charge.",
            "default": "Une table municipale qui n'a pas survécu à la dernière charge de dindon."
        },
        "room_elements.picnic_table.display_name": {
            "fr": "Table de pique-nique",
            "en": "Picnic Table",
            "default": "Table de pique-nique"
        },
        "room_elements.rope_coil.description": {
            "fr": "Cordage de quai empilé plus haut qu'un homme.",
            "en": "Dock rope stacked higher than a man.",
            "default": "Cordage de quai empilé plus haut qu'un homme."
        },
        "room_elements.rope_coil.display_name": {
            "fr": "Rouleau de cordage",
            "en": "Rope Coil",
            "default": "Rouleau de cordage"
        },
        "room_elements.security_turnstile.description": {
            "fr": "Il ne s'ouvre pour personne, surtout pas pour vous.",
            "en": "It opens for nobody, least of all you.",
            "default": "Il ne s'ouvre pour personne, surtout pas pour vous."
        },
        "room_elements.security_turnstile.display_name": {
            "fr": "Portique de sécurité",
            "en": "Security Turnstile",
            "default": "Portique de sécurité"
        },
        "room_elements.steam_vent.description": {
            "fr": "Les forages ont ouvert des bouches que personne ne referme.",
            "en": "The drilling opened vents nobody bothers to close.",
            "default": "Les forages ont ouvert des bouches que personne ne referme."
        },
        "room_elements.steam_vent.display_name": {
            "fr": "Évent de vapeur",
            "en": "Steam Vent",
            "default": "Évent de vapeur"
        },
        "rooms.bob_service_road.description": {
            "default": "Bob est déjà là. Bob a toujours été là."
        },
        "rooms.bob_service_road.display_name": {
            "fr": "Ancienne route de service",
            "en": "Old Service Road",
            "default": "Ancienne route de service"
        },
        "rooms.d1_l01_crater_edge.description": {
            "default": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère."
        },
        "rooms.d1_l01_crater_edge.display_name": {
            "fr": "Lisière du cratère",
            "en": "Crater Edge",
            "default": "Lisière du cratère"
        },
        "rooms.d1_l02_picnic_area.description": {
            "default": "Des tables municipales transformées en forteresses par un dindon."
        },
        "rooms.d1_l02_picnic_area.display_name": {
            "fr": "Aire de pique-nique condamnée",
            "en": "Condemned Picnic Area",
            "default": "Aire de pique-nique condamnée"
        },
        "rooms.d1_l03_wild_dump.description": {
            "default": "Le dépôt que la ville prétend avoir nettoyé deux fois."
        },
        "rooms.d1_l03_wild_dump.display_name": {
            "fr": "Dépotoir sauvage",
            "en": "Illegal Dump",
            "default": "Dépotoir sauvage"
        },
        "rooms.d1_l04_abandoned_greenhouse.description": {
            "default": "La vieille serre du Cratère, protégée par une réputation exagérée."
        },
        "rooms.d1_l04_abandoned_greenhouse.display_name": {
            "fr": "Serre abandonnée",
            "en": "Abandoned Greenhouse",
            "default": "Serre abandonnée"
        },
        "rooms.d1_l05_lower_docks.description": {
            "default": "Cordages, caisses et trous dans le plancher du quai."
        },
        "rooms.d1_l05_lower_docks.display_name": {
            "fr": "Quais bas",
            "en": "Lower Docks",
            "default": "Quais bas"
        },
        "rooms.d1_l06_sunken_drydock.description": {
            "default": "La marée monte lentement sur des carcasses couvertes de coquillages."
        },
        "rooms.d1_l06_sunken_drydock.display_name": {
            "fr": "Cale sèche engloutie",
            "en": "Sunken Dry Dock",
            "default": "Cale sèche engloutie"
        },
        "rooms.d1_l07_games_alley.description": {
            "default": "Les résultats s'affichent au décor avant que les dés n'explosent."
        },
        "rooms.d1_l07_games_alley.display_name": {
            "fr": "Allée des jeux flottants",
            "en": "Floating Games Alley",
            "default": "Allée des jeux flottants"
        },
        "rooms.d1_l08_pier_cabaret.description": {
            "default": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique."
        },
        "rooms.d1_l08_pier_cabaret.display_name": {
            "fr": "Cabaret de la jetée",
            "en": "Pier Cabaret",
            "default": "Cabaret de la jetée"
        },
        "rooms.d1_l09_warehouse_roofs.description": {
            "default": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre."
        },
        "rooms.d1_l09_warehouse_roofs.display_name": {
            "fr": "Toits des entrepôts",
            "en": "Warehouse Roofs",
            "default": "Toits des entrepôts"
        },
        "rooms.d1_l10_casino_barge.description": {
            "default": "Le pari est truqué, la sortie aussi."
        },
        "rooms.d1_l10_casino_barge.display_name": {
            "fr": "Casino-barge de Gab",
            "en": "Gab's Casino Barge",
            "default": "Casino-barge de Gab"
        },
        "rooms.d1_l11_checkpoint_boulevard.description": {
            "default": "Des unités qui avancent en petits groupes et se protègent entre elles."
        },
        "rooms.d1_l11_checkpoint_boulevard.display_name": {
            "fr": "Boulevard des checkpoints",
            "en": "Checkpoint Boulevard",
            "default": "Boulevard des checkpoints"
        },
        "rooms.d1_l12_plaza_roofs.description": {
            "default": "La menace tourne au-dessus des rues déjà encombrées."
        },
        "rooms.d1_l12_plaza_roofs.display_name": {
            "fr": "Toits de Propaganda Plaza",
            "en": "Propaganda Plaza Roofs",
            "default": "Toits de Propaganda Plaza"
        },
        "rooms.d1_l13_barricade_street.description": {
            "default": "L'arène se reconfigure pendant le combat."
        },
        "rooms.d1_l13_barricade_street.display_name": {
            "fr": "Rue des barricades",
            "en": "Barricade Street",
            "default": "Rue des barricades"
        },
        "rooms.d1_l14_propaganda_plaza.description": {
            "default": "Première confrontation: il vous reconnaît, et cela l'amuse."
        },
        "rooms.d1_l14_propaganda_plaza.display_name": {
            "fr": "Propaganda Plaza",
            "en": "Propaganda Plaza",
            "default": "Propaganda Plaza"
        },
        "rooms.d2_l01_crater_edge.description": {
            "default": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère."
        },
        "rooms.d2_l01_crater_edge.display_name": {
            "fr": "Lisière du cratère",
            "en": "Crater Edge",
            "default": "Lisière du cratère"
        },
        "rooms.d2_l02_picnic_area.description": {
            "default": "Des tables municipales transformées en forteresses par un dindon."
        },
        "rooms.d2_l02_picnic_area.display_name": {
            "fr": "Aire de pique-nique condamnée",
            "en": "Condemned Picnic Area",
            "default": "Aire de pique-nique condamnée"
        },
        "rooms.d2_l03_wild_dump.description": {
            "default": "Le dépôt que la ville prétend avoir nettoyé deux fois."
        },
        "rooms.d2_l03_wild_dump.display_name": {
            "fr": "Dépotoir sauvage",
            "en": "Illegal Dump",
            "default": "Dépotoir sauvage"
        },
        "rooms.d2_l04_abandoned_greenhouse.description": {
            "default": "La vieille serre du Cratère, protégée par une réputation exagérée."
        },
        "rooms.d2_l04_abandoned_greenhouse.display_name": {
            "fr": "Serre abandonnée",
            "en": "Abandoned Greenhouse",
            "default": "Serre abandonnée"
        },
        "rooms.d2_l05_lower_docks.description": {
            "default": "Cordages, caisses et trous dans le plancher du quai."
        },
        "rooms.d2_l05_lower_docks.display_name": {
            "fr": "Quais bas",
            "en": "Lower Docks",
            "default": "Quais bas"
        },
        "rooms.d2_l06_sunken_drydock.description": {
            "default": "La marée monte lentement sur des carcasses couvertes de coquillages."
        },
        "rooms.d2_l06_sunken_drydock.display_name": {
            "fr": "Cale sèche engloutie",
            "en": "Sunken Dry Dock",
            "default": "Cale sèche engloutie"
        },
        "rooms.d2_l07_games_alley.description": {
            "default": "Les résultats s'affichent au décor avant que les dés n'explosent."
        },
        "rooms.d2_l07_games_alley.display_name": {
            "fr": "Allée des jeux flottants",
            "en": "Floating Games Alley",
            "default": "Allée des jeux flottants"
        },
        "rooms.d2_l08_pier_cabaret.description": {
            "default": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique."
        },
        "rooms.d2_l08_pier_cabaret.display_name": {
            "fr": "Cabaret de la jetée",
            "en": "Pier Cabaret",
            "default": "Cabaret de la jetée"
        },
        "rooms.d2_l09_warehouse_roofs.description": {
            "default": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre."
        },
        "rooms.d2_l09_warehouse_roofs.display_name": {
            "fr": "Toits des entrepôts",
            "en": "Warehouse Roofs",
            "default": "Toits des entrepôts"
        },
        "rooms.d2_l10_casino_barge.description": {
            "default": "Le pari est truqué, la sortie aussi."
        },
        "rooms.d2_l10_casino_barge.display_name": {
            "fr": "Casino-barge de Gab",
            "en": "Gab's Casino Barge",
            "default": "Casino-barge de Gab"
        },
        "rooms.d2_l11_entrance_gates.description": {
            "default": "L'espace lui-même devient hostile: on passe quand la machine le permet."
        },
        "rooms.d2_l11_entrance_gates.display_name": {
            "fr": "Portiques d'entrée",
            "en": "Entrance Gates",
            "default": "Portiques d'entrée"
        },
        "rooms.d2_l12_surveillance_concourse.description": {
            "default": "Des caméras murales et des lignes de vue qui marquent les intrus."
        },
        "rooms.d2_l12_surveillance_concourse.display_name": {
            "fr": "Concourse de surveillance",
            "en": "Surveillance Concourse",
            "default": "Concourse de surveillance"
        },
        "rooms.d2_l13_brutalist_ramps.description": {
            "default": "Des couloirs massifs où l'architecture vaut mieux que la force."
        },
        "rooms.d2_l13_brutalist_ramps.display_name": {
            "fr": "Rampes brutalistes",
            "en": "Brutalist Ramps",
            "default": "Rampes brutalistes"
        },
        "rooms.d2_l14_egglympic_track.description": {
            "default": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes."
        },
        "rooms.d2_l14_egglympic_track.display_name": {
            "fr": "Piste des Egglympics",
            "en": "Egglympic Track",
            "default": "Piste des Egglympics"
        },
        "rooms.d2_l15_checkpoint_boulevard.description": {
            "default": "Des unités qui avancent en petits groupes et se protègent entre elles."
        },
        "rooms.d2_l15_checkpoint_boulevard.display_name": {
            "fr": "Boulevard des checkpoints",
            "en": "Checkpoint Boulevard",
            "default": "Boulevard des checkpoints"
        },
        "rooms.d2_l16_plaza_roofs.description": {
            "default": "La menace tourne au-dessus des rues déjà encombrées."
        },
        "rooms.d2_l16_plaza_roofs.display_name": {
            "fr": "Toits de Propaganda Plaza",
            "en": "Propaganda Plaza Roofs",
            "default": "Toits de Propaganda Plaza"
        },
        "rooms.d2_l17_barricade_street.description": {
            "default": "L'arène se reconfigure pendant le combat."
        },
        "rooms.d2_l17_barricade_street.display_name": {
            "fr": "Rue des barricades",
            "en": "Barricade Street",
            "default": "Rue des barricades"
        },
        "rooms.d2_l18_propaganda_plaza.description": {
            "default": "Deuxième confrontation: la machine a grandi entre-temps."
        },
        "rooms.d2_l18_propaganda_plaza.display_name": {
            "fr": "Propaganda Plaza",
            "en": "Propaganda Plaza",
            "default": "Propaganda Plaza"
        },
        "rooms.d3_l01_crater_edge.description": {
            "default": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère."
        },
        "rooms.d3_l01_crater_edge.display_name": {
            "fr": "Lisière du cratère",
            "en": "Crater Edge",
            "default": "Lisière du cratère"
        },
        "rooms.d3_l02_picnic_area.description": {
            "default": "Des tables municipales transformées en forteresses par un dindon."
        },
        "rooms.d3_l02_picnic_area.display_name": {
            "fr": "Aire de pique-nique condamnée",
            "en": "Condemned Picnic Area",
            "default": "Aire de pique-nique condamnée"
        },
        "rooms.d3_l03_wild_dump.description": {
            "default": "Le dépôt que la ville prétend avoir nettoyé deux fois."
        },
        "rooms.d3_l03_wild_dump.display_name": {
            "fr": "Dépotoir sauvage",
            "en": "Illegal Dump",
            "default": "Dépotoir sauvage"
        },
        "rooms.d3_l04_abandoned_greenhouse.description": {
            "default": "La vieille serre du Cratère, protégée par une réputation exagérée."
        },
        "rooms.d3_l04_abandoned_greenhouse.display_name": {
            "fr": "Serre abandonnée",
            "en": "Abandoned Greenhouse",
            "default": "Serre abandonnée"
        },
        "rooms.d3_l05_lower_docks.description": {
            "default": "Cordages, caisses et trous dans le plancher du quai."
        },
        "rooms.d3_l05_lower_docks.display_name": {
            "fr": "Quais bas",
            "en": "Lower Docks",
            "default": "Quais bas"
        },
        "rooms.d3_l06_sunken_drydock.description": {
            "default": "La marée monte lentement sur des carcasses couvertes de coquillages."
        },
        "rooms.d3_l06_sunken_drydock.display_name": {
            "fr": "Cale sèche engloutie",
            "en": "Sunken Dry Dock",
            "default": "Cale sèche engloutie"
        },
        "rooms.d3_l07_games_alley.description": {
            "default": "Les résultats s'affichent au décor avant que les dés n'explosent."
        },
        "rooms.d3_l07_games_alley.display_name": {
            "fr": "Allée des jeux flottants",
            "en": "Floating Games Alley",
            "default": "Allée des jeux flottants"
        },
        "rooms.d3_l08_pier_cabaret.description": {
            "default": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique."
        },
        "rooms.d3_l08_pier_cabaret.display_name": {
            "fr": "Cabaret de la jetée",
            "en": "Pier Cabaret",
            "default": "Cabaret de la jetée"
        },
        "rooms.d3_l09_warehouse_roofs.description": {
            "default": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre."
        },
        "rooms.d3_l09_warehouse_roofs.display_name": {
            "fr": "Toits des entrepôts",
            "en": "Warehouse Roofs",
            "default": "Toits des entrepôts"
        },
        "rooms.d3_l10_casino_barge.description": {
            "default": "Le pari est truqué, la sortie aussi."
        },
        "rooms.d3_l10_casino_barge.display_name": {
            "fr": "Casino-barge de Gab",
            "en": "Gab's Casino Barge",
            "default": "Casino-barge de Gab"
        },
        "rooms.d3_l11_entrance_gates.description": {
            "default": "L'espace lui-même devient hostile: on passe quand la machine le permet."
        },
        "rooms.d3_l11_entrance_gates.display_name": {
            "fr": "Portiques d'entrée",
            "en": "Entrance Gates",
            "default": "Portiques d'entrée"
        },
        "rooms.d3_l12_surveillance_concourse.description": {
            "default": "Des caméras murales et des lignes de vue qui marquent les intrus."
        },
        "rooms.d3_l12_surveillance_concourse.display_name": {
            "fr": "Concourse de surveillance",
            "en": "Surveillance Concourse",
            "default": "Concourse de surveillance"
        },
        "rooms.d3_l13_brutalist_ramps.description": {
            "default": "Des couloirs massifs où l'architecture vaut mieux que la force."
        },
        "rooms.d3_l13_brutalist_ramps.display_name": {
            "fr": "Rampes brutalistes",
            "en": "Brutalist Ramps",
            "default": "Rampes brutalistes"
        },
        "rooms.d3_l14_egglympic_track.description": {
            "default": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes."
        },
        "rooms.d3_l14_egglympic_track.display_name": {
            "fr": "Piste des Egglympics",
            "en": "Egglympic Track",
            "default": "Piste des Egglympics"
        },
        "rooms.d3_l15_chimney_trail.description": {
            "default": "La chaleur monte des évents selon un rythme qu'on peut lire."
        },
        "rooms.d3_l15_chimney_trail.display_name": {
            "fr": "Sentier des cheminées",
            "en": "Chimney Trail",
            "default": "Sentier des cheminées"
        },
        "rooms.d3_l16_smoking_burrows.description": {
            "default": "Le sol fissuré annonce ce qui va en sortir."
        },
        "rooms.d3_l16_smoking_burrows.display_name": {
            "fr": "Terriers fumants",
            "en": "Smoking Burrows",
            "default": "Terriers fumants"
        },
        "rooms.d3_l17_mining_walkways.description": {
            "default": "Décor destructible: une charge peut ouvrir un passage."
        },
        "rooms.d3_l17_mining_walkways.display_name": {
            "fr": "Passerelles minières",
            "en": "Mining Walkways",
            "default": "Passerelles minières"
        },
        "rooms.d3_l18_summit_sanctuary.description": {
            "default": "Le gardien croit défendre la montagne contre vous."
        },
        "rooms.d3_l18_summit_sanctuary.display_name": {
            "fr": "Sanctuaire du sommet",
            "en": "Summit Sanctuary",
            "default": "Sanctuaire du sommet"
        },
        "rooms.d3_l19_checkpoint_boulevard.description": {
            "default": "Des unités qui avancent en petits groupes et se protègent entre elles."
        },
        "rooms.d3_l19_checkpoint_boulevard.display_name": {
            "fr": "Boulevard des checkpoints",
            "en": "Checkpoint Boulevard",
            "default": "Boulevard des checkpoints"
        },
        "rooms.d3_l20_plaza_roofs.description": {
            "default": "La menace tourne au-dessus des rues déjà encombrées."
        },
        "rooms.d3_l20_plaza_roofs.display_name": {
            "fr": "Toits de Propaganda Plaza",
            "en": "Propaganda Plaza Roofs",
            "default": "Toits de Propaganda Plaza"
        },
        "rooms.d3_l21_barricade_street.description": {
            "default": "L'arène se reconfigure pendant le combat."
        },
        "rooms.d3_l21_barricade_street.display_name": {
            "fr": "Rue des barricades",
            "en": "Barricade Street",
            "default": "Rue des barricades"
        },
        "rooms.d3_l22_propaganda_plaza.description": {
            "default": "Troisième confrontation: la ville entière travaille pour lui."
        },
        "rooms.d3_l22_propaganda_plaza.display_name": {
            "fr": "Propaganda Plaza",
            "en": "Propaganda Plaza",
            "default": "Propaganda Plaza"
        },
        "rooms.d4_l01_crater_edge.description": {
            "default": "Des pins renversés et de l'herbe trop haute au bord du vieux cratère."
        },
        "rooms.d4_l01_crater_edge.display_name": {
            "fr": "Lisière du cratère",
            "en": "Crater Edge",
            "default": "Lisière du cratère"
        },
        "rooms.d4_l02_picnic_area.description": {
            "default": "Des tables municipales transformées en forteresses par un dindon."
        },
        "rooms.d4_l02_picnic_area.display_name": {
            "fr": "Aire de pique-nique condamnée",
            "en": "Condemned Picnic Area",
            "default": "Aire de pique-nique condamnée"
        },
        "rooms.d4_l03_wild_dump.description": {
            "default": "Le dépôt que la ville prétend avoir nettoyé deux fois."
        },
        "rooms.d4_l03_wild_dump.display_name": {
            "fr": "Dépotoir sauvage",
            "en": "Illegal Dump",
            "default": "Dépotoir sauvage"
        },
        "rooms.d4_l04_drainage_ditch.description": {
            "default": "Un couloir de conduites à ciel ouvert où rester immobile est une mauvaise idée."
        },
        "rooms.d4_l04_drainage_ditch.display_name": {
            "fr": "Fossé de drainage",
            "en": "Drainage Ditch",
            "default": "Fossé de drainage"
        },
        "rooms.d4_l05_abandoned_greenhouse.description": {
            "default": "La vieille serre du Cratère, protégée par une réputation exagérée."
        },
        "rooms.d4_l05_abandoned_greenhouse.display_name": {
            "fr": "Serre abandonnée",
            "en": "Abandoned Greenhouse",
            "default": "Serre abandonnée"
        },
        "rooms.d4_l06_lower_docks.description": {
            "default": "Cordages, caisses et trous dans le plancher du quai."
        },
        "rooms.d4_l06_lower_docks.display_name": {
            "fr": "Quais bas",
            "en": "Lower Docks",
            "default": "Quais bas"
        },
        "rooms.d4_l07_sunken_drydock.description": {
            "default": "La marée monte lentement sur des carcasses couvertes de coquillages."
        },
        "rooms.d4_l07_sunken_drydock.display_name": {
            "fr": "Cale sèche engloutie",
            "en": "Sunken Dry Dock",
            "default": "Cale sèche engloutie"
        },
        "rooms.d4_l08_games_alley.description": {
            "default": "Les résultats s'affichent au décor avant que les dés n'explosent."
        },
        "rooms.d4_l08_games_alley.display_name": {
            "fr": "Allée des jeux flottants",
            "en": "Floating Games Alley",
            "default": "Allée des jeux flottants"
        },
        "rooms.d4_l09_pier_cabaret.description": {
            "default": "Rideaux, éclairage de scène, et des télégraphes calés sur la musique."
        },
        "rooms.d4_l09_pier_cabaret.display_name": {
            "fr": "Cabaret de la jetée",
            "en": "Pier Cabaret",
            "default": "Cabaret de la jetée"
        },
        "rooms.d4_l10_warehouse_roofs.description": {
            "default": "Le danger vient d'au-dessus, entre deux poutres pleines de poudre."
        },
        "rooms.d4_l10_warehouse_roofs.display_name": {
            "fr": "Toits des entrepôts",
            "en": "Warehouse Roofs",
            "default": "Toits des entrepôts"
        },
        "rooms.d4_l11_lower_docks.description": {
            "default": "Cordages, caisses et trous dans le plancher du quai."
        },
        "rooms.d4_l11_lower_docks.display_name": {
            "fr": "Quais bas",
            "en": "Lower Docks",
            "default": "Quais bas"
        },
        "rooms.d4_l12_casino_barge.description": {
            "default": "Le pari est truqué, la sortie aussi."
        },
        "rooms.d4_l12_casino_barge.display_name": {
            "fr": "Casino-barge de Gab",
            "en": "Gab's Casino Barge",
            "default": "Casino-barge de Gab"
        },
        "rooms.d4_l13_entrance_gates.description": {
            "default": "L'espace lui-même devient hostile: on passe quand la machine le permet."
        },
        "rooms.d4_l13_entrance_gates.display_name": {
            "fr": "Portiques d'entrée",
            "en": "Entrance Gates",
            "default": "Portiques d'entrée"
        },
        "rooms.d4_l14_surveillance_concourse.description": {
            "default": "Des caméras murales et des lignes de vue qui marquent les intrus."
        },
        "rooms.d4_l14_surveillance_concourse.display_name": {
            "fr": "Concourse de surveillance",
            "en": "Surveillance Concourse",
            "default": "Concourse de surveillance"
        },
        "rooms.d4_l15_brutalist_ramps.description": {
            "default": "Des couloirs massifs où l'architecture vaut mieux que la force."
        },
        "rooms.d4_l15_brutalist_ramps.display_name": {
            "fr": "Rampes brutalistes",
            "en": "Brutalist Ramps",
            "default": "Rampes brutalistes"
        },
        "rooms.d4_l16_service_ducts.description": {
            "default": "Petits espaces, vagues rapides, liquide de refroidissement partout."
        },
        "rooms.d4_l16_service_ducts.display_name": {
            "fr": "Conduits de service",
            "en": "Service Ducts",
            "default": "Conduits de service"
        },
        "rooms.d4_l17_egglympic_track.description": {
            "default": "Faux départs, traces au sol, fenêtres de contre-attaque très courtes."
        },
        "rooms.d4_l17_egglympic_track.display_name": {
            "fr": "Piste des Egglympics",
            "en": "Egglympic Track",
            "default": "Piste des Egglympics"
        },
        "rooms.d4_l18_chimney_trail.description": {
            "default": "La chaleur monte des évents selon un rythme qu'on peut lire."
        },
        "rooms.d4_l18_chimney_trail.display_name": {
            "fr": "Sentier des cheminées",
            "en": "Chimney Trail",
            "default": "Sentier des cheminées"
        },
        "rooms.d4_l19_smoking_burrows.description": {
            "default": "Le sol fissuré annonce ce qui va en sortir."
        },
        "rooms.d4_l19_smoking_burrows.display_name": {
            "fr": "Terriers fumants",
            "en": "Smoking Burrows",
            "default": "Terriers fumants"
        },
        "rooms.d4_l20_mining_walkways.description": {
            "default": "Décor destructible: une charge peut ouvrir un passage."
        },
        "rooms.d4_l20_mining_walkways.display_name": {
            "fr": "Passerelles minières",
            "en": "Mining Walkways",
            "default": "Passerelles minières"
        },
        "rooms.d4_l21_rock_amphitheatre.description": {
            "default": "Une arène circulaire où le son précède l'animation."
        },
        "rooms.d4_l21_rock_amphitheatre.display_name": {
            "fr": "Amphithéâtre de roche",
            "en": "Rock Amphitheatre",
            "default": "Amphithéâtre de roche"
        },
        "rooms.d4_l22_summit_sanctuary.description": {
            "default": "Le gardien croit défendre la montagne contre vous."
        },
        "rooms.d4_l22_summit_sanctuary.display_name": {
            "fr": "Sanctuaire du sommet",
            "en": "Summit Sanctuary",
            "default": "Sanctuaire du sommet"
        },
        "rooms.d4_l23_checkpoint_boulevard.description": {
            "default": "Des unités qui avancent en petits groupes et se protègent entre elles."
        },
        "rooms.d4_l23_checkpoint_boulevard.display_name": {
            "fr": "Boulevard des checkpoints",
            "en": "Checkpoint Boulevard",
            "default": "Boulevard des checkpoints"
        },
        "rooms.d4_l24_plaza_roofs.description": {
            "default": "La menace tourne au-dessus des rues déjà encombrées."
        },
        "rooms.d4_l24_plaza_roofs.display_name": {
            "fr": "Toits de Propaganda Plaza",
            "en": "Propaganda Plaza Roofs",
            "default": "Toits de Propaganda Plaza"
        },
        "rooms.d4_l25_barricade_street.description": {
            "default": "L'arène se reconfigure pendant le combat."
        },
        "rooms.d4_l25_barricade_street.display_name": {
            "fr": "Rue des barricades",
            "en": "Barricade Street",
            "default": "Rue des barricades"
        },
        "rooms.d4_l26_campaign_hq.description": {
            "default": "Seuls ils sont médiocres; en groupe ils encerclent."
        },
        "rooms.d4_l26_campaign_hq.display_name": {
            "fr": "QG électoral improvisé",
            "en": "Improvised Campaign HQ",
            "default": "QG électoral improvisé"
        },
        "rooms.d4_l27_propaganda_plaza.description": {
            "default": "Quatrième confrontation: après elle, la route s'arrête net."
        },
        "rooms.d4_l27_propaganda_plaza.display_name": {
            "fr": "Propaganda Plaza",
            "en": "Propaganda Plaza",
            "default": "Propaganda Plaza"
        },
        "rooms.d4_l28_blockage.description": {
            "default": "Big Egg tombe, la route s'arrête net. Le seul passage encore ouvert descend sous la ville."
        },
        "rooms.d4_l28_blockage.display_name": {
            "fr": "Blocage",
            "en": "Blockage",
            "default": "Blocage"
        },
        "rooms.d4_l29_black_tunnel.description": {
            "default": "Un bruit de griffes, puis plus rien, puis le bruit de nouveau."
        },
        "rooms.d4_l29_black_tunnel.display_name": {
            "fr": "Tunnel de service noir",
            "en": "Black Service Tunnel",
            "default": "Tunnel de service noir"
        },
        "rooms.d4_l30_mall_gallery.description": {
            "default": "Les racines ont repris les vitrines, et quelque chose regarde encore."
        },
        "rooms.d4_l30_mall_gallery.display_name": {
            "fr": "Galerie commerciale envahie",
            "en": "Overgrown Mall Gallery",
            "default": "Galerie commerciale envahie"
        },
        "rooms.d4_l31_ghost_station.description": {
            "default": "Certains bancs sont trop symétriques pour être des bancs."
        },
        "rooms.d4_l31_ghost_station.display_name": {
            "fr": "Station fantôme",
            "en": "Ghost Station",
            "default": "Station fantôme"
        },
        "rooms.d4_l32_party_arcade.description": {
            "default": "Des ballons fanés et une tête qui s'incline lentement."
        },
        "rooms.d4_l32_party_arcade.display_name": {
            "fr": "Arcade de fête abandonnée",
            "en": "Abandoned Party Arcade",
            "default": "Arcade de fête abandonnée"
        },
        "rooms.d4_l33_flooded_food_court.description": {
            "default": "Des annonces jouent encore, sans source claire."
        },
        "rooms.d4_l33_flooded_food_court.display_name": {
            "fr": "Food court noyé",
            "en": "Flooded Food Court",
            "default": "Food court noyé"
        },
        "rooms.d4_l34_forgotten_birthday_room.description": {
            "default": "Personne ne sait ce qu'il était avant. Lui non plus."
        },
        "rooms.d4_l34_forgotten_birthday_room.display_name": {
            "fr": "Salle d'anniversaire oubliée",
            "en": "Forgotten Birthday Room",
            "default": "Salle d'anniversaire oubliée"
        },
        "rooms.d4_l35_master_fork.description": {
            "default": "Au fond de la ville souterraine: la fourchette maîtresse, et de quoi remonter jusqu'à la tour."
        },
        "rooms.d4_l35_master_fork.display_name": {
            "fr": "La fourchette maîtresse",
            "en": "The Master Fork",
            "default": "La fourchette maîtresse"
        },
        "rooms.d4_l36_checkpoint_boulevard.description": {
            "default": "Des unités qui avancent en petits groupes et se protègent entre elles."
        },
        "rooms.d4_l36_checkpoint_boulevard.display_name": {
            "fr": "Boulevard des checkpoints",
            "en": "Checkpoint Boulevard",
            "default": "Boulevard des checkpoints"
        },
        "rooms.d4_l37_plaza_roofs.description": {
            "default": "La menace tourne au-dessus des rues déjà encombrées."
        },
        "rooms.d4_l37_plaza_roofs.display_name": {
            "fr": "Toits de Propaganda Plaza",
            "en": "Propaganda Plaza Roofs",
            "default": "Toits de Propaganda Plaza"
        },
        "rooms.d4_l38_barricade_street.description": {
            "default": "L'arène se reconfigure pendant le combat."
        },
        "rooms.d4_l38_barricade_street.display_name": {
            "fr": "Rue des barricades",
            "en": "Barricade Street",
            "default": "Rue des barricades"
        },
        "rooms.d4_l39_campaign_hq.description": {
            "default": "Seuls ils sont médiocres; en groupe ils encerclent."
        },
        "rooms.d4_l39_campaign_hq.display_name": {
            "fr": "QG électoral improvisé",
            "en": "Improvised Campaign HQ",
            "default": "QG électoral improvisé"
        },
        "rooms.d4_l40_news_studio.description": {
            "default": "Les indicateurs mentent, les contrôles restent honnêtes."
        },
        "rooms.d4_l40_news_studio.display_name": {
            "fr": "Studio de nouvelles",
            "en": "Campaign News Studio",
            "default": "Studio de nouvelles"
        },
        "rooms.d4_l41_vertical_farm.description": {
            "default": "La cruauté industrielle, affichée en rendement plutôt qu'en sang."
        },
        "rooms.d4_l41_vertical_farm.display_name": {
            "fr": "Ferme verticale",
            "en": "Vertical Farm",
            "default": "Ferme verticale"
        },
        "rooms.d4_l42_slaughter_line.description": {
            "default": "Le niveau lui-même accélère ce qui vous charge dessus."
        },
        "rooms.d4_l42_slaughter_line.display_name": {
            "fr": "Chaîne d'abattage",
            "en": "Slaughter Line",
            "default": "Chaîne d'abattage"
        },
        "rooms.d4_l43_cattle_hall.description": {
            "default": "Les écrans affichent tout de l'animal, sauf son nom."
        },
        "rooms.d4_l43_cattle_hall.display_name": {
            "fr": "Salle de rendement bovin",
            "en": "Cattle Yield Hall",
            "default": "Salle de rendement bovin"
        },
        "rooms.d4_l44_production_greenhouses.description": {
            "default": "Entre les rangées, certaines plantes redirigent les projectiles."
        },
        "rooms.d4_l44_production_greenhouses.display_name": {
            "fr": "Serres de production",
            "en": "Production Greenhouses",
            "default": "Serres de production"
        },
        "rooms.d4_l45_compliance_lab.description": {
            "default": "APPROVED, REWORK ou REJECT: le test porte sur votre build."
        },
        "rooms.d4_l45_compliance_lab.display_name": {
            "fr": "Laboratoire de conformité",
            "en": "Compliance Lab",
            "default": "Laboratoire de conformité"
        },
        "rooms.d4_l46_executive_floors.description": {
            "default": "Tout converge ici: le port, la surveillance, l'énergie, la répression."
        },
        "rooms.d4_l46_executive_floors.display_name": {
            "fr": "Étages exécutifs",
            "en": "Executive Floors",
            "default": "Étages exécutifs"
        },
        "rooms.ft_l01_black_tunnel.description": {
            "default": "Un bruit de griffes, puis plus rien, puis le bruit de nouveau."
        },
        "rooms.ft_l01_black_tunnel.display_name": {
            "fr": "Tunnel de service noir",
            "en": "Black Service Tunnel",
            "default": "Tunnel de service noir"
        },
        "rooms.ft_l02_mall_gallery.description": {
            "default": "Les racines ont repris les vitrines, et quelque chose regarde encore."
        },
        "rooms.ft_l02_mall_gallery.display_name": {
            "fr": "Galerie commerciale envahie",
            "en": "Overgrown Mall Gallery",
            "default": "Galerie commerciale envahie"
        },
        "rooms.ft_l03_ghost_station.description": {
            "default": "Certains bancs sont trop symétriques pour être des bancs."
        },
        "rooms.ft_l03_ghost_station.display_name": {
            "fr": "Station fantôme",
            "en": "Ghost Station",
            "default": "Station fantôme"
        },
        "rooms.ft_l04_party_arcade.description": {
            "default": "Des ballons fanés et une tête qui s'incline lentement."
        },
        "rooms.ft_l04_party_arcade.display_name": {
            "fr": "Arcade de fête abandonnée",
            "en": "Abandoned Party Arcade",
            "default": "Arcade de fête abandonnée"
        },
        "rooms.ft_l05_forgotten_birthday_room.description": {
            "default": "Personne ne sait ce qu'il était avant. Lui non plus."
        },
        "rooms.ft_l05_forgotten_birthday_room.display_name": {
            "fr": "Salle d'anniversaire oubliée",
            "en": "Forgotten Birthday Room",
            "default": "Salle d'anniversaire oubliée"
        },
        "rooms.mld_republic.description": {
            "default": "Trois rues, un mégaphone, et des décrets qui changent les règles de l'arène."
        },
        "rooms.mld_republic.display_name": {
            "fr": "Grande République de MLD",
            "en": "Great Republic of MLD",
            "default": "Grande République de MLD"
        },
        "rooms.musicalo_sanctuary.description": {
            "default": "Il affirme que la musique traverse les dimensions. Personne ne le croit encore."
        },
        "rooms.musicalo_sanctuary.display_name": {
            "fr": "Sanctuaire sonore",
            "en": "Sound Sanctuary",
            "default": "Sanctuaire sonore"
        },
        "stat.attack_damage.description": {
            "default": "Final player attack damage; its base value comes from the active player profile."
        },
        "stat.attack_damage.display_name": {
            "default": "Attack Damage"
        },
        "stat.build_permit.description": {
            "fr": "Débloque le mode construction, qui réaménage la salle.",
            "en": "Unlocks the build mode that rearranges the dining room.",
            "default": "Débloque le mode construction, qui réaménage la salle."
        },
        "stat.build_permit.display_name": {
            "fr": "Permis de chantier",
            "en": "Building Permit",
            "default": "Permis de chantier"
        },
        "stat.consumable_capacity.description": {
            "default": "Nombre total de plats préparés transportables."
        },
        "stat.consumable_capacity.display_name": {
            "default": "Capacité de consommables"
        },
        "stat.consumable_slot_count.description": {
            "default": "Nombre de types de plats transportables."
        },
        "stat.consumable_slot_count.display_name": {
            "default": "Emplacements de consommables"
        },
        "stat.cook_count.description": {
            "default": "How many cooks can work the stations at once."
        },
        "stat.cook_count.display_name": {
            "default": "Cooks"
        },
        "stat.cook_idle_rate.description": {
            "default": "Fraction de la vitesse manuelle que le four conserve quand personne ne tient le bouton. 0 = il a besoin du joueur."
        },
        "stat.cook_idle_rate.display_name": {
            "default": "Unattended Cooking Rate"
        },
        "stat.cook_speed.description": {
            "default": "Multiplier applied to recipe cooking duration. 0.70 means 30 percent shorter."
        },
        "stat.cook_speed.display_name": {
            "default": "Cooking Duration Multiplier"
        },
        "stat.customer_appetite.description": {
            "default": "Nombre de repas commandés par visite. La fiche du profil fournit la base."
        },
        "stat.customer_appetite.display_name": {
            "default": "Appétit du client"
        },
        "stat.customer_cash.description": {
            "default": "Budget d'un client à son arrivée. La fiche du profil fournit la base."
        },
        "stat.customer_cash.display_name": {
            "default": "Budget du client"
        },
        "stat.customer_generosity.description": {
            "default": "Part du paiement laissée en pourboire, bonifiée par un service rapide."
        },
        "stat.customer_generosity.display_name": {
            "default": "Générosité du client"
        },
        "stat.customer_popularity_weight.description": {
            "default": "Ce que vaut un client pour la réputation. La fiche du profil fournit la base."
        },
        "stat.customer_popularity_weight.display_name": {
            "default": "Poids de réputation du client"
        },
        "stat.customer_spending.description": {
            "default": "0 pousse vers le plat le moins cher accessible, 1 vers le plus cher."
        },
        "stat.customer_spending.display_name": {
            "default": "Disposition à dépenser"
        },
        "stat.drop_count_multiplier.description": {
            "default": "Nombre moyen de jets effectu?s pour chaque ligne de butin. La partie enti?re est garantie et la partie d?cimale devient la probabilit? d?un jet suppl?mentaire."
        },
        "stat.drop_count_multiplier.display_name": {
            "default": "Multiplicateur de jets de butin"
        },
        "stat.drop_magnet_range.description": {
            "default": "Distance en pixels dans laquelle les ingr?dients libres sont attir?s vers le h?ros. Z?ro d?sactive le magn?tisme."
        },
        "stat.drop_magnet_range.display_name": {
            "default": "Portee magnetique des butins"
        },
        "stat.drop_magnet_speed.description": {
            "default": "Vitesse en pixels par seconde ? laquelle les ingr?dients attir?s se d?placent vers le h?ros."
        },
        "stat.drop_magnet_speed.display_name": {
            "default": "Vitesse magn?tique des butins"
        },
        "stat.employee_locker_count.description": {
            "fr": "Nombre de casiers d'employés débloqués. Zéro garde la fonction Employés indisponible.",
            "en": "Number of unlocked employee lockers. Zero keeps the employee function unavailable.",
            "default": "Nombre de casiers d'employés débloqués. Zéro garde la fonction Employés indisponible."
        },
        "stat.employee_locker_count.display_name": {
            "fr": "Casiers d'employés",
            "en": "Employee Lockers",
            "default": "Casiers d'employés"
        },
        "stat.equipment_slot_count.description": {
            "default": "Nombre d’objets passifs équipables."
        },
        "stat.equipment_slot_count.display_name": {
            "default": "Emplacements d'équipement"
        },
        "stat.fast_service_ratio.description": {
            "default": "Part de patience qui doit rester pour qu’un service compte comme rapide."
        },
        "stat.fast_service_ratio.display_name": {
            "default": "Seuil de service rapide"
        },
        "stat.hurtbox_margin.description": {
            "default": "Pixels ajoutés au rayon de toute hurtbox. Le curseur de permissivité des coups."
        },
        "stat.hurtbox_margin.display_name": {
            "default": "Marge de hurtbox"
        },
        "stat.insurance_rate.description": {
            "default": "Fraction des pièces et des matériaux amassés pendant la plongée qui survit à une mise hors service."
        },
        "stat.insurance_rate.display_name": {
            "default": "Assurance de plongée"
        },
        "stat.management_console.description": {
            "default": "The management console is part of the restaurant from the first day: it carries the day's menu, the open/closed switch and the hiring board. Set it to 0 to take the console away."
        },
        "stat.management_console.display_name": {
            "default": "Management Console"
        },
        "stat.max_health.description": {
            "default": "Final player health; its base value comes from the active player profile."
        },
        "stat.max_health.display_name": {
            "default": "Maximum Health"
        },
        "stat.menu_slots.description": {
            "default": "Nombre de recettes pouvant être proposées aux clients en même temps."
        },
        "stat.menu_slots.display_name": {
            "default": "Places au menu"
        },
        "stat.move_speed.description": {
            "default": "Final player movement speed; its base value comes from the active player profile."
        },
        "stat.move_speed.display_name": {
            "default": "Movement Speed"
        },
        "stat.order_board_slots.description": {
            "default": "Orders the board can hold at once. Zero means the restaurant has no board and orders live in the player's memory."
        },
        "stat.order_board_slots.display_name": {
            "default": "Order Board Slots"
        },
        "stat.order_memory_seconds.description": {
            "default": "Seconds a customer order stays readable after the player has moved out of vision range."
        },
        "stat.order_memory_seconds.display_name": {
            "default": "Order Memory"
        },
        "stat.patience.description": {
            "default": "Final patience; its base value comes from the customer profile."
        },
        "stat.patience.display_name": {
            "default": "Customer Patience"
        },
        "stat.payout.description": {
            "default": "Multiplier applied to each meal payout."
        },
        "stat.payout.display_name": {
            "default": "Meal Payout Multiplier"
        },
        "stat.plates.description": {
            "default": "Total reusable plate capacity."
        },
        "stat.plates.display_name": {
            "default": "Reusable Plates"
        },
        "stat.player_vision.description": {
            "default": "Distance in pixels within which the player can read a customer order."
        },
        "stat.player_vision.display_name": {
            "default": "Player Vision"
        },
        "stat.popularity_coef_left_closed.description": {
            "default": "Coefficient retiré quand la fermeture renvoie un client de la salle."
        },
        "stat.popularity_coef_left_closed.display_name": {
            "default": "Réputation : renvoyé par la fermeture"
        },
        "stat.popularity_coef_left_waiting.description": {
            "default": "Coefficient retiré quand un client part sans avoir été servi."
        },
        "stat.popularity_coef_left_waiting.display_name": {
            "default": "Réputation : parti sans être servi"
        },
        "stat.popularity_coef_order_changed.description": {
            "default": "Coefficient retiré quand un client doit changer de commande."
        },
        "stat.popularity_coef_order_changed.display_name": {
            "default": "Réputation : commande changée"
        },
        "stat.popularity_coef_queue_closed.description": {
            "default": "Coefficient retiré quand le rideau tombe sur une file qui attendait."
        },
        "stat.popularity_coef_queue_closed.display_name": {
            "default": "Réputation : file dispersée"
        },
        "stat.popularity_coef_queue_gave_up.description": {
            "default": "Coefficient retiré quand quelqu’un renonce à attendre dans la file."
        },
        "stat.popularity_coef_queue_gave_up.display_name": {
            "default": "Réputation : file abandonnée"
        },
        "stat.popularity_coef_served.description": {
            "default": "Coefficient appliqué quand un plat est servi."
        },
        "stat.popularity_coef_served.display_name": {
            "default": "Réputation : plat servi"
        },
        "stat.popularity_coef_served_fast.description": {
            "default": "Coefficient appliqué quand le plat arrive avant que la patience baisse."
        },
        "stat.popularity_coef_served_fast.display_name": {
            "default": "Réputation : service rapide"
        },
        "stat.popularity_coef_takeout_left.description": {
            "default": "Coefficient retiré quand un client quitte la file du comptoir."
        },
        "stat.popularity_coef_takeout_left.display_name": {
            "default": "Réputation : comptoir abandonné"
        },
        "stat.popularity_coef_takeout_served.description": {
            "default": "Coefficient appliqué à une vente au comptoir."
        },
        "stat.popularity_coef_takeout_served.display_name": {
            "default": "Réputation : vente au comptoir"
        },
        "stat.popularity_gain_multiplier.description": {
            "default": "Multiplie toutes les hausses de réputation, quelle que soit la situation."
        },
        "stat.popularity_gain_multiplier.display_name": {
            "default": "Multiplicateur des hausses"
        },
        "stat.popularity_loss_multiplier.description": {
            "default": "Multiplie toutes les baisses de réputation, quelle que soit la situation."
        },
        "stat.popularity_loss_multiplier.display_name": {
            "default": "Multiplicateur des baisses"
        },
        "stat.projectile_count_bonus.description": {
            "default": "Nombre ajouté à chaque salve d'une arme à projectile."
        },
        "stat.projectile_count_bonus.display_name": {
            "default": "Projectiles supplémentaires"
        },
        "stat.projectile_lifetime_multiplier.description": {
            "default": "Multiplicateur global du temps de vol."
        },
        "stat.projectile_lifetime_multiplier.display_name": {
            "default": "Durée des projectiles"
        },
        "stat.projectile_radius_multiplier.description": {
            "default": "Multiplicateur global du rayon de collision."
        },
        "stat.projectile_radius_multiplier.display_name": {
            "default": "Taille des projectiles"
        },
        "stat.projectile_speed_multiplier.description": {
            "default": "Multiplicateur global de vitesse de tous les projectiles du joueur."
        },
        "stat.projectile_speed_multiplier.display_name": {
            "default": "Vitesse des projectiles"
        },
        "stat.projectile_spread_multiplier.description": {
            "default": "Multiplicateur global de l'angle de dispersion."
        },
        "stat.projectile_spread_multiplier.display_name": {
            "default": "Dispersion des projectiles"
        },
        "stat.queue_capacity.description": {
            "default": "Nombre de personnes qui peuvent attendre dehors avant que les suivants passent leur chemin."
        },
        "stat.queue_capacity.display_name": {
            "default": "Capacité de la file"
        },
        "stat.repeat_meal_payout_step.description": {
            "default": "Ajouté au paiement pour chaque plat déjà mangé par le même client."
        },
        "stat.repeat_meal_payout_step.display_name": {
            "default": "Palier de plat enchaîné"
        },
        "stat.reward_choices.description": {
            "default": "Nombre de récompenses proposées après une salle nettoyée."
        },
        "stat.reward_choices.display_name": {
            "default": "Choix de récompense"
        },
        "stat.room_population_bonus.description": {
            "default": "Créatures ajoutées ou retirées à la vague d'ouverture d'une salle."
        },
        "stat.room_population_bonus.display_name": {
            "default": "Bonus de population"
        },
        "stat.secondary_weapon_slot_count.description": {
            "default": "Débloque une arme ou action secondaire sur une touche distincte."
        },
        "stat.secondary_weapon_slot_count.display_name": {
            "default": "Action secondaire"
        },
        "stat.server_count.description": {
            "default": "How many servers can work the floor at once."
        },
        "stat.server_count.display_name": {
            "default": "Servers"
        },
        "stat.shelf_count.description": {
            "default": "Nombre d'étagères de service débloquées. Zéro garde le meuble absent.",
            "fr": "Nombre d'étagères de service débloquées. Zéro garde le meuble absent.",
            "en": "Number of unlocked service shelves. Zero keeps the fixture unavailable."
        },
        "stat.shelf_count.display_name": {
            "default": "Étagères ouvertes",
            "fr": "Étagères ouvertes",
            "en": "Open Shelves"
        },
        "stat.shelf_slots.description": {
            "default": "How many plates the shelf can hold at once."
        },
        "stat.shelf_slots.display_name": {
            "default": "Shelf Slots"
        },
        "stat.sidewalk_traffic.description": {
            "default": "Nombre de personnes qui passent devant le restaurant chaque minute."
        },
        "stat.sidewalk_traffic.display_name": {
            "default": "Trafic du trottoir"
        },
        "stat.spice_station_count.description": {
            "default": "How many refining stations turn a cooked dish into a superior one."
        },
        "stat.spice_station_count.display_name": {
            "default": "Spice Stations"
        },
        "stat.stamina.description": {
            "default": "Final stamina; its base value comes from the active player profile."
        },
        "stat.stamina.display_name": {
            "default": "Dungeon Stamina"
        },
        "stat.stove_count.description": {
            "default": "How many cooking stations run in parallel."
        },
        "stat.stove_count.display_name": {
            "default": "Stoves"
        },
        "stat.superior_payout.description": {
            "default": "Sale price multiplier for a dish that came out of the spice station."
        },
        "stat.superior_payout.display_name": {
            "default": "Superior Payout"
        },
        "stat.table_count.description": {
            "default": "Nombre de tabourets ouverts au service."
        },
        "stat.table_count.display_name": {
            "default": "Tables ouvertes"
        },
        "stat.takeout_appeal.description": {
            "default": "Base chance that a passer-by wants the selected takeout dish."
        },
        "stat.takeout_appeal.display_name": {
            "default": "Takeout Appeal"
        },
        "stat.takeout_cook_speed.description": {
            "default": "Production rate multiplier while the player or a cook works at the takeout counter."
        },
        "stat.takeout_cook_speed.display_name": {
            "default": "Takeout Cooking Speed"
        },
        "stat.takeout_counter.description": {
            "default": "Set to 1 once the takeout counter by the street is installed."
        },
        "stat.takeout_counter.display_name": {
            "default": "Takeout Counter"
        },
        "stat.takeout_price_ratio.description": {
            "fr": "Part du prix de vente d'un plat facturée au comptoir takeout.",
            "en": "Part of the dish sale price charged at the takeout counter.",
            "default": "Part du prix de vente d'un plat facturée au comptoir takeout."
        },
        "stat.takeout_price_ratio.display_name": {
            "fr": "Coefficient de prix takeout",
            "en": "Takeout Price Ratio",
            "default": "Coefficient de prix takeout"
        },
        "stat.takeout_priority.description": {
            "default": "How strongly autonomous cooks prioritize replenishing takeout stock against dining-room orders."
        },
        "stat.takeout_priority.display_name": {
            "default": "Takeout Cook Priority"
        },
        "stat.takeout_queue_capacity.description": {
            "default": "How many customers may wait in the takeout line outside."
        },
        "stat.takeout_queue_capacity.display_name": {
            "default": "Takeout Queue Capacity"
        },
        "stat.takeout_service_speed.description": {
            "default": "Takeout customers served per second while finished stock is available."
        },
        "stat.takeout_service_speed.display_name": {
            "default": "Takeout Service Speed"
        },
        "stat.takeout_stock_capacity.description": {
            "default": "Maximum finished dishes accumulated for takeout."
        },
        "stat.takeout_stock_capacity.display_name": {
            "default": "Takeout Stock Capacity"
        },
        "stat.throughput_window.description": {
            "default": "Secondes d’historique récent qu’un passant regarde pour juger la vitesse de service."
        },
        "stat.throughput_window.display_name": {
            "default": "Fenêtre de service"
        },
        "stat.wave_population_bonus.description": {
            "default": "Créatures ajoutées ou retirées à chaque vague après l'ouverture."
        },
        "stat.wave_population_bonus.display_name": {
            "default": "Bonus de relève"
        },
        "stat.wave_spawn_clearance.description": {
            "default": "Distance minimale entre le joueur et une vague de relève qui arrive."
        },
        "stat.wave_spawn_clearance.display_name": {
            "default": "Dégagement de relève"
        },
        "stat.wave_trigger_bonus.description": {
            "default": "Relève le seuil déclaré de chaque vague: elle arrive avec davantage de la précédente encore debout."
        },
        "stat.wave_trigger_bonus.display_name": {
            "default": "Avance de relève"
        },
        "stat.weapon_attack_speed_multiplier.description": {
            "default": "Multiplicateur global de fréquence; la recharge est divisée par cette valeur."
        },
        "stat.weapon_attack_speed_multiplier.display_name": {
            "default": "Vitesse d'attaque des armes"
        },
        "stat.weapon_damage_multiplier.description": {
            "default": "Multiplicateur global appliqué après celui de l'arme équipée."
        },
        "stat.weapon_damage_multiplier.display_name": {
            "default": "Multiplicateur de dégâts d'arme"
        },
        "stat.weapon_knockback_multiplier.description": {
            "default": "Multiplicateur global de projection des armes."
        },
        "stat.weapon_knockback_multiplier.display_name": {
            "default": "Projection des armes"
        },
        "stat.weapon_piercing_bonus.description": {
            "default": "Corps supplémentaires traversés par les coups directs et les projectiles."
        },
        "stat.weapon_piercing_bonus.display_name": {
            "default": "Traversée des armes"
        },
        "stat.weapon_slot_count.description": {
            "default": "Une seule arme principale peut être équipée."
        },
        "stat.weapon_slot_count.display_name": {
            "default": "Arme principale"
        },
        "stat.weapon_stamina_cost_multiplier.description": {
            "default": "Multiplicateur global du coût en stamina des attaques."
        },
        "stat.weapon_stamina_cost_multiplier.display_name": {
            "default": "Coût stamina des armes"
        },
        "ui.board.empty": {
            "default": "Nothing on the board"
        },
        "ui.board.line": {
            "default": "T%d  %s"
        },
        "ui.board.title": {
            "default": "ORDERS  %d/%d"
        },
        "ui.build.busy_station": {
            "default": "This station is cooking: wait for the dish"
        },
        "ui.build.busy_table": {
            "default": "Someone is still using this seat"
        },
        "ui.build.done": {
            "default": "DONE"
        },
        "ui.build.essential_dishwasher": {
            "default": "a sink"
        },
        "ui.build.essential_stove": {
            "default": "a stove"
        },
        "ui.build.essential_table": {
            "default": "a seat"
        },
        "ui.build.essential_trash": {
            "default": "a bin"
        },
        "ui.build.hint": {
            "default": "Build mode — click a fixture, R rotates, click to place, Esc leaves"
        },
        "ui.build.inside_room": {
            "default": "Too far left: the counter must stay on the front"
        },
        "ui.build.keep_console": {
            "default": "The management console stays: it is the only way back."
        },
        "ui.build.left_of_door": {
            "default": "Keep the counter left of the main entrance"
        },
        "ui.build.needs_closed": {
            "default": "Close the dining room and the counter before rearranging."
        },
        "ui.build.needs_console": {
            "default": "The management console is not installed."
        },
        "ui.build.needs_empty": {
            "default": "Wait until everyone has left the shop before rearranging."
        },
        "ui.build.needs_fixture": {
            "fr": "Posez d'abord %s",
            "en": "Place %s first",
            "default": "Place %s first"
        },
        "ui.build.needs_permit": {
            "default": "You have no building permit yet."
        },
        "ui.build.none_left": {
            "default": "all placed"
        },
        "ui.build.nothing_held": {
            "default": "Nothing to place"
        },
        "ui.build.off_the_wall": {
            "default": "Fixtures cannot touch a wall"
        },
        "ui.build.overlap": {
            "default": "Something is already here (%s)"
        },
        "ui.build.palette": {
            "default": "TO PLACE"
        },
        "ui.build.required_by": {
            "fr": "Retirez d'abord %s",
            "en": "Remove %s first",
            "default": "Remove %s first"
        },
        "ui.build.stay_on_wall": {
            "default": "This counter stays on the street wall"
        },
        "ui.common.back": {
            "default": "BACK",
            "fr": "RETOUR"
        },
        "ui.common.cancel": {
            "default": "CANCEL",
            "fr": "ANNULER"
        },
        "ui.common.confirm": {
            "default": "CONFIRM",
            "fr": "CONFIRMER"
        },
        "ui.console.build_mode": {
            "default": "CONSTRUCTION"
        },
        "ui.console.build_tooltip": {
            "default": "Click a fixture to pick it up, R rotates, click again to place"
        },
        "ui.console.close_word": {
            "default": "CLOSE"
        },
        "ui.console.closed": {
            "default": "DINING CLOSED — open it"
        },
        "ui.console.dining": {
            "default": "DINING"
        },
        "ui.console.employee_standby": {
            "fr": "STAND-BY",
            "en": "STAND-BY",
            "default": "STAND-BY"
        },
        "ui.console.employee_working": {
            "fr": "TRAVAIL EN COURS",
            "en": "WORKING",
            "default": "WORKING"
        },
        "ui.console.hire": {
            "fr": "Engager",
            "en": "Hire",
            "default": "Hire"
        },
        "ui.console.hire_locked": {
            "default": "This one will not sign yet"
        },
        "ui.console.hire_no_coins": {
            "default": "Not enough coins to hire"
        },
        "ui.console.hire_no_locker": {
            "fr": "Posez le casier d'employés avant d'engager quelqu'un.",
            "en": "Place the employee locker before hiring anyone",
            "default": "Place the employee locker before hiring anyone"
        },
        "ui.console.hire_tooltip": {
            "fr": "Signe le contrat; l'employé commence en stand-by.",
            "en": "Signs the contract; the employee starts on stand-by",
            "default": "Signs the contract; the employee starts on stand-by"
        },
        "ui.console.ingredient_amount": {
            "default": "%d in stock"
        },
        "ui.console.ingredients_total": {
            "default": "TOTAL UNITS %d"
        },
        "ui.console.insufficient_resources": {
            "fr": "Ressources insuffisantes",
            "en": "Insufficient resources",
            "default": "Insufficient resources"
        },
        "ui.console.menu_empty": {
            "default": "Nothing can be cooked right now — the pantry is short."
        },
        "ui.console.no_slots": {
            "default": "No post is open yet — upgrades open them"
        },
        "ui.console.no_unlocked_employees": {
            "fr": "Aucun employé débloqué pour ce rôle.",
            "en": "No employee has been unlocked for this role",
            "default": "No employee has been unlocked for this role"
        },
        "ui.console.open": {
            "default": "DINING OPEN — close it"
        },
        "ui.console.open_state": {
            "default": "Restaurant: %s"
        },
        "ui.console.open_word": {
            "default": "OPEN"
        },
        "ui.console.portions_left": {
            "default": "%d left"
        },
        "ui.console.portions_tooltip": {
            "default": "How many servings the current stock still allows."
        },
        "ui.console.rate": {
            "default": "Actual throughput %.1f meals/min"
        },
        "ui.console.recipes_empty": {
            "default": "No recipe learned yet. Dive to discover ingredients."
        },
        "ui.console.section_brigade": {
            "default": "THE BRIGADE"
        },
        "ui.console.section_ingredients": {
            "default": "INGREDIENT STOCK"
        },
        "ui.console.section_menu": {
            "default": "TODAY'S MENU"
        },
        "ui.console.section_recipes": {
            "default": "RECIPE BOOK"
        },
        "ui.console.section_takeout": {
            "default": "TAKEOUT MANAGEMENT"
        },
        "ui.console.slots": {
            "default": "%s %d/%d"
        },
        "ui.console.standby": {
            "fr": "Mettre en stand-by",
            "en": "Stand by",
            "default": "Stand by"
        },
        "ui.console.standby_reason_limit": {
            "fr": "Stand-by : limite d'employés actifs atteinte.",
            "en": "Stand-by: the active employee limit was reached",
            "default": "Stand-by: the active employee limit was reached"
        },
        "ui.console.standby_reason_locker": {
            "fr": "Stand-by : le casier d'employés n'est plus sur le plancher.",
            "en": "Stand-by: the employee locker is not on the floor",
            "default": "Stand-by: the employee locker is not on the floor"
        },
        "ui.console.standby_reason_manual": {
            "fr": "Stand-by : décision du joueur.",
            "en": "Stand-by: chosen by the player",
            "default": "Stand-by: chosen by the player"
        },
        "ui.console.standby_reason_new_hire": {
            "fr": "Stand-by : vient d'être engagé.",
            "en": "Stand-by: newly hired",
            "default": "Stand-by: newly hired"
        },
        "ui.console.standby_tooltip": {
            "fr": "Conserver le contrat et libérer le poste actif.",
            "en": "Keep the contract but free the active post",
            "default": "Keep the contract but free the active post"
        },
        "ui.console.state_all_closed": {
            "default": "everything closed"
        },
        "ui.console.state_all_open": {
            "default": "everything open"
        },
        "ui.console.state_dining_only": {
            "default": "dining room only"
        },
        "ui.console.state_takeout_only": {
            "default": "takeout only"
        },
        "ui.console.switch_tooltip": {
            "default": "Closing sends the queue away without a reputation hit"
        },
        "ui.console.tab_brigade": {
            "default": "BRIGADE"
        },
        "ui.console.tab_ingredients": {
            "default": "INGREDIENTS"
        },
        "ui.console.tab_menu": {
            "default": "MENU"
        },
        "ui.console.tab_recipes": {
            "default": "RECIPES"
        },
        "ui.console.tab_takeout": {
            "default": "TAKEOUT"
        },
        "ui.console.takeout_closed": {
            "default": "TAKEOUT CLOSED — open it"
        },
        "ui.console.takeout_not_installed": {
            "default": "The takeout counter is not installed yet."
        },
        "ui.console.takeout_open": {
            "default": "TAKEOUT OPEN — close it"
        },
        "ui.console.takeout_recipe": {
            "default": "Master recipe: %s"
        },
        "ui.console.takeout_recipe_tooltip": {
            "default": "Set this as the single recipe prepared and sold at takeout"
        },
        "ui.console.takeout_restock_rule": {
            "default": "Cooks restock below %d, then continue up to %d dishes."
        },
        "ui.console.takeout_select": {
            "default": "SELECT"
        },
        "ui.console.takeout_selected": {
            "default": "SELECTED"
        },
        "ui.console.takeout_stock": {
            "default": "FINISHED STOCK %d/%d"
        },
        "ui.console.takeout_switch_tooltip": {
            "default": "The counter sells on its own as long as finished stock remains"
        },
        "ui.console.takeout_target": {
            "default": "RESTOCK UP TO %d"
        },
        "ui.console.takeout_threshold": {
            "default": "RESTOCK WHEN STOCK IS BELOW %d"
        },
        "ui.console.title": {
            "default": "MANAGEMENT DESK"
        },
        "ui.console.work": {
            "fr": "Faire travailler",
            "en": "Put to work",
            "default": "Put to work"
        },
        "ui.console.work_already_active": {
            "fr": "Cet employé travaille déjà.",
            "en": "This employee is already working",
            "default": "This employee is already working"
        },
        "ui.console.work_no_locker": {
            "fr": "Posez le casier d'employés avant de mettre quelqu'un au travail.",
            "en": "Place the employee locker before putting anyone to work",
            "default": "Place the employee locker before putting anyone to work"
        },
        "ui.console.work_no_slot": {
            "fr": "Le nombre maximal d'employés de ce rôle est déjà au travail.",
            "en": "The maximum number of employees for this role is already working",
            "default": "The maximum number of employees for this role is already working"
        },
        "ui.console.work_not_hired": {
            "fr": "Cet employé n'est pas engagé.",
            "en": "This employee has not been hired",
            "default": "This employee has not been hired"
        },
        "ui.console.work_tooltip": {
            "fr": "Affecter cet employé à un poste disponible.",
            "en": "Assign this employee to an open post",
            "default": "Assign this employee to an open post"
        },
        "ui.customer.arriving": {
            "default": "%s is arriving"
        },
        "ui.customer.eating": {
            "default": "%s is eating"
        },
        "ui.customer.leaving": {
            "default": "%s is leaving"
        },
        "ui.customer.order": {
            "default": "Order: %s"
        },
        "ui.customer.serve": {
            "default": "Serve"
        },
        "ui.customer.step_closer": {
            "default": "%s is waiting — step closer to read the order"
        },
        "ui.display.current": {
            "default": "Current: %s",
            "fr": "Actuel : %s"
        },
        "ui.display.embedded_hint": {
            "default": "The setting applies in a separate game window.",
            "fr": "Ce réglage s’applique dans une fenêtre de jeu séparée."
        },
        "ui.display.fullscreen": {
            "default": "Native fullscreen",
            "fr": "Plein écran natif"
        },
        "ui.display.hint": {
            "default": "Choose a window size or fullscreen mode.",
            "fr": "Choisissez une taille de fenêtre ou le mode plein écran."
        },
        "ui.display.title": {
            "default": "DISPLAY",
            "fr": "AFFICHAGE"
        },
        "ui.display.windowed_1080": {
            "default": "1920 × 1080 — Windowed",
            "fr": "1920 × 1080 — Fenêtré"
        },
        "ui.display.windowed_720": {
            "default": "1280 × 720 — Windowed",
            "fr": "1280 × 720 — Fenêtré"
        },
        "ui.display.windowed_900": {
            "default": "1600 × 900 — Windowed",
            "fr": "1600 × 900 — Fenêtré"
        },
        "ui.dive_result.harvest": {
            "default": "HARVEST"
        },
        "ui.dive_result.nothing": {
            "default": "Nothing brought back."
        },
        "ui.dive_result.reason_insured": {
            "default": "You went down. Your insurance brings back %d%% of the haul."
        },
        "ui.dive_result.reason_knocked_all_lost": {
            "default": "You went down. Everything gathered stays in the dungeon."
        },
        "ui.dive_result.reason_left": {
            "default": "You walked out on your own terms. Everything you gathered comes home with you."
        },
        "ui.dive_result.reason_stamina": {
            "default": "You are too exhausted to take another step. Time to head home."
        },
        "ui.dive_result.return": {
            "default": "Back to the restaurant!"
        },
        "ui.dive_result.title_knocked": {
            "default": "KNOCKED OUT!"
        },
        "ui.dive_result.title_left": {
            "default": "SAFE EXIT"
        },
        "ui.dive_result.title_stamina": {
            "default": "OUT OF ENERGY"
        },
        "ui.dungeon.boss_ahead": {
            "default": "The keeper of this dimension is waiting beyond the door."
        },
        "ui.dungeon.boss_defeated": {
            "default": "%s falls. The dimension is yours."
        },
        "ui.dungeon.boss_room": {
            "default": "BOSS"
        },
        "ui.dungeon.cleared": {
            "default": "Room cleared! Collect the loot before moving on."
        },
        "ui.dungeon.dimension_complete": {
            "default": "%s cleared. Everything but your special upgrades resets — %s begins."
        },
        "ui.dungeon.dive_end": {
            "default": "This is the last room of the dive — take the exit on the left."
        },
        "ui.dungeon.door_blocked": {
            "default": "Defeat every creature first"
        },
        "ui.dungeon.door_end": {
            "default": "END"
        },
        "ui.dungeon.door_gated": {
            "default": "SEALED"
        },
        "ui.dungeon.door_open": {
            "default": "OPEN"
        },
        "ui.dungeon.door_prompt": {
            "default": "Enter the next room"
        },
        "ui.dungeon.door_sealed": {
            "default": "SEALED"
        },
        "ui.dungeon.entered_biome": {
            "default": "%s"
        },
        "ui.dungeon.entered_room": {
            "default": "Room %d — new creatures ahead"
        },
        "ui.dungeon.entered_special": {
            "default": "%s — this room is not on the usual path"
        },
        "ui.dungeon.exit_prompt": {
            "default": "Return to the restaurant"
        },
        "ui.dungeon.gate_blocked": {
            "default": "This door answers only to the master fork. A trial has opened."
        },
        "ui.dungeon.gate_trial_ready": {
            "default": "The trial is waiting: dive again to face it."
        },
        "ui.dungeon.insured": {
            "default": "Knocked out! Insurance saved %d%% of the dive: %d coins and %d materials."
        },
        "ui.dungeon.intro": {
            "default": "Clear every creature, then take the door on the right to go deeper."
        },
        "ui.dungeon.knocked_out": {
            "default": "Knocked out! Everything gathered on this dive was lost."
        },
        "ui.dungeon.objective_boss": {
            "default": "%s — the keeper still stands | Space/A attack | Q/B dash"
        },
        "ui.dungeon.objective_boss_cleared": {
            "default": "%s defeated — take the exit on the left to bank the dive"
        },
        "ui.dungeon.objective_cleared": {
            "default": "Room %d cleared — collect the drops, then the door on the right or the exit on the left"
        },
        "ui.dungeon.objective_cleared_biome": {
            "default": "%s — room %d/%d cleared, take the door on the right"
        },
        "ui.dungeon.objective_fighting": {
            "default": "Room %d — %d creatures left | Space/A attack | Q/B dash"
        },
        "ui.dungeon.objective_fighting_biome": {
            "default": "%s — room %d/%d, %d creatures left | Space/A attack | Q/B dash"
        },
        "ui.dungeon.objective_room": {
            "default": "%s — %d creatures left | Space/A attack | Q/B dash"
        },
        "ui.dungeon.objective_room_cleared": {
            "default": "%s cleared — take the door on the right"
        },
        "ui.dungeon.out_of_stamina": {
            "default": "Out of stamina! The dive ended and every collected material was kept."
        },
        "ui.dungeon.reinforcements": {
            "default": "Reinforcements! %d more creatures."
        },
        "ui.dungeon.returned": {
            "default": "Returned safely with the dungeon loot"
        },
        "ui.dungeon.reward_prompt": {
            "default": "Pick a reward before moving on"
        },
        "ui.dungeon.reward_skip": {
            "default": "Take nothing"
        },
        "ui.dungeon.reward_subtitle": {
            "default": "It lasts until you return to the restaurant."
        },
        "ui.dungeon.reward_taken": {
            "default": "Reward taken: %s"
        },
        "ui.dungeon.reward_title": {
            "default": "Choose a reward"
        },
        "ui.dungeon.room": {
            "default": "ROOM %d"
        },
        "ui.dungeon.room_sealed": {
            "default": "This door stays shut for now."
        },
        "ui.dungeon.shortcut": {
            "default": "A shortcut! %d rooms skipped."
        },
        "ui.dungeon.trial_complete": {
            "default": "The master fork is yours. The sealed door will open."
        },
        "ui.main.continue": {
            "default": "CONTINUE",
            "fr": "CONTINUER"
        },
        "ui.main.new_game": {
            "default": "NEW GAME",
            "fr": "NOUVELLE PARTIE"
        },
        "ui.main.options": {
            "default": "OPTIONS",
            "fr": "OPTIONS"
        },
        "ui.main.quit": {
            "default": "QUIT",
            "fr": "QUITTER"
        },
        "ui.main.subtitle": {
            "default": "Build the strangest little restaurant at the edge of the deep.",
            "fr": "Bâtissez le plus étrange petit restaurant au bord des profondeurs."
        },
        "ui.main.title": {
            "default": "BIG EGG",
            "fr": "BIG EGG"
        },
        "ui.menu.column_menu": {
            "default": "ON MENU"
        },
        "ui.menu.cook_tooltip": {
            "default": "Cook this dish"
        },
        "ui.menu.count": {
            "default": "Cookable %d of %d recipes"
        },
        "ui.menu.edit_closed_tooltip": {
            "default": "Close the dining room to change today's menu"
        },
        "ui.menu.empty_cook": {
            "default": "Nothing on the menu — open the desk to put a dish back on it"
        },
        "ui.menu.hint_cook": {
            "default": "Space/A cooks the dish — Esc/B closes"
        },
        "ui.menu.locked_for": {
            "default": "%s is not unlocked yet"
        },
        "ui.menu.locked_tooltip": {
            "default": "Recipe conditions are not met"
        },
        "ui.menu.missing_for": {
            "default": "Missing ingredients for %s"
        },
        "ui.menu.missing_tooltip": {
            "default": "Missing ingredients"
        },
        "ui.menu.off_menu": {
            "default": "WITHDRAWN"
        },
        "ui.menu.offer_tooltip": {
            "default": "Offer this dish to customers"
        },
        "ui.menu.on_menu": {
            "default": "ON MENU"
        },
        "ui.menu.title_cook": {
            "default": "PICK A DISH"
        },
        "ui.options.display": {
            "default": "DISPLAY",
            "fr": "AFFICHAGE"
        },
        "ui.options.display_value": {
            "default": "%s",
            "fr": "%s"
        },
        "ui.options.language": {
            "default": "LANGUAGE",
            "fr": "LANGUE"
        },
        "ui.options.language_en": {
            "default": "ENGLISH",
            "fr": "ANGLAIS"
        },
        "ui.options.language_fr": {
            "default": "FRANÇAIS",
            "fr": "FRANÇAIS"
        },
        "ui.options.master_volume": {
            "default": "MASTER VOLUME",
            "fr": "VOLUME GÉNÉRAL"
        },
        "ui.options.off": {
            "default": "OFF",
            "fr": "DÉSACTIVÉE"
        },
        "ui.options.on": {
            "default": "ON",
            "fr": "ACTIVÉE"
        },
        "ui.options.title": {
            "default": "OPTIONS",
            "fr": "OPTIONS"
        },
        "ui.options.vsync": {
            "default": "VERTICAL SYNC",
            "fr": "SYNCHRONISATION VERTICALE"
        },
        "ui.pause.continue": {
            "default": "CONTINUE",
            "fr": "CONTINUER"
        },
        "ui.pause.options": {
            "default": "OPTIONS",
            "fr": "OPTIONS"
        },
        "ui.pause.save_failed": {
            "default": "Save failed — the game is still open.",
            "fr": "Échec de la sauvegarde — la partie reste ouverte."
        },
        "ui.pause.save_quit": {
            "default": "SAVE AND QUIT",
            "fr": "SAUVEGARDER ET QUITTER"
        },
        "ui.pause.title": {
            "default": "PAUSED",
            "fr": "PAUSE"
        },
        "ui.plate.being_eaten": {
            "default": "Meal being eaten"
        },
        "ui.plate.bring_order": {
            "default": "Bring %s a plate of %s"
        },
        "ui.plate.carry_somewhere": {
            "default": "Carry the plate to the shelf, a customer, the dishwasher or the trash"
        },
        "ui.plate.dirty": {
            "default": "dirty plate"
        },
        "ui.plate.pick_dirty": {
            "default": "Pick up"
        },
        "ui.plate.pick_up": {
            "default": "Pick up"
        },
        "ui.plate.picked_up": {
            "default": "Picked up %s"
        },
        "ui.plate.serve_wrong": {
            "default": "Wrong plate — %s ordered %s"
        },
        "ui.player.recipe_learned": {
            "fr": "Nouvelle recette apprise :",
            "en": "New recipe learned:",
            "default": "Nouvelle recette apprise :"
        },
        "ui.player.recipe_learned_name": {
            "fr": "%s !",
            "en": "%s!",
            "default": "%s !"
        },
        "ui.prompt.action_key": {
            "default": "(SPACE/A)"
        },
        "ui.prompt.console": {
            "default": "Manage"
        },
        "ui.prompt.cook": {
            "default": "Cook"
        },
        "ui.prompt.dishwasher": {
            "default": "Wash"
        },
        "ui.prompt.missing_ingredients": {
            "default": "Missing ingredients"
        },
        "ui.prompt.no_meal_to_trash": {
            "default": "No meal to throw away"
        },
        "ui.prompt.no_plate": {
            "default": "No clean plate — use dishwasher"
        },
        "ui.prompt.no_plate_to_store": {
            "default": "No plate to store"
        },
        "ui.prompt.no_plate_to_wash": {
            "default": "No plate to wash"
        },
        "ui.prompt.shelf": {
            "default": "Store"
        },
        "ui.prompt.shelf_full": {
            "default": "The shelf is full"
        },
        "ui.prompt.shelf_put": {
            "default": "Store"
        },
        "ui.prompt.spices": {
            "default": "Refine"
        },
        "ui.prompt.spices_already": {
            "default": "This meal is already refined"
        },
        "ui.prompt.spices_no_meal": {
            "default": "No meal to refine"
        },
        "ui.prompt.spices_put": {
            "default": "Refine"
        },
        "ui.prompt.spices_wrong_plate": {
            "default": "Only a finished meal can be refined"
        },
        "ui.prompt.takeout": {
            "default": "Prepare"
        },
        "ui.prompt.takeout_console": {
            "default": "Choose the takeout recipe at the management desk"
        },
        "ui.prompt.takeout_full": {
            "default": "Takeout stock is full"
        },
        "ui.prompt.takeout_prepare": {
            "default": "Prepare"
        },
        "ui.prompt.takeout_service_boost": {
            "default": "Service"
        },
        "ui.prompt.takeout_work": {
            "default": "Prepare"
        },
        "ui.prompt.trash": {
            "default": "Discard"
        },
        "ui.prompt.trash_empty_plate": {
            "default": "This plate is already empty"
        },
        "ui.prompt.trash_put": {
            "default": "Discard"
        },
        "ui.prompt.wash": {
            "default": "Wash"
        },
        "ui.prompt.wash_requires_dirty": {
            "default": "Only dirty plates can be washed"
        },
        "ui.restaurant.away_dining_dry": {
            "default": "The dining room ran out of ingredients while you were away."
        },
        "ui.restaurant.away_dining_sales": {
            "default": "Your brigade served %d meals while you were away (+%d coins)."
        },
        "ui.restaurant.away_takeout_dry": {
            "default": "The takeout counter ran dry before you came back."
        },
        "ui.restaurant.away_takeout_sales": {
            "default": "While you were out: %d takeout dishes sold, +%d coins."
        },
        "ui.restaurant.bring_dirty_plate": {
            "default": "Bring a dirty plate to the dishwasher"
        },
        "ui.restaurant.cancelled": {
            "default": "Cancelled %s — ingredients returned"
        },
        "ui.restaurant.closed": {
            "default": "Restaurant closed for the day: no meals remain"
        },
        "ui.restaurant.closed_by_hand": {
            "default": "You closed the dining room."
        },
        "ui.restaurant.closed_no_ingredients": {
            "default": "The restaurant is closed: out of ingredients."
        },
        "ui.restaurant.closed_no_recipe": {
            "default": "The restaurant is closed: no dish on the menu."
        },
        "ui.restaurant.closed_reopen_hint": {
            "default": "Reopen it from the management console."
        },
        "ui.restaurant.cooking_started": {
            "default": "Cooking %s…"
        },
        "ui.restaurant.customer_left_hungry": {
            "default": "%s left hungry"
        },
        "ui.restaurant.customer_left_last_meal": {
            "default": "%s left: the last meal is gone"
        },
        "ui.restaurant.customer_left_nothing": {
            "default": "%s left: nothing affordable is available"
        },
        "ui.restaurant.customer_seated": {
            "default": "%s is ready to order"
        },
        "ui.restaurant.dish_ready": {
            "default": "%s is ready on the stove"
        },
        "ui.restaurant.intro": {
            "default": "Customers enter from the north. Cook, serve, clear, and wash every plate."
        },
        "ui.restaurant.meal_served": {
            "default": "Meal served — clear and wash the plate to collect payment"
        },
        "ui.restaurant.menu_full": {
            "default": "Menu full — %d slots"
        },
        "ui.restaurant.missing_essentials": {
            "default": "Cannot open: the shop still needs %s."
        },
        "ui.restaurant.missing_ingredients": {
            "default": "Missing ingredients"
        },
        "ui.restaurant.no_clean_plate": {
            "default": "No clean plate available — wash a dirty plate"
        },
        "ui.restaurant.no_clean_plate_short": {
            "default": "No clean plate available"
        },
        "ui.restaurant.opened_by_hand": {
            "default": "The dining room is open again."
        },
        "ui.restaurant.payment": {
            "default": "Payment collected: +%d coins"
        },
        "ui.restaurant.payment_tip": {
            "default": "Payment collected: +%d coins, including a %d coin tip!"
        },
        "ui.restaurant.plate_stored": {
            "default": "Plate stored on the shelf"
        },
        "ui.restaurant.plate_washed": {
            "default": "Plate washed and returned to the closet"
        },
        "ui.restaurant.plates": {
            "default": "Plates %d/%d"
        },
        "ui.restaurant.queue_gave_up": {
            "default": "%s gave up waiting in line"
        },
        "ui.restaurant.queue_joined": {
            "default": "%s joined the line"
        },
        "ui.restaurant.reopened": {
            "default": "Restaurant reopened"
        },
        "ui.restaurant.shelf_full": {
            "default": "The shelf is full"
        },
        "ui.restaurant.shelf_holds": {
            "default": "The shelf holds plates you are carrying"
        },
        "ui.restaurant.snack": {
            "default": "You feel much better after a snack"
        },
        "ui.restaurant.spices_already": {
            "default": "This meal is already refined."
        },
        "ui.restaurant.spices_needs_dish": {
            "default": "Bring a plated meal to the spice station."
        },
        "ui.restaurant.spices_needs_meal": {
            "default": "Only a cooked meal can be refined."
        },
        "ui.restaurant.spices_started": {
            "default": "Refining %s..."
        },
        "ui.restaurant.takeout_boost_active": {
            "default": "You are helping takeout service: +30%."
        },
        "ui.restaurant.takeout_boost_ready": {
            "default": "You are ready to help; service will get +30% when a customer reaches the counter."
        },
        "ui.restaurant.takeout_ready": {
            "default": "%s added to takeout stock"
        },
        "ui.restaurant.takeout_selected": {
            "default": "%s selected for takeout."
        },
        "ui.restaurant.takeout_switch_blocked": {
            "default": "Sell the current takeout stock before switching recipes."
        },
        "ui.restaurant.trash_already_empty": {
            "default": "Nothing left to throw away — this plate is already dirty"
        },
        "ui.restaurant.trash_prompt_empty": {
            "default": "Carry a plate here to throw it away"
        },
        "ui.restaurant.trashed": {
            "default": "Threw away the %s — the plate stays in your hands, dirty"
        },
        "ui.role.cook": {
            "default": "Cooks"
        },
        "ui.role.server": {
            "default": "Servers"
        },
        "ui.save.continue_hint": {
            "default": "Choose one of your saved restaurants.",
            "fr": "Choisissez l’un de vos restaurants sauvegardés."
        },
        "ui.save.continue_title": {
            "default": "CONTINUE A GAME",
            "fr": "CONTINUER UNE PARTIE"
        },
        "ui.save.empty": {
            "default": "EMPTY",
            "fr": "VIDE"
        },
        "ui.save.failed": {
            "default": "The game could not be saved. Check write access and available disk space.",
            "fr": "La partie n’a pas pu être sauvegardée. Vérifiez l’accès en écriture et l’espace disque."
        },
        "ui.save.new_hint": {
            "default": "An occupied slot will ask before it is overwritten.",
            "fr": "Un slot occupé demandera confirmation avant d’être remplacé."
        },
        "ui.save.new_title": {
            "default": "CHOOSE A NEW GAME SLOT",
            "fr": "CHOISIR UN SLOT POUR LA NOUVELLE PARTIE"
        },
        "ui.save.overwrite": {
            "default": "Slot %d already contains a game. Replace it with a new one?",
            "fr": "Le slot %d contient déjà une partie. La remplacer par une nouvelle?"
        },
        "ui.save.recovered": {
            "default": "backup recovered",
            "fr": "sauvegarde de secours récupérée"
        },
        "ui.save.reset": {
            "default": "Save slot reset",
            "fr": "Slot de sauvegarde réinitialisé"
        },
        "ui.save.slot": {
            "default": "SLOT %d",
            "fr": "SLOT %d"
        },
        "ui.save.summary": {
            "default": "Dimension %d  ·  %02dh %02dm  ·  %d coins",
            "fr": "Dimension %d  ·  %02dh %02dmin  ·  %d pièces"
        },
        "ui.server_preference.bus": {
            "default": "CLEAN"
        },
        "ui.server_preference.serve": {
            "default": "TABLES"
        },
        "ui.server_preference.take_order": {
            "default": "ORDERS"
        },
        "ui.server_preference.takeout": {
            "default": "TAKEOUT"
        },
        "ui.skill.attentiveness": {
            "default": "Attentiveness"
        },
        "ui.skill.charisma": {
            "default": "Charisma"
        },
        "ui.skill.craft": {
            "default": "Craft"
        },
        "ui.skill.mise": {
            "default": "Mise en place"
        },
        "ui.skill.nose": {
            "default": "Nose"
        },
        "ui.skill.pace": {
            "default": "Pace"
        },
        "ui.skill.plating": {
            "default": "Plating"
        },
        "ui.skill.poise": {
            "default": "Poise"
        },
        "ui.skill.sight": {
            "default": "Sight"
        },
        "ui.skill.stamina": {
            "default": "Stamina"
        },
        "ui.skill.thrift": {
            "default": "Thrift"
        },
        "ui.skill.tidiness": {
            "default": "Tidiness"
        },
        "ui.skill.tray": {
            "default": "Tray"
        },
        "ui.station.console": {
            "default": "DESK"
        },
        "ui.station.console_closed": {
            "default": "CLOSED"
        },
        "ui.station.console_menu": {
            "default": "Cookable %d of %d"
        },
        "ui.station.console_open": {
            "default": "OPEN"
        },
        "ui.station.console_rate": {
            "default": "%.1f/min"
        },
        "ui.station.shelf": {
            "default": "SHELF"
        },
        "ui.station.spices": {
            "default": "SPICES"
        },
        "ui.station.stove": {
            "default": "STOVE"
        },
        "ui.station.stove_auto": {
            "default": "AUTO x%.1f"
        },
        "ui.station.stove_cooking": {
            "default": "COOKING"
        },
        "ui.station.stove_hold": {
            "default": "HOLD ACTION"
        },
        "ui.station.takeout": {
            "default": "TAKEOUT"
        },
        "ui.station.takeout_boost_ready": {
            "default": "SERVICE BOOST READY · YOU +30%"
        },
        "ui.station.takeout_helper_player": {
            "default": "YOU +30%"
        },
        "ui.station.takeout_helper_server": {
            "default": "%s +30%%"
        },
        "ui.station.takeout_service": {
            "default": "SERVICE %d%% · x%.1f"
        },
        "ui.station.takeout_stock": {
            "default": "Stock %d/%d"
        },
        "ui.station_kind.spices": {
            "default": "Spices"
        },
        "ui.station_kind.stove": {
            "default": "Stove"
        },
        "ui.station_kind.takeout": {
            "default": "Takeout"
        },
        "ui.takeout.closed_by_hand": {
            "default": "You closed the takeout counter."
        },
        "ui.takeout.closed_no_ingredients": {
            "default": "Takeout is closed: out of ingredients."
        },
        "ui.takeout.closed_no_recipe": {
            "default": "Takeout is closed: no recipe selected."
        },
        "ui.takeout.closed_no_stock": {
            "default": "Takeout is closed: nothing left to sell."
        },
        "ui.takeout.no_recipe": {
            "default": "No recipe selected"
        },
        "ui.takeout.opened_by_hand": {
            "default": "The takeout counter is open again."
        },
        "ui.upgrade.coins": {
            "default": "coins"
        },
        "ui.upgrade.conditions_unmet": {
            "default": "Upgrade conditions are not met"
        },
        "ui.upgrade.free": {
            "default": "FREE"
        },
        "ui.upgrade.hint": {
            "default": "Drag to move · Wheel to zoom · Move keys walk the tree · Click to buy · Esc/B returns"
        },
        "ui.upgrade.missing_cost": {
            "default": "Not enough: %s"
        },
        "upgrade_nodes.atk1.display_name": {
            "default": "xxx ATK+1"
        },
        "upgrade_nodes.atk1.node_text": {
            "default": "xxx ATK+1"
        },
        "upgrade_nodes.auto_stove.detailed_text": {
            "default": "Le four travaille sans main.",
            "fr": "Le four travaille sans main.",
            "en": "The stove works without a hand."
        },
        "upgrade_nodes.auto_stove.display_name": {
            "default": "Four autonome",
            "fr": "Four autonome",
            "en": "Self-Tending Stove"
        },
        "upgrade_nodes.auto_stove.node_text": {
            "default": "+40% EN AUTONOMIE",
            "fr": "+40% EN AUTONOMIE",
            "en": "+40% UNATTENDED"
        },
        "upgrade_nodes.batch_cooking.detailed_text": {
            "fr": "Le comptoir se regarnit plus vite.",
            "en": "The counter restocks faster.",
            "default": "Le comptoir se regarnit plus vite."
        },
        "upgrade_nodes.batch_cooking.display_name": {
            "fr": "Cuisson en lot",
            "en": "Batch Cooking",
            "default": "Cuisson en lot"
        },
        "upgrade_nodes.batch_cooking.node_text": {
            "fr": "+30% PRODUCTION",
            "en": "+30% PRODUCTION",
            "default": "+30% PRODUCTION"
        },
        "upgrade_nodes.berserk_grip.detailed_text": {
            "fr": "La colère tient le manche.",
            "en": "Anger grips the handle.",
            "default": "La colère tient le manche."
        },
        "upgrade_nodes.berserk_grip.display_name": {
            "fr": "Poigne enragée",
            "en": "Berserk Grip",
            "default": "Poigne enragée"
        },
        "upgrade_nodes.berserk_grip.node_text": {
            "fr": "+35% ATQ",
            "en": "+35% ATK",
            "default": "+35% ATQ"
        },
        "upgrade_nodes.big_egg_core.detailed_text": {
            "default": "Le premier éclat.",
            "fr": "Le premier éclat.",
            "en": "The first crack."
        },
        "upgrade_nodes.big_egg_core.display_name": {
            "default": "BIG EGG",
            "fr": "BIG EGG",
            "en": "BIG EGG"
        },
        "upgrade_nodes.big_egg_core.node_text": {
            "default": "BIG EGG",
            "fr": "+1 ATQ",
            "en": "+1 ATK"
        },
        "upgrade_nodes.bigger_menu.detailed_text": {
            "fr": "Le menu gagne une ligne.",
            "en": "The menu gains a line.",
            "default": "Le menu gagne une ligne."
        },
        "upgrade_nodes.bigger_menu.display_name": {
            "fr": "Grande carte",
            "en": "Bigger Menu",
            "default": "Réputation de quartier"
        },
        "upgrade_nodes.bigger_menu.node_text": {
            "fr": "+1 RECETTE",
            "en": "+1 RECIPE",
            "default": "+1 RECETTE"
        },
        "upgrade_nodes.bigger_shelf.detailed_text": {
            "default": "Trois assiettes trouvent leur place.",
            "fr": "Trois assiettes trouvent leur place.",
            "en": "Three more plates find a place."
        },
        "upgrade_nodes.bigger_shelf.display_name": {
            "default": "Étagère profonde",
            "fr": "Étagère profonde",
            "en": "Deeper Shelf"
        },
        "upgrade_nodes.bigger_shelf.node_text": {
            "default": "+3 PLACES",
            "fr": "+3 PLACES",
            "en": "+3 SLOTS"
        },
        "upgrade_nodes.boss_trophy.detailed_text": {
            "default": "La victoire se glisse dans l’addition.",
            "fr": "La victoire se glisse dans l’addition.",
            "en": "Victory finds its way onto the bill."
        },
        "upgrade_nodes.boss_trophy.display_name": {
            "default": "Trophée du gardien",
            "fr": "Trophée du gardien",
            "en": "Boss Trophy"
        },
        "upgrade_nodes.boss_trophy.node_text": {
            "default": "+0,2 GAIN BASE",
            "fr": "+0,2 GAIN BASE",
            "en": "+0.2 BASE PAYOUT"
        },
        "upgrade_nodes.brawlers_stance.detailed_text": {
            "fr": "Le corps entier frappe.",
            "en": "The whole body strikes.",
            "default": "Le corps entier frappe."
        },
        "upgrade_nodes.brawlers_stance.display_name": {
            "fr": "Garde de bagarreur",
            "en": "Brawler's Stance",
            "default": "Garde de bagarreur"
        },
        "upgrade_nodes.brawlers_stance.node_text": {
            "fr": "+20% ATQ",
            "en": "+20% ATK",
            "default": "+20% ATQ"
        },
        "upgrade_nodes.build_permit.detailed_text": {
            "fr": "La salle devient modulable.",
            "en": "The dining room becomes movable.",
            "default": "La salle devient modulable."
        },
        "upgrade_nodes.build_permit.display_name": {
            "fr": "Permis de chantier",
            "en": "Build Permit",
            "default": "Permis de chantier"
        },
        "upgrade_nodes.build_permit.node_text": {
            "fr": "MODE CONSTRUCTION",
            "en": "BUILD MODE",
            "default": "MODE CONSTRUCTION"
        },
        "upgrade_nodes.cartographer.detailed_text": {
            "fr": "Le choix s’élargit encore.",
            "en": "The choice widens again.",
            "default": "Le choix s’élargit encore."
        },
        "upgrade_nodes.cartographer.display_name": {
            "fr": "Carte clandestine",
            "en": "Underground Map",
            "default": "Carte clandestine"
        },
        "upgrade_nodes.cartographer.node_text": {
            "fr": "+1 CHOIX",
            "en": "+1 CHOICE",
            "default": "+1 CHOIX"
        },
        "upgrade_nodes.casier.detailed_text": {
            "fr": "La brigade peut enfin s’installer.",
            "en": "The brigade can finally settle in.",
            "default": "La brigade peut enfin s’installer."
        },
        "upgrade_nodes.casier.display_name": {
            "fr": "Casier d’équipe",
            "en": "Crew Locker",
            "default": "Casier d’équipe"
        },
        "upgrade_nodes.casier.node_text": {
            "fr": "+1 CASIER",
            "en": "+1 LOCKER",
            "default": "+1 CASIER"
        },
        "upgrade_nodes.comfy_chairs.detailed_text": {
            "default": "On attend mieux bien assis.",
            "fr": "On attend mieux bien assis.",
            "en": "A good seat makes waiting easier."
        },
        "upgrade_nodes.comfy_chairs.display_name": {
            "default": "Chaises confortables",
            "fr": "Chaises confortables",
            "en": "Comfy Chairs"
        },
        "upgrade_nodes.comfy_chairs.node_text": {
            "default": "+30 PATIENCE",
            "fr": "+30 PATIENCE",
            "en": "+30 PATIENCE"
        },
        "upgrade_nodes.counter_priority.detailed_text": {
            "fr": "La brigade regarnit d’abord le guichet.",
            "en": "The brigade restocks the counter first.",
            "default": "La brigade regarnit d’abord le guichet."
        },
        "upgrade_nodes.counter_priority.display_name": {
            "fr": "Priorité comptoir",
            "en": "Counter Priority",
            "default": "Priorité comptoir"
        },
        "upgrade_nodes.counter_priority.node_text": {
            "fr": "+0,5 PRIORITÉ",
            "en": "+0.5 PRIORITY",
            "default": "+0,5 PRIORITÉ"
        },
        "upgrade_nodes.crowded_halls.detailed_text": {
            "fr": "Plus de risques, plus de prises.",
            "en": "More risk, more spoils.",
            "default": "Plus de risques, plus de prises."
        },
        "upgrade_nodes.crowded_halls.display_name": {
            "fr": "Salles bondées",
            "en": "Crowded Halls",
            "default": "Salles bondées"
        },
        "upgrade_nodes.crowded_halls.node_text": {
            "fr": "+4 ENNEMIS",
            "en": "+4 ENEMIES",
            "default": "+4 ENNEMIS"
        },
        "upgrade_nodes.deep_breath.detailed_text": {
            "default": "De l’air pour la suite.",
            "fr": "De l’air pour la suite.",
            "en": "Air for what comes next."
        },
        "upgrade_nodes.deep_breath.display_name": {
            "default": "Souffle long",
            "fr": "Souffle long",
            "en": "Deep Breath"
        },
        "upgrade_nodes.deep_breath.node_text": {
            "default": "+20 ENDURANCE",
            "fr": "+20 ENDURANCE",
            "en": "+20 STAMINA"
        },
        "upgrade_nodes.deeper_counter.detailed_text": {
            "default": "Six plats attendent derrière la vitre.",
            "fr": "Six plats attendent derrière la vitre.",
            "en": "Six dishes wait behind the window."
        },
        "upgrade_nodes.deeper_counter.display_name": {
            "default": "Comptoir profond",
            "fr": "Comptoir profond",
            "en": "Deeper Counter"
        },
        "upgrade_nodes.deeper_counter.node_text": {
            "default": "+6 EN RÉSERVE",
            "fr": "+6 EN RÉSERVE",
            "en": "+6 IN STOCK"
        },
        "upgrade_nodes.dimensional_ledger.detailed_text": {
            "fr": "Ces marges survivent au prochain monde.",
            "en": "These margins survive the next world.",
            "default": "Ces marges survivent au prochain monde."
        },
        "upgrade_nodes.dimensional_ledger.display_name": {
            "fr": "Livre des dimensions",
            "en": "Dimensional Ledger",
            "default": "Livre des dimensions"
        },
        "upgrade_nodes.dimensional_ledger.node_text": {
            "fr": "+50% GAIN",
            "en": "+50% PAYOUT",
            "default": "+50% GAIN"
        },
        "upgrade_nodes.dimensional_stride.detailed_text": {
            "fr": "Cette vitesse ne s’efface plus.",
            "en": "This speed no longer fades.",
            "default": "Cette vitesse ne s’efface plus."
        },
        "upgrade_nodes.dimensional_stride.display_name": {
            "fr": "Pas sans frontière",
            "en": "Borderless Step",
            "default": "Pas sans frontière"
        },
        "upgrade_nodes.dimensional_stride.node_text": {
            "fr": "+25% VITESSE",
            "en": "+25% SPEED",
            "default": "+25% VITESSE"
        },
        "upgrade_nodes.early_alarm.detailed_text": {
            "fr": "Les renforts n’attendent plus la fin.",
            "en": "Reinforcements no longer wait.",
            "default": "Les renforts n’attendent plus la fin."
        },
        "upgrade_nodes.early_alarm.display_name": {
            "fr": "Alarme précoce",
            "en": "Early Alarm",
            "default": "Alarme précoce"
        },
        "upgrade_nodes.early_alarm.node_text": {
            "fr": "+15 pts SEUIL",
            "en": "+15 pts THRESHOLD",
            "default": "+15 pts SEUIL"
        },
        "upgrade_nodes.fancy_plating.detailed_text": {
            "default": "L’œil goûte avant la bouche.",
            "fr": "L’œil goûte avant la bouche.",
            "en": "The eye tastes first."
        },
        "upgrade_nodes.fancy_plating.display_name": {
            "default": "Dressage soigné",
            "fr": "Dressage soigné",
            "en": "Fine Plating"
        },
        "upgrade_nodes.fancy_plating.node_text": {
            "default": "+40% GAIN",
            "fr": "+40% GAIN",
            "en": "+40% PAYOUT"
        },
        "upgrade_nodes.fast_wrap.detailed_text": {
            "fr": "La file avance plus vite.",
            "en": "The line moves faster.",
            "default": "La file avance plus vite."
        },
        "upgrade_nodes.fast_wrap.display_name": {
            "fr": "Emballage vif",
            "en": "Quick Wrap",
            "default": "Emballage vif"
        },
        "upgrade_nodes.fast_wrap.node_text": {
            "fr": "+0,02 SERVICE/S",
            "en": "+0.02 SERVICE/S",
            "default": "+0,02 SERVICE/S"
        },
        "upgrade_nodes.fifth_table.detailed_text": {
            "fr": "Cinq couverts peuvent tourner.",
            "en": "Five settings can now turn over.",
            "default": "Cinq couverts peuvent tourner."
        },
        "upgrade_nodes.fifth_table.display_name": {
            "fr": "Cinquième place",
            "en": "Fifth Seat",
            "default": "Cinquième place"
        },
        "upgrade_nodes.fifth_table.node_text": {
            "fr": "+1 PLACE",
            "en": "+1 SEAT",
            "default": "+1 PLACE"
        },
        "upgrade_nodes.first_cook.detailed_text": {
            "default": "Un tablier rejoint la brigade.",
            "fr": "Un tablier rejoint la brigade.",
            "en": "An apron joins the brigade."
        },
        "upgrade_nodes.first_cook.display_name": {
            "default": "Premier cuisinier",
            "fr": "Premier cuisinier",
            "en": "First Cook"
        },
        "upgrade_nodes.first_cook.node_text": {
            "default": "+1 CUISINIER",
            "fr": "+1 CUISINIER",
            "en": "+1 COOK"
        },
        "upgrade_nodes.first_server.detailed_text": {
            "default": "Un plateau rejoint la salle.",
            "fr": "Un plateau rejoint la salle.",
            "en": "A tray joins the floor."
        },
        "upgrade_nodes.first_server.display_name": {
            "default": "Premier serveur",
            "fr": "Premier serveur",
            "en": "First Server"
        },
        "upgrade_nodes.first_server.node_text": {
            "default": "+1 SERVEUR",
            "fr": "+1 SERVEUR",
            "en": "+1 SERVER"
        },
        "upgrade_nodes.first_shelf.detailed_text": {
            "default": "Une étagère accueille enfin les assiettes prêtes.",
            "fr": "Une étagère accueille enfin les assiettes prêtes.",
            "en": "A shelf finally holds prepared plates."
        },
        "upgrade_nodes.first_shelf.display_name": {
            "default": "Étagère de service",
            "fr": "Étagère de service",
            "en": "Service Shelf"
        },
        "upgrade_nodes.first_shelf.node_text": {
            "default": "+1 ÉTAGÈRE",
            "fr": "+1 ÉTAGÈRE",
            "en": "+1 SHELF"
        },
        "upgrade_nodes.fourth_plate.detailed_text": {
            "fr": "Quatre assiettes en circulation.",
            "en": "Four plates in circulation.",
            "default": "Quatre assiettes en circulation."
        },
        "upgrade_nodes.fourth_plate.display_name": {
            "fr": "Quatrième assiette",
            "en": "Fourth Plate",
            "default": "Quatrième assiette"
        },
        "upgrade_nodes.fourth_plate.node_text": {
            "fr": "+1 ASSIETTE",
            "en": "+1 PLATE",
            "default": "+1 ASSIETTE"
        },
        "upgrade_nodes.fourth_stove.detailed_text": {
            "fr": "Le dernier feu de la ligne.",
            "en": "The last flame in the line.",
            "default": "Le dernier feu de la ligne."
        },
        "upgrade_nodes.fourth_stove.display_name": {
            "fr": "Quatrième four",
            "en": "Fourth Stove",
            "default": "Quatrième four"
        },
        "upgrade_nodes.fourth_stove.node_text": {
            "fr": "+1 FOUR",
            "en": "+1 STOVE",
            "default": "+1 FOUR"
        },
        "upgrade_nodes.fourth_table.detailed_text": {
            "fr": "Une table de plus s’anime.",
            "en": "One more table comes alive.",
            "default": "Une table de plus s’anime."
        },
        "upgrade_nodes.fourth_table.display_name": {
            "fr": "Quatrième place",
            "en": "Fourth Seat",
            "default": "Quatrième place"
        },
        "upgrade_nodes.fourth_table.node_text": {
            "fr": "+1 PLACE",
            "en": "+1 SEAT",
            "default": "+1 PLACE"
        },
        "upgrade_nodes.golden_plates.detailed_text": {
            "fr": "Un éclat qui hausse l’addition.",
            "en": "A shine that raises the bill.",
            "default": "Un éclat qui hausse l’addition."
        },
        "upgrade_nodes.golden_plates.display_name": {
            "fr": "Assiettes dorées",
            "en": "Golden Plates",
            "default": "Assiettes dorées"
        },
        "upgrade_nodes.golden_plates.node_text": {
            "fr": "+30% GAIN",
            "en": "+30% PAYOUT",
            "default": "+30% GAIN"
        },
        "upgrade_nodes.good_reputation.detailed_text": {
            "fr": "Un départ pèse moins lourd.",
            "en": "One departure weighs less.",
            "default": "Un départ pèse moins lourd."
        },
        "upgrade_nodes.good_reputation.display_name": {
            "fr": "Réputation solide",
            "en": "Solid Reputation",
            "default": "Réputation solide"
        },
        "upgrade_nodes.good_reputation.node_text": {
            "fr": "-1 PERTE/CLIENT",
            "en": "-1 LOSS/GUEST",
            "default": "-1 PERTE/CLIENT"
        },
        "upgrade_nodes.heavy_swing.detailed_text": {
            "fr": "Un geste. Tout le poids.",
            "en": "One swing. All the weight.",
            "default": "Un geste. Tout le poids."
        },
        "upgrade_nodes.heavy_swing.display_name": {
            "fr": "Coup lourd",
            "en": "Heavy Swing",
            "default": "Coup lourd"
        },
        "upgrade_nodes.heavy_swing.node_text": {
            "fr": "+14 ATQ",
            "en": "+14 ATK",
            "default": "+14 ATQ"
        },
        "upgrade_nodes.hoarders_luck.detailed_text": {
            "fr": "Le butin aime les habitués.",
            "en": "Loot favors familiar hands.",
            "default": "Le butin aime les habitués."
        },
        "upgrade_nodes.hoarders_luck.display_name": {
            "fr": "Main heureuse",
            "en": "Lucky Hand",
            "default": "Main heureuse"
        },
        "upgrade_nodes.hoarders_luck.node_text": {
            "fr": "+50% BUTIN",
            "en": "+50% LOOT",
            "default": "+50% BUTIN"
        },
        "upgrade_nodes.hot_pan.detailed_text": {
            "default": "Le feu prend de l’avance.",
            "fr": "Le feu prend de l’avance.",
            "en": "The flame gets a head start."
        },
        "upgrade_nodes.hot_pan.display_name": {
            "default": "Poêle brûlante",
            "fr": "Poêle brûlante",
            "en": "Hot Pan"
        },
        "upgrade_nodes.hot_pan.node_text": {
            "default": "-30% CUISSON",
            "fr": "-30% CUISSON",
            "en": "-30% COOK TIME"
        },
        "upgrade_nodes.hunters_eye.detailed_text": {
            "fr": "Les commandes se lisent de loin.",
            "en": "Orders read clearly from afar.",
            "default": "Les commandes se lisent de loin."
        },
        "upgrade_nodes.hunters_eye.display_name": {
            "fr": "Œil du chasseur",
            "en": "Hunter's Eye",
            "default": "Œil du chasseur"
        },
        "upgrade_nodes.hunters_eye.node_text": {
            "fr": "+120 VUE",
            "en": "+120 SIGHT",
            "default": "+120 VUE"
        },
        "upgrade_nodes.iron_stomach.detailed_text": {
            "fr": "Plus dur à mettre à terre.",
            "en": "Harder to put down.",
            "default": "Plus dur à mettre à terre."
        },
        "upgrade_nodes.iron_stomach.display_name": {
            "fr": "Estomac de fer",
            "en": "Iron Stomach",
            "default": "Estomac de fer"
        },
        "upgrade_nodes.iron_stomach.node_text": {
            "fr": "+20% PV",
            "en": "+20% HP",
            "default": "+20% PV"
        },
        "upgrade_nodes.keen_edge.detailed_text": {
            "fr": "Le fil garde son mordant.",
            "en": "The edge keeps its bite.",
            "default": "Le fil garde son mordant."
        },
        "upgrade_nodes.keen_edge.display_name": {
            "fr": "Tranchant vif",
            "en": "Keen Edge",
            "default": "Tranchant vif"
        },
        "upgrade_nodes.keen_edge.node_text": {
            "fr": "+15% ATQ",
            "en": "+15% ATK",
            "default": "+15% ATQ"
        },
        "upgrade_nodes.kitchen_mastery.detailed_text": {
            "fr": "Le geste précède la flamme.",
            "en": "The hand moves before the flame.",
            "default": "Le geste précède la flamme."
        },
        "upgrade_nodes.kitchen_mastery.display_name": {
            "fr": "Main de maître",
            "en": "Master's Hand",
            "default": "Main de maître"
        },
        "upgrade_nodes.kitchen_mastery.node_text": {
            "fr": "-15% CUISSON",
            "en": "-15% COOK TIME",
            "default": "-15% CUISSON"
        },
        "upgrade_nodes.legend_of_the_kmld.detailed_text": {
            "fr": "Le nom franchit toutes les dimensions.",
            "en": "The name crosses every dimension.",
            "default": "Le nom franchit toutes les dimensions."
        },
        "upgrade_nodes.legend_of_the_kmld.display_name": {
            "fr": "Légende du KMLD",
            "en": "Legend of the KMLD",
            "default": "Légende du KMLD"
        },
        "upgrade_nodes.legend_of_the_kmld.node_text": {
            "fr": "+100% POPULARITÉ",
            "en": "+100% POPULARITY",
            "default": "+100% POPULARITÉ"
        },
        "upgrade_nodes.long_memory.detailed_text": {
            "fr": "La rue juge sur la durée.",
            "en": "The street judges over time.",
            "default": "La rue juge sur la durée."
        },
        "upgrade_nodes.long_memory.display_name": {
            "fr": "Mémoire du quartier",
            "en": "Neighborhood Memory",
            "default": "Mémoire du quartier"
        },
        "upgrade_nodes.long_memory.node_text": {
            "fr": "+60 s D’HISTORIQUE",
            "en": "+60 s HISTORY",
            "default": "+60 s D’HISTORIQUE"
        },
        "upgrade_nodes.long_stride.detailed_text": {
            "fr": "Les couloirs raccourcissent.",
            "en": "The corridors grow shorter.",
            "default": "Les couloirs raccourcissent."
        },
        "upgrade_nodes.long_stride.display_name": {
            "fr": "Longue foulée",
            "en": "Long Stride",
            "default": "Longue foulée"
        },
        "upgrade_nodes.long_stride.node_text": {
            "fr": "+45 VITESSE",
            "en": "+45 SPEED",
            "default": "+45 VITESSE"
        },
        "upgrade_nodes.lucky_pouch.detailed_text": {
            "fr": "Un peu plus tombe à chaque chasse.",
            "en": "A little more drops each hunt.",
            "default": "Un peu plus tombe à chaque chasse."
        },
        "upgrade_nodes.lucky_pouch.display_name": {
            "fr": "Bourse chanceuse",
            "en": "Lucky Pouch",
            "default": "Bourse chanceuse"
        },
        "upgrade_nodes.lucky_pouch.node_text": {
            "fr": "+25% BUTIN",
            "en": "+25% LOOT",
            "default": "+25% BUTIN"
        },
        "upgrade_nodes.magnet_charm.detailed_text": {
            "fr": "Le butin vient à toi.",
            "en": "Loot comes to you.",
            "default": "Le butin vient à toi."
        },
        "upgrade_nodes.magnet_charm.display_name": {
            "fr": "Charme aimanté",
            "en": "Magnet Charm",
            "default": "Charme aimanté"
        },
        "upgrade_nodes.magnet_charm.node_text": {
            "fr": "+150 PORTÉE",
            "en": "+150 RANGE",
            "default": "+150 PORTÉE"
        },
        "upgrade_nodes.magnet_pull.detailed_text": {
            "fr": "Le butin accourt.",
            "en": "Loot rushes over.",
            "default": "Le butin accourt."
        },
        "upgrade_nodes.magnet_pull.display_name": {
            "fr": "Aimant vif",
            "en": "Quick Magnet",
            "default": "Aimant vif"
        },
        "upgrade_nodes.magnet_pull.node_text": {
            "fr": "+250 VITESSE",
            "en": "+250 SPEED",
            "default": "+250 VITESSE"
        },
        "upgrade_nodes.master_fork_edge.detailed_text": {
            "fr": "Son fil traverse les dimensions.",
            "en": "Its edge crosses dimensions.",
            "default": "Son fil traverse les dimensions."
        },
        "upgrade_nodes.master_fork_edge.display_name": {
            "fr": "Fourchette maîtresse",
            "en": "Master Fork",
            "default": "Fourchette maîtresse"
        },
        "upgrade_nodes.master_fork_edge.node_text": {
            "fr": "+50% ATQ",
            "en": "+50% ATK",
            "default": "+50% ATQ"
        },
        "upgrade_nodes.order_board.detailed_text": {
            "default": "La brigade partage enfin sa mémoire.",
            "fr": "La brigade partage enfin sa mémoire.",
            "en": "The brigade finally shares a memory."
        },
        "upgrade_nodes.order_board.display_name": {
            "default": "Ardoise des commandes",
            "fr": "Ardoise des commandes",
            "en": "Order Board"
        },
        "upgrade_nodes.order_board.node_text": {
            "default": "+6 COMMANDES",
            "fr": "+6 COMMANDES",
            "en": "+6 ORDERS"
        },
        "upgrade_nodes.order_memory.detailed_text": {
            "fr": "Les commandes s’effacent moins vite.",
            "en": "Orders fade more slowly.",
            "default": "Les commandes s’effacent moins vite."
        },
        "upgrade_nodes.order_memory.display_name": {
            "fr": "Mémoire des commandes",
            "en": "Order Memory",
            "default": "Mémoire des commandes"
        },
        "upgrade_nodes.order_memory.node_text": {
            "fr": "+8 s MÉMOIRE",
            "en": "+8 s MEMORY",
            "default": "+8 s MÉMOIRE"
        },
        "upgrade_nodes.patient_line.detailed_text": {
            "fr": "Un abandon laisse moins de traces.",
            "en": "A walkout leaves a smaller mark.",
            "default": "Un abandon laisse moins de traces."
        },
        "upgrade_nodes.patient_line.display_name": {
            "fr": "File indulgente",
            "en": "Forgiving Line",
            "default": "File indulgente"
        },
        "upgrade_nodes.patient_line.node_text": {
            "fr": "-0,5 SI ABANDON",
            "en": "-0.5 ON WALKOUT",
            "default": "-0,5 SI ABANDON"
        },
        "upgrade_nodes.premium_counter.detailed_text": {
            "fr": "L’emporté se rapproche du prix en salle.",
            "en": "Takeout nears the dining-room price.",
            "default": "L’emporté se rapproche du prix en salle."
        },
        "upgrade_nodes.premium_counter.display_name": {
            "fr": "Comptoir soigné",
            "en": "Polished Counter",
            "default": "Comptoir soigné"
        },
        "upgrade_nodes.premium_counter.node_text": {
            "fr": "+10 pts PRIX",
            "en": "+10 pts PRICE",
            "default": "+10 pts PRIX"
        },
        "upgrade_nodes.prep_station.detailed_text": {
            "fr": "Tout attend déjà le premier geste.",
            "en": "Everything awaits the first move.",
            "default": "Tout attend déjà le premier geste."
        },
        "upgrade_nodes.prep_station.display_name": {
            "fr": "Mise en place",
            "en": "Mise en Place",
            "default": "Mise en place"
        },
        "upgrade_nodes.prep_station.node_text": {
            "fr": "-12% CUISSON",
            "en": "-12% COOK TIME",
            "default": "-12% CUISSON"
        },
        "upgrade_nodes.pv1.display_name": {
            "default": "xxx PV+15"
        },
        "upgrade_nodes.pv1.node_text": {
            "default": "PV+15"
        },
        "upgrade_nodes.queue_line.detailed_text": {
            "fr": "Quatre clients attendent de plus.",
            "en": "Four more customers wait.",
            "default": "Quatre clients attendent de plus."
        },
        "upgrade_nodes.queue_line.display_name": {
            "fr": "File du guichet",
            "en": "Counter Line",
            "default": "File du guichet"
        },
        "upgrade_nodes.queue_line.node_text": {
            "fr": "+4 EN FILE",
            "en": "+4 IN LINE",
            "default": "+4 EN FILE"
        },
        "upgrade_nodes.queue_rope.detailed_text": {
            "fr": "La file respire davantage.",
            "en": "The line gains breathing room.",
            "default": "La file respire davantage."
        },
        "upgrade_nodes.queue_rope.display_name": {
            "fr": "Cordon de file",
            "en": "Queue Rope",
            "default": "Cordon de file"
        },
        "upgrade_nodes.queue_rope.node_text": {
            "fr": "+4 EN FILE",
            "en": "+4 IN LINE",
            "default": "+4 EN FILE"
        },
        "upgrade_nodes.quick_feet.detailed_text": {
            "default": "Un pas devant le chaos.",
            "fr": "Un pas devant le chaos.",
            "en": "One step ahead of chaos."
        },
        "upgrade_nodes.quick_feet.display_name": {
            "default": "Pieds vifs",
            "fr": "Pieds vifs",
            "en": "Quick Feet"
        },
        "upgrade_nodes.quick_feet.node_text": {
            "default": "+35 VITESSE",
            "fr": "+35 VITESSE",
            "en": "+35 SPEED"
        },
        "upgrade_nodes.rare_spices.detailed_text": {
            "default": "Chaque pincée vaut davantage.",
            "fr": "Chaque pincée vaut davantage.",
            "en": "Each pinch is worth more."
        },
        "upgrade_nodes.rare_spices.display_name": {
            "default": "Épices rares",
            "fr": "Épices rares",
            "en": "Rare Spices"
        },
        "upgrade_nodes.rare_spices.node_text": {
            "default": "+0,3 GAIN RAFFINÉ",
            "fr": "+0,3 GAIN RAFFINÉ",
            "en": "+0.3 REFINED PAYOUT"
        },
        "upgrade_nodes.relentless_waves.detailed_text": {
            "fr": "La relève arrive plus nombreuse.",
            "en": "The next wave brings more bodies.",
            "default": "La relève arrive plus nombreuse."
        },
        "upgrade_nodes.relentless_waves.display_name": {
            "fr": "Relève nombreuse",
            "en": "Crowded Reinforcements",
            "default": "Relève nombreuse"
        },
        "upgrade_nodes.relentless_waves.node_text": {
            "fr": "+3 RENFORTS",
            "en": "+3 REINFORCEMENTS",
            "default": "+3 RENFORTS"
        },
        "upgrade_nodes.rich_veins.detailed_text": {
            "fr": "Chaque victoire laisse davantage.",
            "en": "Each victory leaves more behind.",
            "default": "Chaque victoire laisse davantage."
        },
        "upgrade_nodes.rich_veins.display_name": {
            "fr": "Filons riches",
            "en": "Rich Veins",
            "default": "Filons riches"
        },
        "upgrade_nodes.rich_veins.node_text": {
            "fr": "+40% BUTIN",
            "en": "+40% LOOT",
            "default": "+40% BUTIN"
        },
        "upgrade_nodes.scout_map.detailed_text": {
            "fr": "Une récompense de plus en vue.",
            "en": "One more reward in sight.",
            "default": "Une récompense de plus en vue."
        },
        "upgrade_nodes.scout_map.display_name": {
            "fr": "Carte d’éclaireur",
            "en": "Scout Map",
            "default": "Carte d’éclaireur"
        },
        "upgrade_nodes.scout_map.node_text": {
            "fr": "+1 CHOIX",
            "en": "+1 CHOICE",
            "default": "+1 CHOIX"
        },
        "upgrade_nodes.second_cook.detailed_text": {
            "default": "Deux tabliers tiennent les fourneaux.",
            "fr": "Deux tabliers tiennent les fourneaux.",
            "en": "Two aprons work the stoves."
        },
        "upgrade_nodes.second_cook.display_name": {
            "default": "Deuxième cuisinier",
            "fr": "Deuxième cuisinier",
            "en": "Second Cook"
        },
        "upgrade_nodes.second_cook.node_text": {
            "default": "+1 CUISINIER",
            "fr": "+1 CUISINIER",
            "en": "+1 COOK"
        },
        "upgrade_nodes.second_plate.detailed_text": {
            "default": "Un couvert revient dans la ronde.",
            "fr": "Un couvert revient dans la ronde.",
            "en": "One more plate joins the cycle."
        },
        "upgrade_nodes.second_plate.display_name": {
            "default": "Deuxième assiette",
            "fr": "Deuxième assiette",
            "en": "Second Plate"
        },
        "upgrade_nodes.second_plate.node_text": {
            "default": "+1 ASSIETTE",
            "fr": "+1 ASSIETTE",
            "en": "+1 PLATE"
        },
        "upgrade_nodes.second_server.detailed_text": {
            "default": "Le service trouve son rythme.",
            "fr": "Le service trouve son rythme.",
            "en": "Service finds its rhythm."
        },
        "upgrade_nodes.second_server.display_name": {
            "default": "Deuxième serveur",
            "fr": "Deuxième serveur",
            "en": "Second Server"
        },
        "upgrade_nodes.second_server.node_text": {
            "default": "+1 SERVEUR",
            "fr": "+1 SERVEUR",
            "en": "+1 SERVER"
        },
        "upgrade_nodes.second_spice_station.detailed_text": {
            "fr": "Deux assiettes s’affinent à la fois.",
            "en": "Two plates are refined at once.",
            "default": "Deux assiettes s’affinent à la fois."
        },
        "upgrade_nodes.second_spice_station.display_name": {
            "fr": "Deuxième poste",
            "en": "Second Spice Station",
            "default": "Deuxième poste"
        },
        "upgrade_nodes.second_spice_station.node_text": {
            "fr": "+1 POSTE",
            "en": "+1 STATION",
            "default": "+1 POSTE"
        },
        "upgrade_nodes.second_stove.detailed_text": {
            "default": "Deux feux, deux plats.",
            "fr": "Deux feux, deux plats.",
            "en": "Two flames, two dishes."
        },
        "upgrade_nodes.second_stove.display_name": {
            "default": "Deuxième four",
            "fr": "Deuxième four",
            "en": "Second Stove"
        },
        "upgrade_nodes.second_stove.node_text": {
            "default": "+1 FOUR",
            "fr": "+1 FOUR",
            "en": "+1 STOVE"
        },
        "upgrade_nodes.second_table.detailed_text": {
            "default": "Une chaise de plus à servir.",
            "fr": "Une chaise de plus à servir.",
            "en": "One more chair to serve."
        },
        "upgrade_nodes.second_table.display_name": {
            "default": "Deuxième place",
            "fr": "Deuxième place",
            "en": "Second Seat"
        },
        "upgrade_nodes.second_table.node_text": {
            "default": "+1 PLACE",
            "fr": "+1 PLACE",
            "en": "+1 SEAT"
        },
        "upgrade_nodes.second_wind.detailed_text": {
            "fr": "Le souffle revient plus profond.",
            "en": "Breath returns deeper.",
            "default": "Le souffle revient plus profond."
        },
        "upgrade_nodes.second_wind.display_name": {
            "fr": "Second souffle",
            "en": "Second Wind",
            "default": "Second souffle"
        },
        "upgrade_nodes.second_wind.node_text": {
            "fr": "+30% ENDURANCE",
            "en": "+30% STAMINA",
            "default": "+30% ENDURANCE"
        },
        "upgrade_nodes.sharp_fork.detailed_text": {
            "default": "Une dent de plus au combat.",
            "fr": "Une dent de plus au combat.",
            "en": "One more tine in the fight."
        },
        "upgrade_nodes.sharp_fork.display_name": {
            "default": "Fourchette affûtée",
            "fr": "Fourchette affûtée",
            "en": "Sharp Fork"
        },
        "upgrade_nodes.sharp_fork.node_text": {
            "default": "+8 ATQ",
            "fr": "+8 ATQ",
            "en": "+8 ATK"
        },
        "upgrade_nodes.sharp_knives.detailed_text": {
            "fr": "La préparation devance le feu.",
            "en": "Preparation gets ahead of the flame.",
            "default": "La préparation devance le feu."
        },
        "upgrade_nodes.sharp_knives.display_name": {
            "fr": "Couteaux affûtés",
            "en": "Sharp Knives",
            "default": "Couteaux affûtés"
        },
        "upgrade_nodes.sharp_knives.node_text": {
            "fr": "-12% CUISSON",
            "en": "-12% COOK TIME",
            "default": "-12% CUISSON"
        },
        "upgrade_nodes.spice_station.detailed_text": {
            "default": "Le dernier geste relève le prix.",
            "fr": "Le dernier geste relève le prix.",
            "en": "The final touch raises the price."
        },
        "upgrade_nodes.spice_station.display_name": {
            "default": "Poste à épices",
            "fr": "Poste à épices",
            "en": "Spice Station"
        },
        "upgrade_nodes.spice_station.node_text": {
            "default": "+1 POSTE",
            "fr": "+1 POSTE",
            "en": "+1 STATION"
        },
        "upgrade_nodes.sta1.display_name": {
            "default": "xxx STA 1"
        },
        "upgrade_nodes.sta1.node_text": {
            "default": "STA +10"
        },
        "upgrade_nodes.steel_bones.detailed_text": {
            "fr": "Une réserve sous la peau.",
            "en": "A reserve beneath the skin.",
            "default": "Une réserve sous la peau."
        },
        "upgrade_nodes.steel_bones.display_name": {
            "fr": "Os d’acier",
            "en": "Steel Bones",
            "default": "Os d’acier"
        },
        "upgrade_nodes.steel_bones.node_text": {
            "fr": "+60 PV",
            "en": "+60 HP",
            "default": "+60 PV"
        },
        "upgrade_nodes.street_reputation.detailed_text": {
            "default": "Le plat du jour attire davantage.",
            "fr": "Le plat du jour attire davantage.",
            "en": "The daily dish draws a bigger crowd."
        },
        "upgrade_nodes.street_reputation.display_name": {
            "default": "Appel du guichet",
            "fr": "Appel du guichet",
            "en": "Window Appeal"
        },
        "upgrade_nodes.street_reputation.node_text": {
            "default": "+20 pts ATTRAIT",
            "fr": "+20 pts ATTRAIT",
            "en": "+20 pts APPEAL"
        },
        "upgrade_nodes.street_sign.detailed_text": {
            "fr": "La rue lève les yeux.",
            "en": "The street looks up.",
            "default": "La rue lève les yeux."
        },
        "upgrade_nodes.street_sign.display_name": {
            "fr": "Enseigne de rue",
            "en": "Street Sign",
            "default": "Enseigne de rue"
        },
        "upgrade_nodes.street_sign.node_text": {
            "fr": "+8 PASSANTS/MIN",
            "en": "+8 PASSERS/MIN",
            "default": "+8 PASSANTS/MIN"
        },
        "upgrade_nodes.street_window.detailed_text": {
            "default": "La cuisine s’ouvre au trottoir.",
            "fr": "La cuisine s’ouvre au trottoir.",
            "en": "The kitchen opens onto the sidewalk."
        },
        "upgrade_nodes.street_window.display_name": {
            "default": "Guichet sur rue",
            "fr": "Guichet sur rue",
            "en": "Street Window"
        },
        "upgrade_nodes.street_window.node_text": {
            "default": "COMPTOIR OUVERT",
            "fr": "COMPTOIR OUVERT",
            "en": "COUNTER OPEN"
        },
        "upgrade_nodes.sturdy_shell.detailed_text": {
            "default": "La coquille tient.",
            "fr": "La coquille tient.",
            "en": "The shell holds."
        },
        "upgrade_nodes.sturdy_shell.display_name": {
            "default": "Coquille solide",
            "fr": "Coquille solide",
            "en": "Sturdy Shell"
        },
        "upgrade_nodes.sturdy_shell.node_text": {
            "default": "+30 PV",
            "fr": "+30 PV",
            "en": "+30 HP"
        },
        "upgrade_nodes.survivor_insurance.detailed_text": {
            "fr": "Une chute épargne une part du butin.",
            "en": "A fall spares part of the loot.",
            "default": "Une chute épargne une part du butin."
        },
        "upgrade_nodes.survivor_insurance.display_name": {
            "fr": "Assurance du survivant",
            "en": "Survivor's Insurance",
            "default": "Assurance du survivant"
        },
        "upgrade_nodes.survivor_insurance.node_text": {
            "fr": "+30% SAUVÉ",
            "en": "+30% SAVED",
            "default": "+30% SAUVÉ"
        },
        "upgrade_nodes.tempered_blade.detailed_text": {
            "fr": "Le fil sort du feu.",
            "en": "The edge leaves the fire.",
            "default": "Le fil sort du feu."
        },
        "upgrade_nodes.tempered_blade.display_name": {
            "fr": "Lame trempée",
            "en": "Tempered Blade",
            "default": "Lame trempée"
        },
        "upgrade_nodes.tempered_blade.node_text": {
            "fr": "+40 ATQ",
            "en": "+40 ATK",
            "default": "+40 ATQ"
        },
        "upgrade_nodes.thick_hide.detailed_text": {
            "fr": "Encore debout.",
            "en": "Still standing.",
            "default": "Encore debout."
        },
        "upgrade_nodes.thick_hide.display_name": {
            "fr": "Peau dure",
            "en": "Thick Hide",
            "default": "Peau dure"
        },
        "upgrade_nodes.thick_hide.node_text": {
            "fr": "+120 PV",
            "en": "+120 HP",
            "default": "+120 PV"
        },
        "upgrade_nodes.third_cook.detailed_text": {
            "fr": "La brigade prend son rythme.",
            "en": "The brigade finds its rhythm.",
            "default": "La brigade prend son rythme."
        },
        "upgrade_nodes.third_cook.display_name": {
            "fr": "Troisième cuisinier",
            "en": "Third Cook",
            "default": "Troisième cuisinier"
        },
        "upgrade_nodes.third_cook.node_text": {
            "fr": "+1 CUISINIER",
            "en": "+1 COOK",
            "default": "+1 CUISINIER"
        },
        "upgrade_nodes.third_plate.detailed_text": {
            "default": "La plonge gagne du souffle.",
            "fr": "La plonge gagne du souffle.",
            "en": "The sink gains breathing room."
        },
        "upgrade_nodes.third_plate.display_name": {
            "default": "Troisième assiette",
            "fr": "Troisième assiette",
            "en": "Third Plate"
        },
        "upgrade_nodes.third_plate.node_text": {
            "default": "+1 ASSIETTE",
            "fr": "+1 ASSIETTE",
            "en": "+1 PLATE"
        },
        "upgrade_nodes.third_server.detailed_text": {
            "fr": "La salle tourne en brigade.",
            "en": "The floor runs as a brigade.",
            "default": "La salle tourne en brigade."
        },
        "upgrade_nodes.third_server.display_name": {
            "fr": "Troisième serveur",
            "en": "Third Server",
            "default": "Troisième serveur"
        },
        "upgrade_nodes.third_server.node_text": {
            "fr": "+1 SERVEUR",
            "en": "+1 SERVER",
            "default": "+1 SERVEUR"
        },
        "upgrade_nodes.third_stove.detailed_text": {
            "fr": "Un troisième feu s’allume.",
            "en": "A third flame lights.",
            "default": "Un troisième feu s’allume."
        },
        "upgrade_nodes.third_stove.display_name": {
            "fr": "Troisième four",
            "en": "Third Stove",
            "default": "Troisième four"
        },
        "upgrade_nodes.third_stove.node_text": {
            "fr": "+1 FOUR",
            "en": "+1 STOVE",
            "default": "+1 FOUR"
        },
        "upgrade_nodes.third_table.detailed_text": {
            "default": "La salle s’élargit.",
            "fr": "La salle s’élargit.",
            "en": "The dining room widens."
        },
        "upgrade_nodes.third_table.display_name": {
            "default": "Troisième place",
            "fr": "Troisième place",
            "en": "Third Seat"
        },
        "upgrade_nodes.third_table.node_text": {
            "default": "+1 PLACE",
            "fr": "+1 PLACE",
            "en": "+1 SEAT"
        },
        "upgrade_nodes.titan_frame.detailed_text": {
            "fr": "Une masse qui refuse de tomber.",
            "en": "A mass that refuses to fall.",
            "default": "Une masse qui refuse de tomber."
        },
        "upgrade_nodes.titan_frame.display_name": {
            "fr": "Carrure de titan",
            "en": "Titan Frame",
            "default": "Carrure de titan"
        },
        "upgrade_nodes.titan_frame.node_text": {
            "fr": "+40% PV",
            "en": "+40% HP",
            "default": "+40% PV"
        },
        "upgrade_nodes.veteran_grip.detailed_text": {
            "fr": "Le manche se souvient des combats.",
            "en": "The handle remembers every fight.",
            "default": "Le manche se souvient des combats."
        },
        "upgrade_nodes.veteran_grip.display_name": {
            "fr": "Poigne de vétéran",
            "en": "Veteran's Grip",
            "default": "Poigne de vétéran"
        },
        "upgrade_nodes.veteran_grip.node_text": {
            "fr": "+80 ATQ",
            "en": "+80 ATK",
            "default": "+80 ATQ"
        },
        "upgrade_nodes.wall_shelf.detailed_text": {
            "fr": "La vaisselle gagne les murs.",
            "en": "The plates climb the walls.",
            "default": "La vaisselle gagne les murs."
        },
        "upgrade_nodes.wall_shelf.display_name": {
            "fr": "Étagère murale",
            "en": "Wall Shelf",
            "default": "Étagère murale"
        },
        "upgrade_nodes.wall_shelf.node_text": {
            "fr": "+4 PLACES",
            "en": "+4 SLOTS",
            "default": "+4 PLACES"
        },
        "upgrade_nodes.wider_board.detailed_text": {
            "fr": "Huit lignes pour garder le fil.",
            "en": "Eight lines to keep the thread.",
            "default": "Huit lignes pour garder le fil."
        },
        "upgrade_nodes.wider_board.display_name": {
            "fr": "Grande ardoise",
            "en": "Bigger Board",
            "default": "Grande ardoise"
        },
        "upgrade_nodes.wider_board.node_text": {
            "fr": "+8 COMMANDES",
            "en": "+8 ORDERS",
            "default": "+8 COMMANDES"
        },
        "upgrade_nodes.wider_menu.detailed_text": {
            "default": "Un plat de plus au menu.",
            "fr": "Un plat de plus au menu.",
            "en": "One more dish on the menu."
        },
        "upgrade_nodes.wider_menu.display_name": {
            "default": "Bouche à oreille",
            "fr": "Carte élargie",
            "en": "Wider Menu"
        },
        "upgrade_nodes.wider_menu.node_text": {
            "default": "+1 RECETTE",
            "fr": "+1 RECETTE",
            "en": "+1 RECIPE"
        },
        "upgrade_nodes.word_of_mouth.detailed_text": {
            "fr": "Les bonnes tables voyagent par la voix.",
            "en": "Good tables travel by word of mouth.",
            "default": "Les bonnes tables voyagent par la voix."
        },
        "upgrade_nodes.word_of_mouth.display_name": {
            "fr": "Bouche-à-oreille",
            "en": "Word of Mouth",
            "default": "Bouche-à-oreille"
        },
        "upgrade_nodes.word_of_mouth.node_text": {
            "fr": "+1,5 POP./PLAT",
            "en": "+1.5 POP./DISH",
            "default": "+1,5 POP./PLAT"
        },
        "upgrade_nodes.xxxtransit.display_name": {
            "default": "xxx transit"
        },
        "upgrade_nodes.xxxtransit.node_text": {
            "default": "xxx transit"
        },
        "upgrade_themes.combat_crimson.display_name": {
            "fr": "Combat fuchsia",
            "en": "Combat fuchsia"
        },
        "upgrade_themes.core_cyan.display_name": {
            "fr": "Cyan central",
            "en": "Cyan central"
        },
        "upgrade_themes.exploration_blue.display_name": {
            "fr": "Exploration azur",
            "en": "Exploration azur"
        },
        "upgrade_themes.kitchen_amber.display_name": {
            "fr": "Cuisine ambre",
            "en": "Cuisine ambre"
        },
        "upgrade_themes.service_green.display_name": {
            "fr": "Service acier",
            "en": "Service acier"
        },
        "upgrade_themes.special_violet.display_name": {
            "fr": "Spécial violet",
            "en": "Spécial violet"
        },
        "visuals.abominable_party_man_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.abominable_party_man_idle.display_name": {
            "fr": "Abominable homme des parties — repos",
            "en": "Abominable homme des parties — idle",
            "default": "Abominable homme des parties — repos"
        },
        "visuals.abominable_party_man_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.abominable_party_man_walk.display_name": {
            "fr": "Abominable homme des parties — marche",
            "en": "Abominable homme des parties — walk",
            "default": "Abominable homme des parties — marche"
        },
        "visuals.attack_turkey_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.attack_turkey_idle.display_name": {
            "fr": "Dindon d'assaut — repos",
            "en": "Dindon d'assaut — idle",
            "default": "Dindon d'assaut — repos"
        },
        "visuals.attack_turkey_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.attack_turkey_walk.display_name": {
            "fr": "Dindon d'assaut — marche",
            "en": "Dindon d'assaut — walk",
            "default": "Dindon d'assaut — marche"
        },
        "visuals.barnacle_brute_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.barnacle_brute_idle.display_name": {
            "fr": "Brute aux bernacles — repos",
            "en": "Brute aux bernacles — idle",
            "default": "Brute aux bernacles — repos"
        },
        "visuals.barnacle_brute_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.barnacle_brute_walk.display_name": {
            "fr": "Brute aux bernacles — marche",
            "en": "Brute aux bernacles — walk",
            "default": "Brute aux bernacles — marche"
        },
        "visuals.barricade_boar_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.barricade_boar_idle.display_name": {
            "fr": "Sanglier de barricade — repos",
            "en": "Sanglier de barricade — idle",
            "default": "Sanglier de barricade — repos"
        },
        "visuals.barricade_boar_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.barricade_boar_walk.display_name": {
            "fr": "Sanglier de barricade — marche",
            "en": "Sanglier de barricade — walk",
            "default": "Sanglier de barricade — marche"
        },
        "visuals.battery_hen_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.battery_hen_idle.display_name": {
            "fr": "Poule-batterie — repos",
            "en": "Poule-batterie — idle",
            "default": "Poule-batterie — repos"
        },
        "visuals.battery_hen_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.battery_hen_walk.display_name": {
            "fr": "Poule-batterie — marche",
            "en": "Poule-batterie — walk",
            "default": "Poule-batterie — marche"
        },
        "visuals.big_big_egg_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_big_egg_idle.display_name": {
            "fr": "BIG BIG EGG — repos",
            "en": "BIG BIG EGG — idle",
            "default": "BIG BIG EGG — repos"
        },
        "visuals.big_big_egg_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_big_egg_walk.display_name": {
            "fr": "BIG BIG EGG — marche",
            "en": "BIG BIG EGG — walk",
            "default": "BIG BIG EGG — marche"
        },
        "visuals.big_egg_four_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_four_idle.display_name": {
            "fr": "Big Egg — quatrième confrontation — repos",
            "en": "Big Egg — quatrième confrontation — idle",
            "default": "Big Egg — quatrième confrontation — repos"
        },
        "visuals.big_egg_four_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_four_walk.display_name": {
            "fr": "Big Egg — quatrième confrontation — marche",
            "en": "Big Egg — quatrième confrontation — walk",
            "default": "Big Egg — quatrième confrontation — marche"
        },
        "visuals.big_egg_one_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_one_idle.display_name": {
            "fr": "Big Egg — première confrontation — repos",
            "en": "Big Egg — première confrontation — idle",
            "default": "Big Egg — première confrontation — repos"
        },
        "visuals.big_egg_one_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_one_walk.display_name": {
            "fr": "Big Egg — première confrontation — marche",
            "en": "Big Egg — première confrontation — walk",
            "default": "Big Egg — première confrontation — marche"
        },
        "visuals.big_egg_three_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_three_idle.display_name": {
            "fr": "Big Egg — troisième confrontation — repos",
            "en": "Big Egg — troisième confrontation — idle",
            "default": "Big Egg — troisième confrontation — repos"
        },
        "visuals.big_egg_three_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_three_walk.display_name": {
            "fr": "Big Egg — troisième confrontation — marche",
            "en": "Big Egg — troisième confrontation — walk",
            "default": "Big Egg — troisième confrontation — marche"
        },
        "visuals.big_egg_two_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_two_idle.display_name": {
            "fr": "Big Egg — deuxième confrontation — repos",
            "en": "Big Egg — deuxième confrontation — idle",
            "default": "Big Egg — deuxième confrontation — repos"
        },
        "visuals.big_egg_two_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.big_egg_two_walk.display_name": {
            "fr": "Big Egg — deuxième confrontation — marche",
            "en": "Big Egg — deuxième confrontation — walk",
            "default": "Big Egg — deuxième confrontation — marche"
        },
        "visuals.biome_crater_meadow_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_crater_meadow_background.display_name": {
            "default": "Vallée du Cratère — fond"
        },
        "visuals.biome_downtown_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_downtown_background.display_name": {
            "default": "Centre-ville — fond"
        },
        "visuals.biome_mount_royal_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_mount_royal_background.display_name": {
            "default": "Mont Royal — fond"
        },
        "visuals.biome_old_port_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_old_port_background.display_name": {
            "default": "Vieux-Port — fond"
        },
        "visuals.biome_olympic_park_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_olympic_park_background.display_name": {
            "default": "Parc olympique — fond"
        },
        "visuals.biome_underground_city_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_underground_city_background.display_name": {
            "default": "Ville souterraine — fond"
        },
        "visuals.biome_world_egg_center_background.description": {
            "default": "Généré par PixelLab (vue de dessus, sol seul)."
        },
        "visuals.biome_world_egg_center_background.display_name": {
            "default": "World Egg Center — fond"
        },
        "visuals.bob_the_horse_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.bob_the_horse_idle.display_name": {
            "fr": "Bob le cheval — repos",
            "en": "Bob le cheval — idle",
            "default": "Bob le cheval — repos"
        },
        "visuals.bob_the_horse_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.bob_the_horse_walk.display_name": {
            "fr": "Bob le cheval — marche",
            "en": "Bob le cheval — walk",
            "default": "Bob le cheval — marche"
        },
        "visuals.camera_hound_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.camera_hound_idle.display_name": {
            "fr": "Molosse caméra — repos",
            "en": "Molosse caméra — idle",
            "default": "Molosse caméra — repos"
        },
        "visuals.camera_hound_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.camera_hound_walk.display_name": {
            "fr": "Molosse caméra — marche",
            "en": "Molosse caméra — walk",
            "default": "Molosse caméra — marche"
        },
        "visuals.campaign_goon_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.campaign_goon_idle.display_name": {
            "fr": "Gros bras de campagne — repos",
            "en": "Gros bras de campagne — idle",
            "default": "Gros bras de campagne — repos"
        },
        "visuals.campaign_goon_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.campaign_goon_walk.display_name": {
            "fr": "Gros bras de campagne — marche",
            "en": "Gros bras de campagne — walk",
            "default": "Gros bras de campagne — marche"
        },
        "visuals.cardboard_carl_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.cardboard_carl_idle.display_name": {
            "fr": "Carl Carton — repos",
            "en": "Carl Carton — idle",
            "default": "Carl Carton — repos"
        },
        "visuals.cardboard_carl_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.cardboard_carl_walk.display_name": {
            "fr": "Carl Carton — marche",
            "en": "Carl Carton — walk",
            "default": "Carl Carton — marche"
        },
        "visuals.cinder_crow_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.cinder_crow_idle.display_name": {
            "fr": "Corbeau de braise — repos",
            "en": "Corbeau de braise — idle",
            "default": "Corbeau de braise — repos"
        },
        "visuals.cinder_crow_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.cinder_crow_walk.display_name": {
            "fr": "Corbeau de braise — marche",
            "en": "Corbeau de braise — walk",
            "default": "Corbeau de braise — marche"
        },
        "visuals.coach_chrome_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.coach_chrome_idle.display_name": {
            "fr": "Coach Chrome — repos",
            "en": "Coach Chrome — idle",
            "default": "Coach Chrome — repos"
        },
        "visuals.coach_chrome_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.coach_chrome_walk.display_name": {
            "fr": "Coach Chrome — marche",
            "en": "Coach Chrome — walk",
            "default": "Coach Chrome — marche"
        },
        "visuals.concrete_golem_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.concrete_golem_idle.display_name": {
            "fr": "Golem de béton — repos",
            "en": "Golem de béton — idle",
            "default": "Golem de béton — repos"
        },
        "visuals.concrete_golem_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.concrete_golem_walk.display_name": {
            "fr": "Golem de béton — marche",
            "en": "Golem de béton — walk",
            "default": "Golem de béton — marche"
        },
        "visuals.conveyor_hog_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.conveyor_hog_idle.display_name": {
            "fr": "Porc de convoyeur — repos",
            "en": "Porc de convoyeur — idle",
            "default": "Porc de convoyeur — repos"
        },
        "visuals.conveyor_hog_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.conveyor_hog_walk.display_name": {
            "fr": "Porc de convoyeur — marche",
            "en": "Porc de convoyeur — walk",
            "default": "Porc de convoyeur — marche"
        },
        "visuals.crazy_squirrel_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.crazy_squirrel_idle.display_name": {
            "fr": "Écureuil cinglé — repos",
            "en": "Écureuil cinglé — idle",
            "default": "Écureuil cinglé — repos"
        },
        "visuals.crazy_squirrel_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.crazy_squirrel_walk.display_name": {
            "fr": "Écureuil cinglé — marche",
            "en": "Écureuil cinglé — walk",
            "default": "Écureuil cinglé — marche"
        },
        "visuals.customer_foodie_angry.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_foodie_angry.display_name": {
            "fr": "Critique gastronomique — fâché",
            "en": "Critique gastronomique — angry",
            "default": "Critique gastronomique — fâché"
        },
        "visuals.customer_foodie_eat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_foodie_eat.display_name": {
            "fr": "Critique gastronomique — à table",
            "en": "Critique gastronomique — eating",
            "default": "Critique gastronomique — à table"
        },
        "visuals.customer_foodie_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_foodie_idle.display_name": {
            "fr": "Critique gastronomique — repos",
            "en": "Critique gastronomique — idle",
            "default": "Critique gastronomique — repos"
        },
        "visuals.customer_foodie_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_foodie_walk.display_name": {
            "fr": "Critique gastronomique — marche",
            "en": "Critique gastronomique — walk",
            "default": "Critique gastronomique — marche"
        },
        "visuals.customer_generous_guest_angry.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_generous_guest_angry.display_name": {
            "fr": "Militant du KMLD — fâché",
            "en": "Militant du KMLD — angry",
            "default": "Militant du KMLD — fâché"
        },
        "visuals.customer_generous_guest_eat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_generous_guest_eat.display_name": {
            "fr": "Militant du KMLD — à table",
            "en": "Militant du KMLD — eating",
            "default": "Militant du KMLD — à table"
        },
        "visuals.customer_generous_guest_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_generous_guest_idle.display_name": {
            "fr": "Militant du KMLD — repos",
            "en": "Militant du KMLD — idle",
            "default": "Militant du KMLD — repos"
        },
        "visuals.customer_generous_guest_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_generous_guest_walk.display_name": {
            "fr": "Militant du KMLD — marche",
            "en": "Militant du KMLD — walk",
            "default": "Militant du KMLD — marche"
        },
        "visuals.customer_regular_angry.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_regular_angry.display_name": {
            "fr": "Habitué du quartier — fâché",
            "en": "Habitué du quartier — angry",
            "default": "Habitué du quartier — fâché"
        },
        "visuals.customer_regular_eat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_regular_eat.display_name": {
            "fr": "Habitué du quartier — à table",
            "en": "Habitué du quartier — eating",
            "default": "Habitué du quartier — à table"
        },
        "visuals.customer_regular_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_regular_idle.display_name": {
            "fr": "Habitué du quartier — repos",
            "en": "Habitué du quartier — idle",
            "default": "Habitué du quartier — repos"
        },
        "visuals.customer_regular_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.customer_regular_walk.display_name": {
            "fr": "Habitué du quartier — marche",
            "en": "Habitué du quartier — walk",
            "default": "Habitué du quartier — marche"
        },
        "visuals.dish_abandoned_mall_deluxe.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_abandoned_mall_deluxe.display_name": {
            "fr": "Deluxe du centre commercial abandonné — dressé",
            "en": "Deluxe du centre commercial abandonné — plated",
            "default": "Deluxe du centre commercial abandonné — dressé"
        },
        "visuals.dish_abominable_party_platter.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_abominable_party_platter.display_name": {
            "fr": "Plateau de fête abominable — dressé",
            "en": "Plateau de fête abominable — plated",
            "default": "Plateau de fête abominable — dressé"
        },
        "visuals.dish_approved_beef_casserole.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_approved_beef_casserole.display_name": {
            "fr": "Casserole de boeuf approuvée — dressé",
            "en": "Casserole de boeuf approuvée — plated",
            "default": "Casserole de boeuf approuvée — dressé"
        },
        "visuals.dish_automated_crop_loaf.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_automated_crop_loaf.display_name": {
            "fr": "Pain de protéines automatisé — dressé",
            "en": "Pain de protéines automatisé — plated",
            "default": "Pain de protéines automatisé — dressé"
        },
        "visuals.dish_ballot_vulture_pie.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_ballot_vulture_pie.display_name": {
            "fr": "Tourte au vautour électoral — dressé",
            "en": "Tourte au vautour électoral — plated",
            "default": "Tourte au vautour électoral — dressé"
        },
        "visuals.dish_barnacle_chowder.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_barnacle_chowder.display_name": {
            "fr": "Chaudrée de bernacles — dressé",
            "en": "Chaudrée de bernacles — plated",
            "default": "Chaudrée de bernacles — dressé"
        },
        "visuals.dish_battery_hen_nuggets.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_battery_hen_nuggets.display_name": {
            "fr": "Croquettes de poule-batterie — dressé",
            "en": "Croquettes de poule-batterie — plated",
            "default": "Croquettes de poule-batterie — dressé"
        },
        "visuals.dish_bobs_golden_trail_mix.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_bobs_golden_trail_mix.display_name": {
            "fr": "Mélange doré de Bob — dressé",
            "en": "Mélange doré de Bob — plated",
            "default": "Mélange doré de Bob — dressé"
        },
        "visuals.dish_brutalist_performance_slab.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_brutalist_performance_slab.display_name": {
            "fr": "Dalle brutaliste dopée — dressé",
            "en": "Dalle brutaliste dopée — plated",
            "default": "Dalle brutaliste dopée — dressé"
        },
        "visuals.dish_camera_hound_sausage.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_camera_hound_sausage.display_name": {
            "fr": "Saucisse de molosse caméra — dressé",
            "en": "Saucisse de molosse caméra — plated",
            "default": "Saucisse de molosse caméra — dressé"
        },
        "visuals.dish_campaign_ballot_slider.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_campaign_ballot_slider.display_name": {
            "fr": "Petit burger de campagne — dressé",
            "en": "Petit burger de campagne — plated",
            "default": "Petit burger de campagne — dressé"
        },
        "visuals.dish_carls_turkey_dog.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_carls_turkey_dog.display_name": {
            "fr": "Le hot-dog de Carl — dressé",
            "en": "Le hot-dog de Carl — plated",
            "default": "Le hot-dog de Carl — dressé"
        },
        "visuals.dish_chrome_lens_cutlet.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_chrome_lens_cutlet.display_name": {
            "fr": "Escalope chrome et objectif — dressé",
            "en": "Escalope chrome et objectif — plated",
            "default": "Escalope chrome et objectif — dressé"
        },
        "visuals.dish_cinder_crow_wings.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_cinder_crow_wings.display_name": {
            "fr": "Ailes de corbeau de braise — dressé",
            "en": "Ailes de corbeau de braise — plated",
            "default": "Ailes de corbeau de braise — dressé"
        },
        "visuals.dish_crater_surf_and_turf.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_crater_surf_and_turf.display_name": {
            "fr": "Terre et mer du Cratère — dressé",
            "en": "Terre et mer du Cratère — plated",
            "default": "Terre et mer du Cratère — dressé"
        },
        "visuals.dish_dock_ratatouille.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_dock_ratatouille.display_name": {
            "fr": "Ratatouille de quai — dressé",
            "en": "Ratatouille de quai — plated",
            "default": "Ratatouille de quai — dressé"
        },
        "visuals.dish_eggforcer_cutlet.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_eggforcer_cutlet.display_name": {
            "fr": "Escalope d'Eggforcer — dressé",
            "en": "Escalope d'Eggforcer — plated",
            "default": "Escalope d'Eggforcer — dressé"
        },
        "visuals.dish_factory_floor_breakfast.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_factory_floor_breakfast.display_name": {
            "fr": "Déjeuner de plancher d'usine — dressé",
            "en": "Déjeuner de plancher d'usine — plated",
            "default": "Déjeuner de plancher d'usine — dressé"
        },
        "visuals.dish_gabs_contraband_bisque.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_gabs_contraband_bisque.display_name": {
            "fr": "Bisque de contrebande de Gab — dressé",
            "en": "Bisque de contrebande de Gab — plated",
            "default": "Bisque de contrebande de Gab — dressé"
        },
        "visuals.dish_gars_rond_summit_roast.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_gars_rond_summit_roast.display_name": {
            "fr": "Rôti du sommet de Gars-Rond — dressé",
            "en": "Rôti du sommet de Gars-Rond — plated",
            "default": "Rôti du sommet de Gars-Rond — dressé"
        },
        "visuals.dish_heavy_metal_kebab.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_heavy_metal_kebab.display_name": {
            "fr": "Kebab heavy metal — dressé",
            "en": "Kebab heavy metal — plated",
            "default": "Kebab heavy metal — dressé"
        },
        "visuals.dish_iron_goat_lava_fondue.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_iron_goat_lava_fondue.display_name": {
            "fr": "Fondue de chèvre à la lave — dressé",
            "en": "Fondue de chèvre à la lave — plated",
            "default": "Fondue de chèvre à la lave — dressé"
        },
        "visuals.dish_jeremie_speed_bowl.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_jeremie_speed_bowl.display_name": {
            "fr": "Bol de vitesse de Jérémie — dressé",
            "en": "Bol de vitesse de Jérémie — plated",
            "default": "Bol de vitesse de Jérémie — dressé"
        },
        "visuals.dish_loaded_pearl_cakes.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_loaded_pearl_cakes.display_name": {
            "fr": "Galettes aux perles pipées — dressé",
            "en": "Galettes aux perles pipées — plated",
            "default": "Galettes aux perles pipées — dressé"
        },
        "visuals.dish_lost_shopper_forest_combo.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_lost_shopper_forest_combo.display_name": {
            "fr": "Combo forêt du client perdu — dressé",
            "en": "Combo forêt du client perdu — plated",
            "default": "Combo forêt du client perdu — dressé"
        },
        "visuals.dish_magma_marmot_melt.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_magma_marmot_melt.display_name": {
            "fr": "Marmotte fondante du magma — dressé",
            "en": "Marmotte fondante du magma — plated",
            "default": "Marmotte fondante du magma — dressé"
        },
        "visuals.dish_mascot_afterparty_dessert.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_mascot_afterparty_dessert.display_name": {
            "fr": "Dessert d'after de mascotte — dressé",
            "en": "Dessert d'after de mascotte — plated",
            "default": "Dessert d'after de mascotte — dressé"
        },
        "visuals.dish_mimic_mushroom_lunchbox.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_mimic_mushroom_lunchbox.display_name": {
            "fr": "Boîte à lunch mimique — dressé",
            "en": "Boîte à lunch mimique — plated",
            "default": "Boîte à lunch mimique — dressé"
        },
        "visuals.dish_mld_state_dinner.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_mld_state_dinner.display_name": {
            "fr": "Dîner d'État de MLD — dressé",
            "en": "Dîner d'État de MLD — plated",
            "default": "Dîner d'État de MLD — dressé"
        },
        "visuals.dish_musicalo_resonance_soup.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_musicalo_resonance_soup.display_name": {
            "fr": "Soupe de résonance de Musicalo — dressé",
            "en": "Soupe de résonance de Musicalo — plated",
            "default": "Soupe de résonance de Musicalo — dressé"
        },
        "visuals.dish_olympic_volcano_stack.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_olympic_volcano_stack.display_name": {
            "fr": "Tour olympique volcanique — dressé",
            "en": "Tour olympique volcanique — plated",
            "default": "Tour olympique volcanique — dressé"
        },
        "visuals.dish_pepper_spin_special.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_pepper_spin_special.display_name": {
            "fr": "Spécial poivre et propagande — dressé",
            "en": "Spécial poivre et propagande — plated",
            "default": "Spécial poivre et propagande — dressé"
        },
        "visuals.dish_petes_molten_tartare.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_petes_molten_tartare.display_name": {
            "fr": "Tartare en fusion de Pete — dressé",
            "en": "Tartare en fusion de Pete — plated",
            "default": "Tartare en fusion de Pete — dressé"
        },
        "visuals.dish_powdered_dock_wings.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_powdered_dock_wings.display_name": {
            "fr": "Ailes de quai poudrées — dressé",
            "en": "Ailes de quai poudrées — plated",
            "default": "Ailes de quai poudrées — dressé"
        },
        "visuals.dish_protesters_surf_and_turf.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_protesters_surf_and_turf.display_name": {
            "fr": "Terre et mer du manifestant — dressé",
            "en": "Terre et mer du manifestant — plated",
            "default": "Terre et mer du manifestant — dressé"
        },
        "visuals.dish_rebar_maintenance_crunch.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_rebar_maintenance_crunch.display_name": {
            "fr": "Croquant d'entretien — dressé",
            "en": "Croquant d'entretien — plated",
            "default": "Croquant d'entretien — dressé"
        },
        "visuals.dish_rootbound_tofu_bowl.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_rootbound_tofu_bowl.display_name": {
            "fr": "Bol de tofu enraciné — dressé",
            "en": "Bol de tofu enraciné — plated",
            "default": "Bol de tofu enraciné — dressé"
        },
        "visuals.dish_royal_crater_platter.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_royal_crater_platter.display_name": {
            "fr": "Assiette royale du Cratère — dressé",
            "en": "Assiette royale du Cratère — plated",
            "default": "Assiette royale du Cratère — dressé"
        },
        "visuals.dish_scented_squirrel_roast.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_scented_squirrel_roast.display_name": {
            "fr": "Rôti d'écureuil parfumé — dressé",
            "en": "Rôti d'écureuil parfumé — plated",
            "default": "Rôti d'écureuil parfumé — dressé"
        },
        "visuals.dish_sirens_lucky_roll.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_sirens_lucky_roll.display_name": {
            "fr": "Rouleau chanceux de la sirène — dressé",
            "en": "Rouleau chanceux de la sirène — plated",
            "default": "Rouleau chanceux de la sirène — dressé"
        },
        "visuals.dish_spin_boar_roast.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_spin_boar_roast.display_name": {
            "fr": "Rôti de sanglier à la sauce premium — dressé",
            "en": "Rôti de sanglier à la sauce premium — plated",
            "default": "Rôti de sanglier à la sauce premium — dressé"
        },
        "visuals.dish_squirrel_skewer.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_squirrel_skewer.display_name": {
            "fr": "Brochette d'écureuil — dressé",
            "en": "Brochette d'écureuil — plated",
            "default": "Brochette d'écureuil — dressé"
        },
        "visuals.dish_trash_funk_stew.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_trash_funk_stew.display_name": {
            "fr": "Ragoût funk-poubelle — dressé",
            "en": "Ragoût funk-poubelle — plated",
            "default": "Ragoût funk-poubelle — dressé"
        },
        "visuals.dish_tunnel_rat_stew.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_tunnel_rat_stew.display_name": {
            "fr": "Ragoût de rat des tunnels — dressé",
            "en": "Ragoût de rat des tunnels — plated",
            "default": "Ragoût de rat des tunnels — dressé"
        },
        "visuals.dish_turkey_panic_roast.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_turkey_panic_roast.display_name": {
            "fr": "Rôti de dindon paniqué — dressé",
            "en": "Rôti de dindon paniqué — plated",
            "default": "Rôti de dindon paniqué — dressé"
        },
        "visuals.dish_turnstile_protein_brick.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_turnstile_protein_brick.display_name": {
            "fr": "Brique de protéine du tourniquet — dressé",
            "en": "Brique de protéine du tourniquet — plated",
            "default": "Brique de protéine du tourniquet — dressé"
        },
        "visuals.dish_world_egg_degustation.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_world_egg_degustation.display_name": {
            "fr": "Dégustation World Egg — dressé",
            "en": "Dégustation World Egg — plated",
            "default": "Dégustation World Egg — dressé"
        },
        "visuals.dish_worlds_biggest_omelette.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.dish_worlds_biggest_omelette.display_name": {
            "fr": "La plus grosse omelette du monde — dressé",
            "en": "La plus grosse omelette du monde — plated",
            "default": "La plus grosse omelette du monde — dressé"
        },
        "visuals.dock_rat_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.dock_rat_idle.display_name": {
            "fr": "Rat de quai — repos",
            "en": "Rat de quai — idle",
            "default": "Rat de quai — repos"
        },
        "visuals.dock_rat_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.dock_rat_walk.display_name": {
            "fr": "Rat de quai — marche",
            "en": "Rat de quai — walk",
            "default": "Rat de quai — marche"
        },
        "visuals.eggforcer_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.eggforcer_idle.display_name": {
            "fr": "Eggforcer — repos",
            "en": "Eggforcer — idle",
            "default": "Eggforcer — repos"
        },
        "visuals.eggforcer_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.eggforcer_walk.display_name": {
            "fr": "Eggforcer — marche",
            "en": "Eggforcer — walk",
            "default": "Eggforcer — marche"
        },
        "visuals.element_basic_console_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_console_back.display_name": {
            "fr": "Console de gestion — dos",
            "en": "Console de gestion — back",
            "default": "Console de gestion — dos"
        },
        "visuals.element_basic_console_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_console_front.display_name": {
            "fr": "Console de gestion — face",
            "en": "Console de gestion — front",
            "default": "Console de gestion — face"
        },
        "visuals.element_basic_console_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_console_left.display_name": {
            "fr": "Console de gestion — profil gauche",
            "en": "Console de gestion — left",
            "default": "Console de gestion — profil gauche"
        },
        "visuals.element_basic_console_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_console_right.display_name": {
            "fr": "Console de gestion — profil droit",
            "en": "Console de gestion — right",
            "default": "Console de gestion — profil droit"
        },
        "visuals.element_basic_dishwasher_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_dishwasher_back.display_name": {
            "fr": "Plonge — dos",
            "en": "Plonge — back",
            "default": "Plonge — dos"
        },
        "visuals.element_basic_dishwasher_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_dishwasher_front.display_name": {
            "fr": "Plonge — face",
            "en": "Plonge — front",
            "default": "Plonge — face"
        },
        "visuals.element_basic_dishwasher_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_dishwasher_left.display_name": {
            "fr": "Plonge — profil gauche",
            "en": "Plonge — left",
            "default": "Plonge — profil gauche"
        },
        "visuals.element_basic_dishwasher_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_dishwasher_right.display_name": {
            "fr": "Plonge — profil droit",
            "en": "Plonge — right",
            "default": "Plonge — profil droit"
        },
        "visuals.element_basic_order_board_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_order_board_back.display_name": {
            "fr": "Ardoise — dos",
            "en": "Ardoise — back",
            "default": "Ardoise — dos"
        },
        "visuals.element_basic_order_board_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_order_board_front.display_name": {
            "fr": "Ardoise — face",
            "en": "Ardoise — front",
            "default": "Ardoise — face"
        },
        "visuals.element_basic_order_board_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_order_board_left.display_name": {
            "fr": "Ardoise — profil gauche",
            "en": "Ardoise — left",
            "default": "Ardoise — profil gauche"
        },
        "visuals.element_basic_order_board_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_order_board_right.display_name": {
            "fr": "Ardoise — profil droit",
            "en": "Ardoise — right",
            "default": "Ardoise — profil droit"
        },
        "visuals.element_basic_shelf_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_shelf_back.display_name": {
            "fr": "Étagère — dos",
            "en": "Étagère — back",
            "default": "Étagère — dos"
        },
        "visuals.element_basic_shelf_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_shelf_front.display_name": {
            "fr": "Étagère — face",
            "en": "Étagère — front",
            "default": "Étagère — face"
        },
        "visuals.element_basic_shelf_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_shelf_left.display_name": {
            "fr": "Étagère — profil gauche",
            "en": "Étagère — left",
            "default": "Étagère — profil gauche"
        },
        "visuals.element_basic_shelf_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_shelf_right.display_name": {
            "fr": "Étagère — profil droit",
            "en": "Étagère — right",
            "default": "Étagère — profil droit"
        },
        "visuals.element_basic_stove_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_stove_back.display_name": {
            "fr": "Four de base — dos",
            "en": "Four de base — back",
            "default": "Four de base — dos"
        },
        "visuals.element_basic_stove_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_stove_front.display_name": {
            "fr": "Four de base — face",
            "en": "Four de base — front",
            "default": "Four de base — face"
        },
        "visuals.element_basic_stove_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_stove_left.display_name": {
            "fr": "Four de base — profil gauche",
            "en": "Four de base — left",
            "default": "Four de base — profil gauche"
        },
        "visuals.element_basic_stove_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_stove_right.display_name": {
            "fr": "Four de base — profil droit",
            "en": "Four de base — right",
            "default": "Four de base — profil droit"
        },
        "visuals.element_basic_table_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_table_back.display_name": {
            "fr": "Tabouret — dos",
            "en": "Tabouret — back",
            "default": "Tabouret — dos"
        },
        "visuals.element_basic_table_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_table_front.display_name": {
            "fr": "Tabouret — face",
            "en": "Tabouret — front",
            "default": "Tabouret — face"
        },
        "visuals.element_basic_table_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_table_left.display_name": {
            "fr": "Tabouret — profil gauche",
            "en": "Tabouret — left",
            "default": "Tabouret — profil gauche"
        },
        "visuals.element_basic_table_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_table_right.display_name": {
            "fr": "Tabouret — profil droit",
            "en": "Tabouret — right",
            "default": "Tabouret — profil droit"
        },
        "visuals.element_basic_takeout_counter_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_takeout_counter_back.display_name": {
            "fr": "Comptoir takeout — dos",
            "en": "Comptoir takeout — back",
            "default": "Comptoir takeout — dos"
        },
        "visuals.element_basic_takeout_counter_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_takeout_counter_front.display_name": {
            "fr": "Comptoir takeout — face",
            "en": "Comptoir takeout — front",
            "default": "Comptoir takeout — face"
        },
        "visuals.element_basic_takeout_counter_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_takeout_counter_left.display_name": {
            "fr": "Comptoir takeout — profil gauche",
            "en": "Comptoir takeout — left",
            "default": "Comptoir takeout — profil gauche"
        },
        "visuals.element_basic_takeout_counter_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_takeout_counter_right.display_name": {
            "fr": "Comptoir takeout — profil droit",
            "en": "Comptoir takeout — right",
            "default": "Comptoir takeout — profil droit"
        },
        "visuals.element_basic_trash_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_trash_back.display_name": {
            "fr": "Poubelle — dos",
            "en": "Poubelle — back",
            "default": "Poubelle — dos"
        },
        "visuals.element_basic_trash_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_trash_front.display_name": {
            "fr": "Poubelle — face",
            "en": "Poubelle — front",
            "default": "Poubelle — face"
        },
        "visuals.element_basic_trash_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_trash_left.display_name": {
            "fr": "Poubelle — profil gauche",
            "en": "Poubelle — left",
            "default": "Poubelle — profil gauche"
        },
        "visuals.element_basic_trash_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_basic_trash_right.display_name": {
            "fr": "Poubelle — profil droit",
            "en": "Poubelle — right",
            "default": "Poubelle — profil droit"
        },
        "visuals.element_employee_locker_back.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_employee_locker_back.display_name": {
            "fr": "Casier d'employés — dos",
            "en": "Casier d'employés — back",
            "default": "Casier d'employés — dos"
        },
        "visuals.element_employee_locker_front.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_employee_locker_front.display_name": {
            "fr": "Casier d'employés — face",
            "en": "Casier d'employés — front",
            "default": "Casier d'employés — face"
        },
        "visuals.element_employee_locker_left.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_employee_locker_left.display_name": {
            "fr": "Casier d'employés — profil gauche",
            "en": "Casier d'employés — left",
            "default": "Casier d'employés — profil gauche"
        },
        "visuals.element_employee_locker_right.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.element_employee_locker_right.display_name": {
            "fr": "Casier d'employés — profil droit",
            "en": "Casier d'employés — right",
            "default": "Casier d'employés — profil droit"
        },
        "visuals.eltuna_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.eltuna_idle.display_name": {
            "fr": "eLTuna — repos",
            "en": "eLTuna — idle",
            "default": "eLTuna — repos"
        },
        "visuals.eltuna_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.eltuna_walk.display_name": {
            "fr": "eLTuna — marche",
            "en": "eLTuna — walk",
            "default": "eLTuna — marche"
        },
        "visuals.employee_abominable_party_man_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_abominable_party_man_idle.display_name": {
            "fr": "Abominable homme des parties — repos",
            "en": "Abominable homme des parties — idle",
            "default": "Abominable homme des parties — repos"
        },
        "visuals.employee_abominable_party_man_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_abominable_party_man_walk.display_name": {
            "fr": "Abominable homme des parties — marche",
            "en": "Abominable homme des parties — walk",
            "default": "Abominable homme des parties — marche"
        },
        "visuals.employee_abominable_party_man_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_abominable_party_man_work.display_name": {
            "fr": "Abominable homme des parties — au poste",
            "en": "Abominable homme des parties — work",
            "default": "Abominable homme des parties — au poste"
        },
        "visuals.employee_bob_the_horse_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_bob_the_horse_idle.display_name": {
            "fr": "Bob le cheval — repos",
            "en": "Bob le cheval — idle",
            "default": "Bob le cheval — repos"
        },
        "visuals.employee_bob_the_horse_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_bob_the_horse_walk.display_name": {
            "fr": "Bob le cheval — marche",
            "en": "Bob le cheval — walk",
            "default": "Bob le cheval — marche"
        },
        "visuals.employee_bob_the_horse_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_bob_the_horse_work.display_name": {
            "fr": "Bob le cheval — au poste",
            "en": "Bob le cheval — work",
            "default": "Bob le cheval — au poste"
        },
        "visuals.employee_eltuna_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_eltuna_idle.display_name": {
            "fr": "eLTuna — repos",
            "en": "eLTuna — idle",
            "default": "eLTuna — repos"
        },
        "visuals.employee_eltuna_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_eltuna_walk.display_name": {
            "fr": "eLTuna — marche",
            "en": "eLTuna — walk",
            "default": "eLTuna — marche"
        },
        "visuals.employee_eltuna_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_eltuna_work.display_name": {
            "fr": "eLTuna — au poste",
            "en": "eLTuna — work",
            "default": "eLTuna — au poste"
        },
        "visuals.employee_gab_le_crab_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gab_le_crab_idle.display_name": {
            "fr": "Gab le Crabe — repos",
            "en": "Gab le Crabe — idle",
            "default": "Gab le Crabe — repos"
        },
        "visuals.employee_gab_le_crab_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gab_le_crab_walk.display_name": {
            "fr": "Gab le Crabe — marche",
            "en": "Gab le Crabe — walk",
            "default": "Gab le Crabe — marche"
        },
        "visuals.employee_gab_le_crab_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gab_le_crab_work.display_name": {
            "fr": "Gab le Crabe — au poste",
            "en": "Gab le Crabe — work",
            "default": "Gab le Crabe — au poste"
        },
        "visuals.employee_gars_rond_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gars_rond_idle.display_name": {
            "fr": "Gars-Rond — repos",
            "en": "Gars-Rond — idle",
            "default": "Gars-Rond — repos"
        },
        "visuals.employee_gars_rond_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gars_rond_walk.display_name": {
            "fr": "Gars-Rond — marche",
            "en": "Gars-Rond — walk",
            "default": "Gars-Rond — marche"
        },
        "visuals.employee_gars_rond_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_gars_rond_work.display_name": {
            "fr": "Gars-Rond — au poste",
            "en": "Gars-Rond — work",
            "default": "Gars-Rond — au poste"
        },
        "visuals.employee_jeremie_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_jeremie_idle.display_name": {
            "fr": "Jérémie — repos",
            "en": "Jérémie — idle",
            "default": "Jérémie — repos"
        },
        "visuals.employee_jeremie_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_jeremie_walk.display_name": {
            "fr": "Jérémie — marche",
            "en": "Jérémie — walk",
            "default": "Jérémie — marche"
        },
        "visuals.employee_jeremie_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_jeremie_work.display_name": {
            "fr": "Jérémie — au poste",
            "en": "Jérémie — work",
            "default": "Jérémie — au poste"
        },
        "visuals.employee_mld_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_mld_idle.display_name": {
            "fr": "MLD — repos",
            "en": "MLD — idle",
            "default": "MLD — repos"
        },
        "visuals.employee_mld_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_mld_walk.display_name": {
            "fr": "MLD — marche",
            "en": "MLD — walk",
            "default": "MLD — marche"
        },
        "visuals.employee_mld_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_mld_work.display_name": {
            "fr": "MLD — au poste",
            "en": "MLD — work",
            "default": "MLD — au poste"
        },
        "visuals.employee_shaman_musicalo_idle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_shaman_musicalo_idle.display_name": {
            "fr": "Shaman Musicalo — repos",
            "en": "Shaman Musicalo — idle",
            "default": "Shaman Musicalo — repos"
        },
        "visuals.employee_shaman_musicalo_walk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_shaman_musicalo_walk.display_name": {
            "fr": "Shaman Musicalo — marche",
            "en": "Shaman Musicalo — walk",
            "default": "Shaman Musicalo — marche"
        },
        "visuals.employee_shaman_musicalo_work.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.employee_shaman_musicalo_work.display_name": {
            "fr": "Shaman Musicalo — au poste",
            "en": "Shaman Musicalo — work",
            "default": "Shaman Musicalo — au poste"
        },
        "visuals.factory_cow_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.factory_cow_idle.display_name": {
            "fr": "Vache d'usine — repos",
            "en": "Vache d'usine — idle",
            "default": "Vache d'usine — repos"
        },
        "visuals.factory_cow_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.factory_cow_walk.display_name": {
            "fr": "Vache d'usine — marche",
            "en": "Vache d'usine — walk",
            "default": "Vache d'usine — marche"
        },
        "visuals.gab_le_crab_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.gab_le_crab_idle.display_name": {
            "fr": "Gab le Crabe — repos",
            "en": "Gab le Crabe — idle",
            "default": "Gab le Crabe — repos"
        },
        "visuals.gab_le_crab_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.gab_le_crab_walk.display_name": {
            "fr": "Gab le Crabe — marche",
            "en": "Gab le Crabe — walk",
            "default": "Gab le Crabe — marche"
        },
        "visuals.gars_rond_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.gars_rond_idle.display_name": {
            "fr": "Gars-Rond — repos",
            "en": "Gars-Rond — idle",
            "default": "Gars-Rond — repos"
        },
        "visuals.gars_rond_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.gars_rond_walk.display_name": {
            "fr": "Gars-Rond — marche",
            "en": "Gars-Rond — walk",
            "default": "Gars-Rond — marche"
        },
        "visuals.harvester_drone_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.harvester_drone_idle.display_name": {
            "fr": "Drone moissonneur — repos",
            "en": "Drone moissonneur — idle",
            "default": "Drone moissonneur — repos"
        },
        "visuals.harvester_drone_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.harvester_drone_walk.display_name": {
            "fr": "Drone moissonneur — marche",
            "en": "Drone moissonneur — walk",
            "default": "Drone moissonneur — marche"
        },
        "visuals.headbanger_ram_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.headbanger_ram_idle.display_name": {
            "fr": "Bélier métalleux — repos",
            "en": "Bélier métalleux — idle",
            "default": "Bélier métalleux — repos"
        },
        "visuals.headbanger_ram_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.headbanger_ram_walk.display_name": {
            "fr": "Bélier métalleux — marche",
            "en": "Bélier métalleux — walk",
            "default": "Bélier métalleux — marche"
        },
        "visuals.ingredient_approved_protein.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_approved_protein.display_name": {
            "fr": "Protéine approuvée — icône",
            "en": "Protéine approuvée — icon",
            "default": "Protéine approuvée — icône"
        },
        "visuals.ingredient_barnacle_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_barnacle_meat.display_name": {
            "fr": "Chair de bernacle — icône",
            "en": "Chair de bernacle — icon",
            "default": "Chair de bernacle — icône"
        },
        "visuals.ingredient_battery_egg.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_battery_egg.display_name": {
            "fr": "Oeuf de batterie — icône",
            "en": "Oeuf de batterie — icon",
            "default": "Oeuf de batterie — icône"
        },
        "visuals.ingredient_beef.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_beef.display_name": {
            "fr": "Boeuf — icône",
            "en": "Boeuf — icon",
            "default": "Boeuf — icône"
        },
        "visuals.ingredient_big_egg_white.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_big_egg_white.display_name": {
            "fr": "Blanc de Big Egg — icône",
            "en": "Blanc de Big Egg — icon",
            "default": "Blanc de Big Egg — icône"
        },
        "visuals.ingredient_black_pearl_roe.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_black_pearl_roe.display_name": {
            "fr": "Oeufs de perle noire — icône",
            "en": "Oeufs de perle noire — icon",
            "default": "Oeufs de perle noire — icône"
        },
        "visuals.ingredient_boar_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_boar_meat.display_name": {
            "fr": "Viande de sanglier — icône",
            "en": "Viande de sanglier — icon",
            "default": "Viande de sanglier — icône"
        },
        "visuals.ingredient_campaign_ration.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_campaign_ration.display_name": {
            "fr": "Ration de campagne — icône",
            "en": "Ration de campagne — icon",
            "default": "Ration de campagne — icône"
        },
        "visuals.ingredient_carl_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_carl_meat.display_name": {
            "fr": "Viande de Carl — icône",
            "en": "Viande de Carl — icon",
            "default": "Viande de Carl — icône"
        },
        "visuals.ingredient_carls_leg.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_carls_leg.display_name": {
            "fr": "Jambe de Carl — icône",
            "en": "Jambe de Carl — icon",
            "default": "Jambe de Carl — icône"
        },
        "visuals.ingredient_charred_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_charred_meat.display_name": {
            "fr": "Viande carbonisée — icône",
            "en": "Viande carbonisée — icon",
            "default": "Viande carbonisée — icône"
        },
        "visuals.ingredient_chicken_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_chicken_meat.display_name": {
            "fr": "Viande de poulet — icône",
            "en": "Viande de poulet — icon",
            "default": "Viande de poulet — icône"
        },
        "visuals.ingredient_coach_cutlet.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_coach_cutlet.display_name": {
            "fr": "Escalope de coach — icône",
            "en": "Escalope de coach — icon",
            "default": "Escalope de coach — icône"
        },
        "visuals.ingredient_concrete_tofu.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_concrete_tofu.display_name": {
            "fr": "Tofu de béton — icône",
            "en": "Tofu de béton — icon",
            "default": "Tofu de béton — icône"
        },
        "visuals.ingredient_conveyor_bacon.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_conveyor_bacon.display_name": {
            "fr": "Bacon de convoyeur — icône",
            "en": "Bacon de convoyeur — icon",
            "default": "Bacon de convoyeur — icône"
        },
        "visuals.ingredient_coolant_sac.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_coolant_sac.display_name": {
            "fr": "Poche de liquide froid — icône",
            "en": "Poche de liquide froid — icon",
            "default": "Poche de liquide froid — icône"
        },
        "visuals.ingredient_crab_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_crab_meat.display_name": {
            "fr": "Chair de crabe — icône",
            "en": "Chair de crabe — icon",
            "default": "Chair de crabe — icône"
        },
        "visuals.ingredient_crop_protein.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_crop_protein.display_name": {
            "fr": "Protéine végétale — icône",
            "en": "Protéine végétale — icon",
            "default": "Protéine végétale — icône"
        },
        "visuals.ingredient_crow_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_crow_meat.display_name": {
            "fr": "Viande de corbeau — icône",
            "en": "Viande de corbeau — icon",
            "default": "Viande de corbeau — icône"
        },
        "visuals.ingredient_dictator_mustard.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_dictator_mustard.display_name": {
            "fr": "Moutarde de dictateur — icône",
            "en": "Moutarde de dictateur — icon",
            "default": "Moutarde de dictateur — icône"
        },
        "visuals.ingredient_dock_rat_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_dock_rat_meat.display_name": {
            "fr": "Viande de rat de quai — icône",
            "en": "Viande de rat de quai — icon",
            "default": "Viande de rat de quai — icône"
        },
        "visuals.ingredient_echo_mushroom.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_echo_mushroom.display_name": {
            "fr": "Champignon d'écho — icône",
            "en": "Champignon d'écho — icon",
            "default": "Champignon d'écho — icône"
        },
        "visuals.ingredient_ember_feather.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_ember_feather.display_name": {
            "fr": "Plume de braise — icône",
            "en": "Plume de braise — icon",
            "default": "Plume de braise — icône"
        },
        "visuals.ingredient_energy_gel.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_energy_gel.display_name": {
            "fr": "Gel énergétique — icône",
            "en": "Gel énergétique — icon",
            "default": "Gel énergétique — icône"
        },
        "visuals.ingredient_enforcer_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_enforcer_meat.display_name": {
            "fr": "Viande d'Eggforcer — icône",
            "en": "Viande d'Eggforcer — icon",
            "default": "Viande d'Eggforcer — icône"
        },
        "visuals.ingredient_food_court_sauce.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_food_court_sauce.display_name": {
            "fr": "Sauce de food court — icône",
            "en": "Sauce de food court — icon",
            "default": "Sauce de food court — icône"
        },
        "visuals.ingredient_forbidden_punch.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_forbidden_punch.display_name": {
            "fr": "Punch interdit — icône",
            "en": "Punch interdit — icon",
            "default": "Punch interdit — icône"
        },
        "visuals.ingredient_glitter_scale.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_glitter_scale.display_name": {
            "fr": "Écaille scintillante — icône",
            "en": "Écaille scintillante — icon",
            "default": "Écaille scintillante — icône"
        },
        "visuals.ingredient_goat_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_goat_meat.display_name": {
            "fr": "Viande de chèvre — icône",
            "en": "Viande de chèvre — icon",
            "default": "Viande de chèvre — icône"
        },
        "visuals.ingredient_golden_acorn.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_golden_acorn.display_name": {
            "fr": "Gland doré — icône",
            "en": "Gland doré — icon",
            "default": "Gland doré — icône"
        },
        "visuals.ingredient_golden_carrot.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_golden_carrot.display_name": {
            "fr": "Carotte dorée — icône",
            "en": "Carotte dorée — icon",
            "default": "Carotte dorée — icône"
        },
        "visuals.ingredient_goon_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_goon_meat.display_name": {
            "fr": "Viande de gros bras — icône",
            "en": "Viande de gros bras — icon",
            "default": "Viande de gros bras — icône"
        },
        "visuals.ingredient_gull_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_gull_meat.display_name": {
            "fr": "Viande de goéland — icône",
            "en": "Viande de goéland — icon",
            "default": "Viande de goéland — icône"
        },
        "visuals.ingredient_gunpowder_gizzard.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_gunpowder_gizzard.display_name": {
            "fr": "Gésier à poudre — icône",
            "en": "Gésier à poudre — icon",
            "default": "Gésier à poudre — icône"
        },
        "visuals.ingredient_honeycomb.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_honeycomb.display_name": {
            "fr": "Rayon de miel — icône",
            "en": "Rayon de miel — icon",
            "default": "Rayon de miel — icône"
        },
        "visuals.ingredient_hot_sauce_blood.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_hot_sauce_blood.display_name": {
            "fr": "Sang piquant — icône",
            "en": "Sang piquant — icon",
            "default": "Sang piquant — icône"
        },
        "visuals.ingredient_hound_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_hound_meat.display_name": {
            "fr": "Viande de molosse — icône",
            "en": "Viande de molosse — icon",
            "default": "Viande de molosse — icône"
        },
        "visuals.ingredient_iron_milk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_iron_milk.display_name": {
            "fr": "Lait ferreux — icône",
            "en": "Lait ferreux — icon",
            "default": "Lait ferreux — icône"
        },
        "visuals.ingredient_lava_fat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lava_fat.display_name": {
            "fr": "Graisse de magma — icône",
            "en": "Graisse de magma — icon",
            "default": "Graisse de magma — icône"
        },
        "visuals.ingredient_lens_jelly.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lens_jelly.display_name": {
            "fr": "Gelée optique — icône",
            "en": "Gelée optique — icon",
            "default": "Gelée optique — icône"
        },
        "visuals.ingredient_lightning_salt.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lightning_salt.display_name": {
            "fr": "Sel foudroyant — icône",
            "en": "Sel foudroyant — icon",
            "default": "Sel foudroyant — icône"
        },
        "visuals.ingredient_loaded_claw.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_loaded_claw.display_name": {
            "fr": "Pince pipée — icône",
            "en": "Pince pipée — icon",
            "default": "Pince pipée — icône"
        },
        "visuals.ingredient_lobbyist_lard.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lobbyist_lard.display_name": {
            "fr": "Saindoux de lobbyiste — icône",
            "en": "Saindoux de lobbyiste — icon",
            "default": "Saindoux de lobbyiste — icône"
        },
        "visuals.ingredient_lost_lunch.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lost_lunch.display_name": {
            "fr": "Lunch oublié — icône",
            "en": "Lunch oublié — icon",
            "default": "Lunch oublié — icône"
        },
        "visuals.ingredient_lubricant_gel.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lubricant_gel.display_name": {
            "fr": "Gel lubrifiant — icône",
            "en": "Gel lubrifiant — icon",
            "default": "Gel lubrifiant — icône"
        },
        "visuals.ingredient_lucky_pearl.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_lucky_pearl.display_name": {
            "fr": "Perle porte-bonheur — icône",
            "en": "Perle porte-bonheur — icon",
            "default": "Perle porte-bonheur — icône"
        },
        "visuals.ingredient_marmot_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_marmot_meat.display_name": {
            "fr": "Viande de marmotte — icône",
            "en": "Viande de marmotte — icon",
            "default": "Viande de marmotte — icône"
        },
        "visuals.ingredient_mascot_filling.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_mascot_filling.display_name": {
            "fr": "Bourre de mascotte — icône",
            "en": "Bourre de mascotte — icon",
            "default": "Bourre de mascotte — icône"
        },
        "visuals.ingredient_metro_mushroom.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_metro_mushroom.display_name": {
            "fr": "Champignon de métro — icône",
            "en": "Champignon de métro — icon",
            "default": "Champignon de métro — icône"
        },
        "visuals.ingredient_mimic_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_mimic_meat.display_name": {
            "fr": "Chair de mimique — icône",
            "en": "Chair de mimique — icon",
            "default": "Chair de mimique — icône"
        },
        "visuals.ingredient_molten_truffle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_molten_truffle.display_name": {
            "fr": "Truffe en fusion — icône",
            "en": "Truffe en fusion — icon",
            "default": "Truffe en fusion — icône"
        },
        "visuals.ingredient_moss_heart.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_moss_heart.display_name": {
            "fr": "Coeur de mousse — icône",
            "en": "Coeur de mousse — icon",
            "default": "Coeur de mousse — icône"
        },
        "visuals.ingredient_oat_bundle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_oat_bundle.display_name": {
            "fr": "Botte d'avoine — icône",
            "en": "Botte d'avoine — icon",
            "default": "Botte d'avoine — icône"
        },
        "visuals.ingredient_party_mix.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_party_mix.display_name": {
            "fr": "Mélange de fête — icône",
            "en": "Mélange de fête — icon",
            "default": "Mélange de fête — icône"
        },
        "visuals.ingredient_pepper_marinade.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_pepper_marinade.display_name": {
            "fr": "Marinade au poivre — icône",
            "en": "Marinade au poivre — icon",
            "default": "Marinade au poivre — icône"
        },
        "visuals.ingredient_perfect_tomato.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_perfect_tomato.display_name": {
            "fr": "Tomate parfaite — icône",
            "en": "Tomate parfaite — icon",
            "default": "Tomate parfaite — icône"
        },
        "visuals.ingredient_performance_serum.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_performance_serum.display_name": {
            "fr": "Sérum de performance — icône",
            "en": "Sérum de performance — icon",
            "default": "Sérum de performance — icône"
        },
        "visuals.ingredient_plastic_tofu.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_plastic_tofu.display_name": {
            "fr": "Tofu de plastique — icône",
            "en": "Tofu de plastique — icon",
            "default": "Tofu de plastique — icône"
        },
        "visuals.ingredient_pork.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_pork.display_name": {
            "fr": "Porc — icône",
            "en": "Porc — icon",
            "default": "Porc — icône"
        },
        "visuals.ingredient_premium_spin_sauce.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_premium_spin_sauce.display_name": {
            "fr": "Sauce premium — icône",
            "en": "Sauce premium — icon",
            "default": "Sauce premium — icône"
        },
        "visuals.ingredient_pristine_garbage.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_pristine_garbage.display_name": {
            "fr": "Déchet impeccable — icône",
            "en": "Déchet impeccable — icon",
            "default": "Déchet impeccable — icône"
        },
        "visuals.ingredient_protein_cartridge.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_protein_cartridge.display_name": {
            "fr": "Cartouche de protéine — icône",
            "en": "Cartouche de protéine — icon",
            "default": "Cartouche de protéine — icône"
        },
        "visuals.ingredient_raccoon_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_raccoon_meat.display_name": {
            "fr": "Viande de raton — icône",
            "en": "Viande de raton — icon",
            "default": "Viande de raton — icône"
        },
        "visuals.ingredient_rage_gizzard.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_rage_gizzard.display_name": {
            "fr": "Gésier enragé — icône",
            "en": "Gésier enragé — icon",
            "default": "Gésier enragé — icône"
        },
        "visuals.ingredient_ram_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_ram_meat.display_name": {
            "fr": "Viande de bélier — icône",
            "en": "Viande de bélier — icon",
            "default": "Viande de bélier — icône"
        },
        "visuals.ingredient_rebar_jerky.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_rebar_jerky.display_name": {
            "fr": "Jerky d'armature — icône",
            "en": "Jerky d'armature — icon",
            "default": "Jerky d'armature — icône"
        },
        "visuals.ingredient_red_nose_cherry.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_red_nose_cherry.display_name": {
            "fr": "Cerise nez rouge — icône",
            "en": "Cerise nez rouge — icon",
            "default": "Cerise nez rouge — icône"
        },
        "visuals.ingredient_reject_spice.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_reject_spice.display_name": {
            "fr": "Épice rejetée — icône",
            "en": "Épice rejetée — icon",
            "default": "Épice rejetée — icône"
        },
        "visuals.ingredient_resonant_marrow.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_resonant_marrow.display_name": {
            "fr": "Moelle résonante — icône",
            "en": "Moelle résonante — icon",
            "default": "Moelle résonante — icône"
        },
        "visuals.ingredient_rhythm_herb.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_rhythm_herb.display_name": {
            "fr": "Herbe rythmique — icône",
            "en": "Herbe rythmique — icon",
            "default": "Herbe rythmique — icône"
        },
        "visuals.ingredient_riot_truffle.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_riot_truffle.display_name": {
            "fr": "Truffe d'émeute — icône",
            "en": "Truffe d'émeute — icon",
            "default": "Truffe d'émeute — icône"
        },
        "visuals.ingredient_roach_protein.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_roach_protein.display_name": {
            "fr": "Protéine de cafard — icône",
            "en": "Protéine de cafard — icon",
            "default": "Protéine de cafard — icône"
        },
        "visuals.ingredient_rock_salt.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_rock_salt.display_name": {
            "fr": "Sel de roche — icône",
            "en": "Sel de roche — icon",
            "default": "Sel de roche — icône"
        },
        "visuals.ingredient_royal_honey.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_royal_honey.display_name": {
            "fr": "Miel royal — icône",
            "en": "Miel royal — icon",
            "default": "Miel royal — icône"
        },
        "visuals.ingredient_royal_yolk.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_royal_yolk.display_name": {
            "fr": "Jaune royal — icône",
            "en": "Jaune royal — icon",
            "default": "Jaune royal — icône"
        },
        "visuals.ingredient_salted_tail.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_salted_tail.display_name": {
            "fr": "Queue salée — icône",
            "en": "Queue salée — icon",
            "default": "Queue salée — icône"
        },
        "visuals.ingredient_scent_gland.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_scent_gland.display_name": {
            "fr": "Glande odorante — icône",
            "en": "Glande odorante — icon",
            "default": "Glande odorante — icône"
        },
        "visuals.ingredient_shedded_crab_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_shedded_crab_meat.display_name": {
            "fr": "Chair de pince muée — icône",
            "en": "Chair de pince muée — icon",
            "default": "Chair de pince muée — icône"
        },
        "visuals.ingredient_shopper_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_shopper_meat.display_name": {
            "fr": "Viande de client perdu — icône",
            "en": "Viande de client perdu — icon",
            "default": "Viande de client perdu — icône"
        },
        "visuals.ingredient_siren_fillet.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_siren_fillet.display_name": {
            "fr": "Filet de sirène — icône",
            "en": "Filet de sirène — icon",
            "default": "Filet de sirène — icône"
        },
        "visuals.ingredient_skunk_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_skunk_meat.display_name": {
            "fr": "Viande de moufette — icône",
            "en": "Viande de moufette — icon",
            "default": "Viande de moufette — icône"
        },
        "visuals.ingredient_spin_doctor_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_spin_doctor_meat.display_name": {
            "fr": "Viande de girouette — icône",
            "en": "Viande de girouette — icon",
            "default": "Viande de girouette — icône"
        },
        "visuals.ingredient_squirrel_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_squirrel_meat.display_name": {
            "fr": "Viande d'écureuil — icône",
            "en": "Viande d'écureuil — icon",
            "default": "Viande d'écureuil — icône"
        },
        "visuals.ingredient_stolen_ballot_spice.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_stolen_ballot_spice.display_name": {
            "fr": "Épice de bulletin volé — icône",
            "en": "Épice de bulletin volé — icon",
            "default": "Épice de bulletin volé — icône"
        },
        "visuals.ingredient_synthetic_marbling.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_synthetic_marbling.display_name": {
            "fr": "Persillage synthétique — icône",
            "en": "Persillage synthétique — icon",
            "default": "Persillage synthétique — icône"
        },
        "visuals.ingredient_tunnel_rat_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_tunnel_rat_meat.display_name": {
            "fr": "Viande de rat des tunnels — icône",
            "en": "Viande de rat des tunnels — icon",
            "default": "Viande de rat des tunnels — icône"
        },
        "visuals.ingredient_turkey_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_turkey_meat.display_name": {
            "fr": "Viande de dindon — icône",
            "en": "Viande de dindon — icon",
            "default": "Viande de dindon — icône"
        },
        "visuals.ingredient_vulture_meat.description": {
            "default": "Généré par PixelLab (fond transparent)."
        },
        "visuals.ingredient_vulture_meat.display_name": {
            "fr": "Viande de vautour — icône",
            "en": "Viande de vautour — icon",
            "default": "Viande de vautour — icône"
        },
        "visuals.ironhide_goat_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.ironhide_goat_idle.display_name": {
            "fr": "Chèvre cuirassée — repos",
            "en": "Chèvre cuirassée — idle",
            "default": "Chèvre cuirassée — repos"
        },
        "visuals.ironhide_goat_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.ironhide_goat_walk.display_name": {
            "fr": "Chèvre cuirassée — marche",
            "en": "Chèvre cuirassée — walk",
            "default": "Chèvre cuirassée — marche"
        },
        "visuals.jeremie_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.jeremie_idle.display_name": {
            "fr": "Jérémie — repos",
            "en": "Jérémie — idle",
            "default": "Jérémie — repos"
        },
        "visuals.jeremie_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.jeremie_walk.display_name": {
            "fr": "Jérémie — marche",
            "en": "Jérémie — walk",
            "default": "Jérémie — marche"
        },
        "visuals.loaded_dice_crab_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.loaded_dice_crab_idle.display_name": {
            "fr": "Crabe aux dés pipés — repos",
            "en": "Crabe aux dés pipés — idle",
            "default": "Crabe aux dés pipés — repos"
        },
        "visuals.loaded_dice_crab_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.loaded_dice_crab_walk.display_name": {
            "fr": "Crabe aux dés pipés — marche",
            "en": "Crabe aux dés pipés — walk",
            "default": "Crabe aux dés pipés — marche"
        },
        "visuals.lost_shopper_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.lost_shopper_idle.display_name": {
            "fr": "Client perdu — repos",
            "en": "Client perdu — idle",
            "default": "Client perdu — repos"
        },
        "visuals.lost_shopper_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.lost_shopper_walk.display_name": {
            "fr": "Client perdu — marche",
            "en": "Client perdu — walk",
            "default": "Client perdu — marche"
        },
        "visuals.magma_marmot_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.magma_marmot_idle.display_name": {
            "fr": "Marmotte de magma — repos",
            "en": "Marmotte de magma — idle",
            "default": "Marmotte de magma — repos"
        },
        "visuals.magma_marmot_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.magma_marmot_walk.display_name": {
            "fr": "Marmotte de magma — marche",
            "en": "Marmotte de magma — walk",
            "default": "Marmotte de magma — marche"
        },
        "visuals.maintenance_roach_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.maintenance_roach_idle.display_name": {
            "fr": "Cafard d'entretien — repos",
            "en": "Cafard d'entretien — idle",
            "default": "Cafard d'entretien — repos"
        },
        "visuals.maintenance_roach_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.maintenance_roach_walk.display_name": {
            "fr": "Cafard d'entretien — marche",
            "en": "Cafard d'entretien — walk",
            "default": "Cafard d'entretien — marche"
        },
        "visuals.mascot_husk_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.mascot_husk_idle.display_name": {
            "fr": "Carcasse de mascotte — repos",
            "en": "Carcasse de mascotte — idle",
            "default": "Carcasse de mascotte — repos"
        },
        "visuals.mascot_husk_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.mascot_husk_walk.display_name": {
            "fr": "Carcasse de mascotte — marche",
            "en": "Carcasse de mascotte — walk",
            "default": "Carcasse de mascotte — marche"
        },
        "visuals.mld_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.mld_idle.display_name": {
            "fr": "MLD — repos",
            "en": "MLD — idle",
            "default": "MLD — repos"
        },
        "visuals.mld_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.mld_walk.display_name": {
            "fr": "MLD — marche",
            "en": "MLD — walk",
            "default": "MLD — marche"
        },
        "visuals.platform_mimic_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.platform_mimic_idle.display_name": {
            "fr": "Mimique de quai — repos",
            "en": "Mimique de quai — idle",
            "default": "Mimique de quai — repos"
        },
        "visuals.platform_mimic_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.platform_mimic_walk.display_name": {
            "fr": "Mimique de quai — marche",
            "en": "Mimique de quai — walk",
            "default": "Mimique de quai — marche"
        },
        "visuals.player_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, rangées = orientations)."
        },
        "visuals.player_idle.display_name": {
            "default": "Joueur — repos",
            "fr": "Joueur — repos",
            "en": "Player — idle"
        },
        "visuals.player_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, rangées = orientations)."
        },
        "visuals.player_walk.display_name": {
            "fr": "Joueur — marche",
            "en": "Player — walk",
            "default": "Joueur — marche"
        },
        "visuals.powder_gull_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.powder_gull_idle.display_name": {
            "fr": "Goéland à poudre — repos",
            "en": "Goéland à poudre — idle",
            "default": "Goéland à poudre — repos"
        },
        "visuals.powder_gull_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.powder_gull_walk.display_name": {
            "fr": "Goéland à poudre — marche",
            "en": "Goéland à poudre — walk",
            "default": "Goéland à poudre — marche"
        },
        "visuals.pyro_pete_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.pyro_pete_idle.display_name": {
            "fr": "Pyro Pete — repos",
            "en": "Pyro Pete — idle",
            "default": "Pyro Pete — repos"
        },
        "visuals.pyro_pete_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.pyro_pete_walk.display_name": {
            "fr": "Pyro Pete — marche",
            "en": "Pyro Pete — walk",
            "default": "Pyro Pete — marche"
        },
        "visuals.quality_control_bot_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.quality_control_bot_idle.display_name": {
            "fr": "Robot de contrôle qualité — repos",
            "en": "Robot de contrôle qualité — idle",
            "default": "Robot de contrôle qualité — repos"
        },
        "visuals.quality_control_bot_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.quality_control_bot_walk.display_name": {
            "fr": "Robot de contrôle qualité — marche",
            "en": "Robot de contrôle qualité — walk",
            "default": "Robot de contrôle qualité — marche"
        },
        "visuals.rootbound_mannequin_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.rootbound_mannequin_idle.display_name": {
            "fr": "Mannequin enraciné — repos",
            "en": "Mannequin enraciné — idle",
            "default": "Mannequin enraciné — repos"
        },
        "visuals.rootbound_mannequin_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.rootbound_mannequin_walk.display_name": {
            "fr": "Mannequin enraciné — marche",
            "en": "Mannequin enraciné — walk",
            "default": "Mannequin enraciné — marche"
        },
        "visuals.shaman_musicalo_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.shaman_musicalo_idle.display_name": {
            "fr": "Shaman Musicalo — repos",
            "en": "Shaman Musicalo — idle",
            "default": "Shaman Musicalo — repos"
        },
        "visuals.shaman_musicalo_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.shaman_musicalo_walk.display_name": {
            "fr": "Shaman Musicalo — marche",
            "en": "Shaman Musicalo — walk",
            "default": "Shaman Musicalo — marche"
        },
        "visuals.siren_dancer_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.siren_dancer_idle.display_name": {
            "fr": "Danseuse sirène — repos",
            "en": "Danseuse sirène — idle",
            "default": "Danseuse sirène — repos"
        },
        "visuals.siren_dancer_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.siren_dancer_walk.display_name": {
            "fr": "Danseuse sirène — marche",
            "en": "Danseuse sirène — walk",
            "default": "Danseuse sirène — marche"
        },
        "visuals.skunk_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.skunk_idle.display_name": {
            "fr": "Moufette toxique — repos",
            "en": "Moufette toxique — idle",
            "default": "Moufette toxique — repos"
        },
        "visuals.skunk_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.skunk_walk.display_name": {
            "fr": "Moufette toxique — marche",
            "en": "Moufette toxique — walk",
            "default": "Moufette toxique — marche"
        },
        "visuals.spin_doctor_steve_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.spin_doctor_steve_idle.display_name": {
            "fr": "Steve la Girouette — repos",
            "en": "Steve la Girouette — idle",
            "default": "Steve la Girouette — repos"
        },
        "visuals.spin_doctor_steve_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.spin_doctor_steve_walk.display_name": {
            "fr": "Steve la Girouette — marche",
            "en": "Steve la Girouette — walk",
            "default": "Steve la Girouette — marche"
        },
        "visuals.trash_panda_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.trash_panda_idle.display_name": {
            "fr": "Raton-poubelle — repos",
            "en": "Raton-poubelle — idle",
            "default": "Raton-poubelle — repos"
        },
        "visuals.trash_panda_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.trash_panda_walk.display_name": {
            "fr": "Raton-poubelle — marche",
            "en": "Raton-poubelle — walk",
            "default": "Raton-poubelle — marche"
        },
        "visuals.tunnel_rat_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.tunnel_rat_idle.display_name": {
            "fr": "Rat des tunnels — repos",
            "en": "Rat des tunnels — idle",
            "default": "Rat des tunnels — repos"
        },
        "visuals.tunnel_rat_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.tunnel_rat_walk.display_name": {
            "fr": "Rat des tunnels — marche",
            "en": "Rat des tunnels — walk",
            "default": "Rat des tunnels — marche"
        },
        "visuals.turnstile_drone_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.turnstile_drone_idle.display_name": {
            "fr": "Drone tourniquet — repos",
            "en": "Drone tourniquet — idle",
            "default": "Drone tourniquet — repos"
        },
        "visuals.turnstile_drone_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.turnstile_drone_walk.display_name": {
            "fr": "Drone tourniquet — marche",
            "en": "Drone tourniquet — walk",
            "default": "Drone tourniquet — marche"
        },
        "visuals.vote_vulture_idle.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.vote_vulture_idle.display_name": {
            "fr": "Vautour électoral — repos",
            "en": "Vautour électoral — idle",
            "default": "Vautour électoral — repos"
        },
        "visuals.vote_vulture_walk.description": {
            "default": "Généré par PixelLab (v3, high top-down, vue sud)."
        },
        "visuals.vote_vulture_walk.display_name": {
            "fr": "Vautour électoral — marche",
            "en": "Vautour électoral — walk",
            "default": "Vautour électoral — marche"
        },
        "weapons.egg_launcher.description": {
            "default": "Une arme à projectile rapide; ses œufs peuvent être améliorés globalement."
        },
        "weapons.egg_launcher.display_name": {
            "default": "Lance-œuf"
        },
        "weapons.restaurant_fork.description": {
            "default": "L'arme de départ: un coup direct précis qui respecte les corps devant sa cible."
        },
        "weapons.restaurant_fork.display_name": {
            "default": "Fourchette du restaurant"
        }
    }
}
