This also has support for color vs colour and gray vs grey.
Technical Changes
Removed methods buttons, these caused issues as methods did not retain order so they needed targets.
Instead you can not use the annotation on a runnable field and it will be a button and you wont need a target.
Multiple new options have been added:
@Color this is a simple color selector with a live preview, it allows setting defaults colors and if alpha is allowed.
@Select this is for enum arrays, it allows for multi-select lists.
@Draggable this is also for enum arrays, it allows for draggable lists, it also allows for a provided list of values that are duplicate.
Additionally, with this you can provide a @Range annotation to determine the upper and lower bounds of the draggable list size.
@Keybind this is for keybinds, it allows for a keybind to be set.
This is useful for when a keybind is too specific for the Minecraft keybinds screen.
@SearchTerm this goes along with the newly added search bar, it allows for additional search terms to be added to an option.
With the new search bar, when you get a config screen you can provide a function to get terms from a string, this is useful if you want to auto translate the search terms.
This version also adds a new parameter to the registration of configs which allows "fixing", this is a datafixer of sorts.
Additionally, the config annotation now has a version parameter.
Added Observable which is a type that can wrap any non object type and will allow for listening to changes.
This is useful if you dont want to check right away, or you need to do post-processing.
Enums are now allowed in arrays
Certain values that are displayed like enums can now implement Translatable, this will also check for StringRepresentable if it has it else it will use toString.
Additional config class parsers have been added, this is for other languages like Kotlin can be supported, with Kotlin already in the works.