The basics:

Pasteurized uses EnhancedBooleanSuppliers and EnhancedNumericSuppliers.

Go take a read for further usage of those

Modifying the global gamepads:

Layering:

You can then write code to figure out when to change layers, or write your own.

Pasteurized uses a bunch of generics in order to allow it to work with systems like Mercurial, which is much nicer in Kotlin than in Java.