{"version":7,"stages":[{"stageNumber":1,"name":"Happy Valley Municipal Airport","theme":"happy_valley","isFree":true,"levelCount":7,"levels":[{"stageId":"1-1","title":"Stage 1-1  ·  Happy Valley","terminals":2,"runways":1,"layovers":0,"maxHolding":2,"colorMatch":false,"gateColors":[],"spawnInterval":16,"planeCount":4,"dayLength":200,"goalScore":1100,"needChance":0,"difficulty":"easy","allowedPlanes":["blue","purple","coral"],"allowedClasses":["prop","turbo"],"objectives":[{"kind":"land","target":4},{"kind":"launch","target":4}],"waves":[],"background":"bg_stage1","tutorial":{"icon":"🛬","text":"Welcome to Happy Valley! Tap a plane, then tap an open TERMINAL (A or B) — it flies in to land and pull up so passengers can get off and on. When it is loaded, tap it and then the RUNWAY to send it on its way. Clear every plane before time runs out!"}},{"stageId":"1-2","title":"Stage 1-2  ·  Picking Up","terminals":2,"runways":1,"layovers":0,"maxHolding":2,"colorMatch":false,"gateColors":[],"spawnInterval":15,"planeCount":5,"dayLength":220,"goalScore":1500,"needChance":0,"difficulty":"easy","allowedPlanes":["blue","purple","coral","peach"],"allowedClasses":["prop","turbo","bizjet"],"objectives":[{"kind":"land","target":5},{"kind":"early","target":1}],"waves":[],"background":"bg_stage1"},{"stageId":"1-3","title":"Stage 1-3  ·  Two Runways","terminals":2,"runways":2,"layovers":0,"maxHolding":3,"colorMatch":false,"gateColors":[],"spawnInterval":11,"planeCount":7,"dayLength":210,"goalScore":2200,"needChance":0,"difficulty":"medium","allowedPlanes":["blue","purple","coral","peach","green"],"allowedClasses":["turbo","bizjet","regional"],"objectives":[{"kind":"land","target":7},{"kind":"launch","target":7}],"waves":[],"background":"bg_stage1"},{"stageId":"1-4","title":"Stage 1-4  ·  Color Match","terminals":3,"runways":2,"layovers":1,"maxHolding":3,"colorMatch":true,"gateColors":["blue","green","peach"],"spawnInterval":9,"planeCount":9,"dayLength":210,"goalScore":3000,"needChance":0,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["regional","narrow"],"objectives":[{"kind":"match","color":"blue","target":2},{"kind":"match","color":"green","target":2}],"waves":[],"background":"bg_stage1","tutorial":{"icon":"🎨","text":"New: terminals now have COLORS. Send a plane to the terminal that matches its color for a bonus — match the same color again to raise the multiplier!"}},{"stageId":"1-5","title":"Stage 1-5  ·  Fuel Stop","terminals":3,"runways":2,"layovers":1,"maxHolding":3,"colorMatch":false,"gateColors":[],"spawnInterval":10,"planeCount":9,"dayLength":215,"goalScore":3400,"needChance":0.3,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["turbo","bizjet","regional"],"objectives":[{"kind":"land","target":9},{"kind":"refuel","target":1}],"waves":[],"background":"bg_stage1","tutorial":{"icon":"⛽","text":"Some planes land low on FUEL or needing REPAIR — watch for the ⚠️ badge. Tap the plane, then the gas station or hangar to service it before sending it on to a gate."}},{"stageId":"1-6","title":"Stage 1-6  ·  Heavy Metal","terminals":3,"runways":2,"layovers":2,"maxHolding":4,"colorMatch":true,"gateColors":["blue","coral","purple"],"spawnInterval":9,"planeCount":11,"dayLength":225,"goalScore":4400,"needChance":0.25,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["regional","narrow","wide"],"objectives":[{"kind":"match","color":"coral","target":2},{"kind":"land","target":11}],"waves":[],"background":"bg_stage1","tutorial":{"icon":"🛬","text":"Widebody jumbos have arrived! They carry the most passengers and pay the most — but they are slow to turn around and need extra runway. Give them room."}},{"stageId":"1-7","title":"Stage 1-7  ·  Rush Hour","terminals":4,"runways":3,"layovers":2,"maxHolding":5,"colorMatch":true,"gateColors":["blue","green","peach","yellow"],"spawnInterval":7,"planeCount":13,"dayLength":235,"goalScore":6000,"needChance":0.3,"difficulty":"hard","allowedPlanes":[],"allowedClasses":[],"objectives":[{"kind":"land","target":13},{"kind":"match","color":"blue","target":2},{"kind":"early","target":2}],"waves":[],"background":"bg_stage1"}]},{"stageNumber":2,"name":"Pinecrest Regional Airport","theme":"happy_valley","isFree":true,"levelCount":8,"levels":[{"stageId":"2-1","title":"Stage 2-1  ·  The Big Leagues","terminals":3,"runways":2,"layovers":1,"maxHolding":3,"colorMatch":false,"gateColors":[],"spawnInterval":11,"planeCount":9,"dayLength":215,"goalScore":3800,"needChance":0,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["turbo","regional","narrow"],"objectives":[{"kind":"land","target":9},{"kind":"launch","target":9}],"waves":[],"background":"bg_stage2","tutorial":{"icon":"🛫","text":"Welcome to Pinecrest Regional — a bigger, busier airport with jets in every gate. Same job: land them, service them, and launch them before the clock runs out."}},{"stageId":"2-2","title":"Stage 2-2  ·  Color Coded","terminals":3,"runways":2,"layovers":1,"maxHolding":4,"colorMatch":true,"gateColors":["blue","yellow","coral"],"spawnInterval":10,"planeCount":10,"dayLength":220,"goalScore":4400,"needChance":0,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["regional","narrow"],"objectives":[{"kind":"match","color":"blue","target":2},{"kind":"match","color":"yellow","target":2}],"waves":[],"background":"bg_stage2"},{"stageId":"2-3","title":"Stage 2-3  ·  Pit Crew","terminals":3,"runways":2,"layovers":2,"maxHolding":4,"colorMatch":false,"gateColors":[],"spawnInterval":10,"planeCount":11,"dayLength":225,"goalScore":4900,"needChance":0.35,"difficulty":"medium","allowedPlanes":[],"allowedClasses":["bizjet","regional","narrow"],"objectives":[{"kind":"land","target":11},{"kind":"refuel","target":2},{"kind":"repair","target":1}],"waves":[],"background":"bg_stage2"},{"stageId":"2-4","title":"Stage 2-4  ·  Heavy Traffic","terminals":3,"runways":3,"layovers":2,"maxHolding":4,"colorMatch":false,"gateColors":[],"spawnInterval":10,"planeCount":11,"dayLength":230,"goalScore":5400,"needChance":0,"difficulty":"hard","allowedPlanes":[],"allowedClasses":["narrow","wide"],"objectives":[{"kind":"land","target":11},{"kind":"launch","target":11}],"waves":[],"background":"bg_stage2","tutorial":{"icon":"🛬","text":"Heavy traffic ahead — widebodies dominate this rush. Lean on all your runways and a layover spot to keep the flow moving."}},{"stageId":"2-5","title":"Stage 2-5  ·  Full House","terminals":4,"runways":3,"layovers":2,"maxHolding":5,"colorMatch":true,"gateColors":["blue","green","peach","coral"],"spawnInterval":9,"planeCount":12,"dayLength":230,"goalScore":6200,"needChance":0.3,"difficulty":"hard","allowedPlanes":[],"allowedClasses":["regional","narrow","wide"],"objectives":[{"kind":"match","color":"coral","target":3},{"kind":"refuel","target":2},{"kind":"land","target":12}],"waves":[],"background":"bg_stage2"},{"stageId":"2-6","title":"Stage 2-6  ·  Open Throttle","terminals":4,"runways":3,"layovers":2,"maxHolding":5,"colorMatch":false,"gateColors":[],"spawnInterval":8,"planeCount":13,"dayLength":235,"goalScore":7000,"needChance":0,"difficulty":"hard","allowedPlanes":[],"allowedClasses":["turbo","bizjet","regional","narrow","wide"],"objectives":[{"kind":"land","target":13},{"kind":"early","target":3}],"waves":[],"background":"bg_stage2"},{"stageId":"2-7","title":"Stage 2-7  ·  Gridlock","terminals":4,"runways":3,"layovers":3,"maxHolding":6,"colorMatch":true,"gateColors":["blue","green","peach","yellow"],"spawnInterval":8,"planeCount":14,"dayLength":240,"goalScore":7800,"needChance":0.35,"difficulty":"hard","allowedPlanes":[],"allowedClasses":["regional","narrow","wide"],"objectives":[{"kind":"match","color":"green","target":3},{"kind":"match","color":"blue","target":2},{"kind":"refuel","target":2}],"waves":[],"background":"bg_stage2"},{"stageId":"2-8","title":"Stage 2-8  ·  Grand Rush","terminals":4,"runways":4,"layovers":3,"maxHolding":7,"colorMatch":true,"gateColors":["blue","green","peach","coral"],"spawnInterval":7,"planeCount":16,"dayLength":250,"goalScore":9000,"needChance":0.4,"difficulty":"hard","allowedPlanes":[],"allowedClasses":[],"objectives":[{"kind":"land","target":16},{"kind":"match","color":"blue","target":3},{"kind":"early","target":3}],"waves":[],"background":"bg_stage2"}]},{"stageNumber":3,"name":"Stage 3","theme":"happy_valley","isFree":true,"levelCount":9,"levels":[]},{"stageNumber":4,"name":"Stage 4","theme":"happy_valley","isFree":true,"levelCount":10,"levels":[]},{"stageNumber":5,"name":"Stage 5","theme":"happy_valley","isFree":false,"levelCount":11,"levels":[]},{"stageNumber":6,"name":"Stage 6","theme":"happy_valley","isFree":false,"levelCount":12,"levels":[]},{"stageNumber":7,"name":"Stage 7","theme":"happy_valley","isFree":false,"levelCount":13,"levels":[]},{"stageNumber":8,"name":"Stage 8","theme":"happy_valley","isFree":false,"levelCount":14,"levels":[]}]}