Currently, we use a mix of APIs in Gradle plugins. Some of the API comes directly from Gradle (Task, Project, Plugin, etc.) while other API elements wrap the Gradle API for convenience (Module, GradleTask, TaskName, etc.).
We should gradually migrate from the raw Gradle API to more abstract concepts.