- Screens.swift: selectPlanningMode scrolls UP (modes are at top of wizard)
- TripWizardFlowTests: F040 selects sport before dates to avoid async
availability check disabling MLB for December off-season
- SportsTimeUITests: add --ui-testing/--disable-animations/--reset-state
launch args to accessibility, demo, and manual flow tests
- Demo test: remove -DemoMode flag that caused double-toggle (demo
auto-selects + manual taps toggled sports/regions off)
- Manual test: replace blind swipes with scrollIntoView + wait-for-enabled
for Plan button; use waitForExistence for trip card selection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add VoiceOver labels, hints, and element grouping across all 60+ views
- Add Reduce Motion support (Theme.Animation.prefersReducedMotion) to all animations
- Replace fixed font sizes with semantic Dynamic Type styles
- Hide decorative elements from VoiceOver with .accessibilityHidden(true)
- Add .minimumHitTarget() modifier ensuring 44pt touch targets
- Add AccessibilityAnnouncer utility for VoiceOver announcements
- Improve color contrast values in Theme.swift for WCAG AA compliance
- Extract CloudKitContainerConfig for explicit container identity
- Remove PostHog debug console log from AnalyticsManager
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Three-scenario planning engine (A: date range, B: selected games, C: directional routes)
- GeographicRouteExplorer with anchor game support for route exploration
- Shared ItineraryBuilder for travel segment calculation
- TravelEstimator for driving time/distance estimation
- SwiftUI views for trip creation and detail display
- CloudKit integration for schedule data
- Python scraping scripts for sports schedules
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>