Make initial StateTransition
run before PreStartup
(#14208)
# Objective
- Fixes #14206
## Solution
- Run initial `StateTransition` as a startup schedule before
`PreStartup`, instead of running it inside `Startup` as an exclusive
system.
Related discord discussion:
https://discord.com/channels/691052431525675048/692572690833473578/1259543775668207678
## Testing
Reproduction now works correctly:
```rs
use bevy::prelude::*;
#[derive(Debug, Clone, Copy, Default, Eq, PartialEq, Hash, States)]
enum AppState {
#[default]
Menu,
InGame,
}
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.init_state::<AppState>()
.add_systems(Startup, setup)
.add_systems(OnEnter(AppState::Menu), enter_menu_state)
.run();
}
fn setup(mut next_state: ResMut<NextState<AppState>>) {
next_state.set(AppState::Menu);
}
fn enter_menu_state() {
println!("Entered menu state");
}
```

---
## Changelog
- Initial `StateTransition` runs before `PreStartup` instead of inside
`Startup`.