Feature: Race Event Performance Summary Notifications As a driver I want to receive performance summary notifications after races So that I can see my results and rating changes immediately Background: Given a league exists with stewarding configuration And a season exists for that league And a race event is scheduled with practice, qualifying, and main race sessions Scenario: Driver receives performance summary after main race completion Given I am a registered driver for the race event And all sessions are scheduled When the main race session is completed Then a MainRaceCompleted domain event is published And I receive a race_performance_summary notification And the notification shows my position, incidents, and provisional rating change And the notification has modal urgency and requires no response Scenario: Driver receives final results after stewarding closes Given I am a registered driver for the race event And the main race has been completed And the race event is in awaiting_stewarding status When the stewarding window expires Then a RaceEventStewardingClosed domain event is published And I receive a race_final_results notification And the notification shows my final position and rating change And the notification indicates if penalties were applied Scenario: Practice and qualifying sessions don't trigger notifications Given I am a registered driver for the race event When practice and qualifying sessions are completed Then no performance summary notifications are sent And the race event status remains in_progress Scenario: Only main race completion triggers performance summary Given I am a registered driver for the race event And the race event has practice, qualifying, sprint, and main race sessions When the sprint race session is completed Then no performance summary notification is sent When the main race session is completed Then a performance summary notification is sent Scenario: Provisional rating changes are calculated correctly Given I finished in position 1 with 0 incidents When the main race is completed Then my provisional rating change should be +25 points And the notification should display "+25 rating" Scenario: Rating penalties are applied for incidents Given I finished in position 5 with 3 incidents When the main race is completed Then my provisional rating change should be reduced by 15 points And the notification should show the adjusted rating change Scenario: DNF results show appropriate rating penalty Given I did not finish the race (DNF) When the main race is completed Then my provisional rating change should be -10 points And the notification should display "DNF" as position Scenario: Stewarding close mechanism works correctly Given a race event is awaiting_stewarding And the stewarding window is configured for 24 hours When 24 hours have passed since the main race completion Then the CloseRaceEventStewardingUseCase should close the event And final results notifications should be sent to all participants Scenario: Race event lifecycle transitions work correctly Given a race event is scheduled When practice and qualifying sessions start Then the race event status becomes in_progress When the main race completes Then the race event status becomes awaiting_stewarding When stewarding closes Then the race event status becomes closed Scenario: Notifications include proper action buttons Given I receive a performance summary notification Then it should have a "View Full Results" action button And clicking it should navigate to the race results page Scenario: Final results notifications include championship standings link Given I receive a final results notification Then it should have a "View Championship Standings" action button And clicking it should navigate to the league standings page Scenario: Notifications are sent to all registered drivers Given 10 drivers are registered for the race event When the main race is completed Then 10 performance summary notifications should be sent When stewarding closes Then 10 final results notifications should be sent Scenario: League configuration affects stewarding window Given a league has stewardingClosesHours set to 48 When a race event is created for that league Then the stewarding window should be 48 hours after main race completion