Whisk together olive oil, lemon juice, minced garlic, oregano, basil, thyme, smoked paprika, onion powder, salt, pepper, and red pepper flakes (if using) in a large bowl or zip-lock bag. Set aside 2 tablespoons (30 ml) of marinade in a small bowl to use as a basting glaze — do not use this reserved portion on raw chicken.
Pat chicken dry with paper towels, cut into uniform 1½-inch (3.8 cm) cubes, and add to the marinade, tossing to coat thoroughly. Seal and refrigerate for at least 1 hour, ideally 4–8 hours; do not exceed 8 hours or the lemon juice will break down the texture.
Cut zucchini and squash into ½-inch rounds; cut peppers and onion into 1½-inch pieces; trim mushroom stems and leave cherry tomatoes whole. Toss vegetables in a drizzle of olive oil with salt and pepper; add them to the marinade for the last 30 minutes of the chicken's marinating time.
If using bamboo or wooden skewers, submerge them fully in cold water and soak for at least 30 minutes (up to 1 hour) to prevent charring on the grill. Metal skewers can skip this step.
Thread chicken and vegetables alternately onto skewers, leaving a small ¼-inch gap between each piece for even heat circulation. You should get approximately 8–10 skewers.
Preheat your gas grill to medium-high heat (400–425°F / 205–220°C) for 10–15 minutes, then clean the grates and wipe with an oil-dipped paper towel held in tongs to prevent sticking. For charcoal, let coals burn to ash-gray before spreading evenly.
Grill skewers for 5–7 minutes per side, rotating a quarter turn each time, until the chicken reaches an internal temperature of 165°F (74°C) — about 12–15 minutes total. In the last 2 minutes, brush with the reserved marinade for a fresh burst of flavor.
Transfer skewers to a clean plate and rest for 3–5 minutes, then garnish with fresh chopped parsley or basil and a pinch of flaky sea salt. Serve with lemon wedges on the side for squeezing over everything.