If the `build` step in fact does what you want other than this, it would not be difficult to define a `Describable` extension point for an argument which contributes `Action`s to the `Queue.Item`, e.g.
build job: 'downstream', options: [eiffel(something: 123)]
where your plugin would define something like
public final class EiffelBuildStepOption extends BuildStepOption {
@DataBoundConstructor EiffelBuildStepOption(int something) {…}
@Override List<Action> produceActions(Job<?, ?> downstreamJob, …) {…}
@Symbol("eiffel") @Extension public static final DescriptorImpl extends BuildStepOptionDescriptor {}
}
If you want to experiment with an API like that, my advice is to file the upstream PR to `pipeline-build-step-plugin` defining the API with a synopsis of the motivation, and concurrently file a draft downstream PR to your own plugin consuming the upstream PR via an incremental version dep and verifying that the system works in a `JenkinsRule` test running an example upstream/downstream build pair.