Location of the "mainProject" file
Shouldn't be better this file stored in the parent project instead of one level of folders up? I think it may cause problems in some cases.
https://github.com/ReplayMod/preprocessor/blob/3c46acb326bf4c4c338046991b4835b9d3ecd2ae/src/main/kotlin/com/replaymod/gradle/preprocess/PreprocessPlugin.kt#L30
Yeah, it could cause problems if you don't have all your versions in the same folder (one plausible example would be someone wanting to support Fabric and Forge with a structure like fabric/1.15.2/, fabric/1.16.2/, forge/1.15.2/, forge/1.16.2/).
Merely having it be relative to the parent project would then introduce a different assumption though: the RM places the file relative to the root project at versions/mainProject, while the above example would likely prefer it to be at ./mainProject.
Ideally the location of that file should just be configurable via the parent project's RootPreprocessExtension (defaulting to the current behavior of placing it one folder up from one of the sub-projects).