The basic OpMode usage with Mercurial looks like this:

// this enables the scheduler
@Mercurial.Attach
// add additional Subsystem attaches
public class MercurialUsage extends OpMode {
	@Override
	public void init() {
		// modify gamepads

		// apply bindings
	}

	@Override
	public void loop() {

	}
}

Its not too complicated.

You may find using OpMode templating and writing Features to help configure the gamepad and binding setup useful. Also, consider writing static utility methods to create commands that use multiple subsystems.

Take a look at the examples repo to see an example Subsystem and an example OpMode with more going on.

Java

Kotlin