What about a 6x6? Balance the risk vs reward.
That'd be the absolute worst choice they could make. Makes him an UFA at 29 right in the midst of the Flames (expected) resurgence. Now they're forced to either re-sign him longterm for maximum dollars to cover the declining years of his career or lose him for nothing in free agency. It's literally what they did with Gaudreau and look how that burnt them.
A 2 or 3 year bridge followed by an 8 year deal is better because at least you've got the potential to keep a key piece for the entirety of their prime. But it's also assiduously poor cap management, which is why it's what the Flames will most likely do. Never seen an organization more resistant to understanding the very basics of cap management than this one.
Smartest thing is just to literally follow the rest of the league and lock up your talent to 8 year deals as soon as possible. Might be a slight overpayment in the first couple of years but it's evened out by having a bargain when it matters the most, i.e., as the Flames are trying to win the cup.
Of course, there's no rush at the moment. Wait and see how the year goes. If he puts up 60+ points, it should be an absolute no brainer to lock him for the full 8 years because even if he doesn't keep getting better, 7-8M is still fair value.