Example: I recently wrote the T&S for my Finnish dictionary app (still working on it), and I make it clear in advance that the license was a one time fee for perpetual use for that major version. [1]
I can do this because the app is almost entirely offline, and because for the parts that are, smart cloud infra decisions means my recurring infra costs are low. If I add in features which imply a bespoke server down the line, of course that would probably be a major version upgrade - and a change in the pricing model to boot. But I'd still keep the old v1 stuff up for the lifers.
[1]: https://taskusanakirja.com/terms-of-service/#91-pricing-and-...