{
  "version": "2.0.0",
  "tasks": [
    {
      "label": "cargo fmt (workspace check)",
      "type": "cargo",
      "command": "fmt",
      "args": ["--all", "--check"],
      "problemMatcher": [],
      "group": "build"
    },
    {
      "label": "cargo check (workspace all targets)",
      "type": "cargo",
      "command": "check",
      "args": ["--workspace", "--all-targets"],
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "cargo clippy (workspace strict)",
      "type": "cargo",
      "command": "clippy",
      "args": ["--workspace", "--all-targets", "--", "-D", "warnings"],
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "cargo test (workspace)",
      "type": "cargo",
      "command": "test",
      "args": ["--workspace"],
      "problemMatcher": ["$rustc"],
      "group": "test"
    },
    {
      "label": "cargo clippy (launch feature matrix)",
      "type": "shell",
      "command": "python",
      "args": [
        "scripts/codex/cargo_lane.py",
        "exec",
        "hot-reload",
        "--",
        "cargo",
        "clippy",
        "-p",
        "editor",
        "-p",
        "game",
        "--bins",
        "--features",
        "dev,hot-reload",
        "--",
        "-D",
        "warnings"
      ],
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "validate level scenes",
      "type": "cargo",
      "command": "validate-levels",
      "args": [],
      "problemMatcher": ["$rustc"],
      "group": "test"
    },
    {
      "label": "build game (debug)",
      "type": "cargo",
      "command": "build",
      "args": ["-p", "game", "--bin", "game"],
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "build editor (debug)",
      "type": "cargo",
      "command": "build",
      "args": ["-p", "editor", "--bin", "editor"],
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "build editor (dev fast-link)",
      "type": "cargo",
      "command": "build",
      "args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
      },
      "problemMatcher": ["$rustc"],
      "group": { "kind": "build", "isDefault": true }
    },
    {
      "label": "build game (dev fast-link)",
      "type": "cargo",
      "command": "build",
      "args": ["-p", "game", "--bin", "game", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": { "CARGO_TARGET_DIR": "${workspaceFolder}/target" }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "build storage status",
      "type": "shell",
      "command": "python",
      "args": ["scripts/codex/build_storage.py", "status"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": [],
      "group": "build"
    },
    {
      "label": "build storage prune (dry run)",
      "type": "shell",
      "command": "python",
      "args": ["scripts/codex/build_storage.py", "prune", "--dry-run"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": [],
      "group": "build"
    },
    {
      "label": "build storage prune (apply)",
      "type": "shell",
      "command": "python",
      "args": ["scripts/codex/build_storage.py", "prune", "--apply"],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": [],
      "group": "build"
    },
    {
      "label": "run editor (dev fast-link)",
      "type": "cargo",
      "command": "run",
      "args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "WGPU_VALIDATION": "0",
          "CARGO_TARGET_DIR": "${workspaceFolder}/target"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "run game (dev fast-link)",
      "type": "cargo",
      "command": "run",
      "args": ["-p", "game", "--bin", "game", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "WGPU_VALIDATION": "0",
          "CARGO_TARGET_DIR": "${workspaceFolder}/target"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "run editor (hot reload)",
      "type": "shell",
      "command": "python",
      "args": [
        "scripts/codex/cargo_lane.py",
        "exec",
        "hot-reload",
        "--",
        "cargo",
        "run",
        "-p",
        "editor",
        "--bin",
        "editor",
        "--features",
        "dev,hot-reload"
      ],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "WGPU_VALIDATION": "0"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "run game (hot reload)",
      "type": "shell",
      "command": "python",
      "args": [
        "scripts/codex/cargo_lane.py",
        "exec",
        "hot-reload",
        "--",
        "cargo",
        "run",
        "-p",
        "game",
        "--bin",
        "game",
        "--features",
        "dev,hot-reload"
      ],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "WGPU_VALIDATION": "0"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "run editor (SDR fallback)",
      "type": "cargo",
      "command": "run",
      "args": ["-p", "editor", "--bin", "editor", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "BEVY_FPS_HDR": "0",
          "WGPU_VALIDATION": "0",
          "CARGO_TARGET_DIR": "${workspaceFolder}/target"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "run game (SDR fallback)",
      "type": "cargo",
      "command": "run",
      "args": ["-p", "game", "--bin", "game", "--features", "dev"],
      "options": {
        "cwd": "${workspaceFolder}",
        "env": {
          "RUST_BACKTRACE": "1",
          "BEVY_FPS_HDR": "0",
          "WGPU_VALIDATION": "0",
          "CARGO_TARGET_DIR": "${workspaceFolder}/target"
        }
      },
      "problemMatcher": ["$rustc"],
      "group": "build"
    },
    {
      "label": "watch game_hot (hot reload)",
      "type": "shell",
      "command": "python",
      "args": [
        "scripts/codex/cargo_lane.py",
        "exec",
        "hot-reload",
        "--",
        "cargo",
        "watch",
        "-w",
        "crates/game_hot",
        "-w",
        "crates/sim",
        "-x",
        "build -p game_hot --features dylib"
      ],
      "options": {
        "cwd": "${workspaceFolder}"
      },
      "problemMatcher": ["$rustc"],
      "group": "build",
      "isBackground": true,
      "detail": "Requires cargo-watch: cargo install cargo-watch --locked"
    },
    {
      "label": "verify workspace",
      "dependsOrder": "sequence",
      "dependsOn": [
        "cargo fmt (workspace check)",
        "cargo check (workspace all targets)",
        "cargo clippy (workspace strict)",
        "cargo test (workspace)",
        "cargo clippy (launch feature matrix)",
        "validate level scenes",
        "build game (debug)",
        "build editor (debug)"
      ],
      "problemMatcher": [],
      "group": "build"
    }
  ]
}
