path = StackState<Path.State>() } enum Action { case path(StackActionOf<ScheduleDetail>) } var body: some View { Reduce { state, action in … } .forEach(\.path, action: \.path) { Path() } } } extension Schedule { @Reducer struct Path { @ObservableState enum State: Equatable { case detail(ScheduleDetail.State) } enum Action { case detail(ScheduleDetail.Action) } var body: some ReducerOf<Self> { Scope(state: \.detail, action: \.detail) { ScheduleDetail() } } } } @Reducer struct Schedule { @ObservableState struct State: Equatable { @Presents var destination: Destination.State? } enum Action { case destination(PresentationAction<Destination.Action>) } var body: some ReducerOf<Schedule> { Reduce { state, action in … } .ifLet(\.$destination, action: \.destination) { Destination() } } } extension Schedule { @Reducer struct Destination { @ObservableState enum State: Equatable { case detail(ScheduleDetail.State) } enum Action { case detail(ScheduleDetail.Action) } var body: some ReducerOf<Self> { Reduce { state, action in Scope(state: \.detail, action: \.detail) { ScheduleDetail() } } } …