In Designing Gradle plugins it says
It is recommended to use a statically-typed language like Java or Kotlin for implementing plugins to decrease the likelihood of binary incompatibilities. Should you decide on using Groovy for your plugin implementation then it is a good choice to use the annotation @groovy.transform.CompileStatic.
I'm not sure if you covered it in your video(s) but it would be interesting to learn more about this recommendation, since you've implemented the range of possibilities in this project.