It’s not possible to do Shuttle Repair using just-in-time engine mounting on Max input. The shuttles come in every 6 cycles, so you get exactly 6 engine pieces during that time. If you could be 100% efficient, no input delays, in getting the engine pieces off the initial input line, you could do it. Because any perpendicular move - horizontal or vertical - involves a 1 or 2 cycle hold up in the input line, inevitably the shuttles will outpace the engine assembly.
I tried for an unstable solution, using an oversized input buffer of 12 engine pieces, assembling 4 per run. I used falling instead of pushing, which entails a 1 cycle delay instead of 2. I ended up running out of engine pieces after 8 shuttles.
So traffic control is required for Max input. I had a brainstorm and realized I could use leave the damaged engines on the shuttle until the last moment, and use them to control flow.
Note that the eviscerator controller uses a Helio-style AND gate - the presence of an assembled engine in the ready area pushes the sensor forward, where it can activate the eviscerators if a shuttle is fully in place.
Here’s a look at that 12-item buffer.
There’s another sensor on a pusher. The sequence is shuttle arrives -> sensor 1 detects shuttle and pushes engines into place -> simultaneously sensor 2 detects the shuttle and begins retracting sensor 1 -> sensor 1 is now disabled, the engine pushers retract, and allow the next engine to fall into place.
Without this mechanism, the pushers for the engines stay in place as long as the shuttle is moving past, delaying the entry of the next engine piece. It converts a rising-edge event (off->on) to a single pulse.
Total time for the new solution is 94 cycles.