I get why devs do this sometimes. iOS bakes a lot of support into the OS (so does Android, though increasingly because of slow uptake of new versions Google baking everything into the Play API), and iOS 16 is necessary for a variety of APIs, and even a lot of SwiftUI functionality if they went down that route. And then your APIs start changing so you end up invariably doing breaking changes so you can't just ignore the old versioned apps in the wild.