29 was used for two different binaries during the listing refinement, so
the next install would have been indistinguishable from the last one.
Raised in all eight configurations — app, widget, watch app and watch
extension, Debug and Release — so the whole bundle reports one number.
- Alerts: drop the alert-type picker and the Best Value alert path, so
proximity alerts always follow the cheapest station. A stored `bestValue`
selection now falls back to cheapest when loaded.
- Key sheet: the price-rating, savings, station-label and favourite wording
comes from `KeySheetContent` in Shared/FuelSavings.swift — a Foundation-only
model with tests that pin the exact meaning of each indicator — and the
sheet is built from that model rather than inline strings.
- BACKLOG: record the plan to restore Best Value proximity alerts behind one
shared evaluator (user-location baseline, a single disclosed qualification
rule, and real/Test alert parity).
- Bump CURRENT_PROJECT_VERSION to 29.
- IPHONEOS_DEPLOYMENT_TARGET 17.0 -> 26.0 (iPhone 11+, Apple's current floor)
- Widget CarPlay disfavor is now unconditional (no #available guard)
- Live Activity gains supplementalActivityFamilies([.small]) so it renders
in the car's small slot on CarPlay Ultra (display-only: FuelBoard has no
CarPlay entitlement, car taps can't launch anything)