writeLaunchers takes its entrypoint-to-launcher names from buildstep.Launchers, the rule the controller reads a bundle by. RecipeSteps goes to 2: a member is now built against the SDK its own lock names, which can change what a build produces (ADR 0405 §7).