import com.github.sormuras.bach.project.Feature;
import com.github.sormuras.bach.project.ProjectInfo;
import com.github.sormuras.bach.project.ProjectInfo.Link;
import com.github.sormuras.bach.project.ProjectInfo.Tweak;

@ProjectInfo(
    name = "bach",
    version = "16-ea",
    modules = "com.github.sormuras.bach/main/java/module-info.java",
    compileModulesForJavaRelease = 16,
    features = {
      Feature.GENERATE_API_DOCUMENTATION,
      Feature.GENERATE_CUSTOM_RUNTIME_IMAGE,
      Feature.GENERATE_MAVEN_POM_FILES,
      Feature.INCLUDE_SOURCES_IN_MODULAR_JAR
    },
    tests = {
      "com.github.sormuras.bach/test/java-module/module-info.java",
      "test.base/test/java/module-info.java",
      "test.integration/test/java/module-info.java",
    },
    requires = {"org.junit.platform.console"},
    links = {
      @Link(module = "org.apiguardian.api", to = "org.apiguardian:apiguardian-api:1.1.0"),
      @Link(module = "org.opentest4j", to = "org.opentest4j:opentest4j:1.2.0"),
    },
    tweaks = {
      @Tweak(tool = "javac", with = {"-encoding", "UTF-8"}),
      @Tweak(tool = "javac", with = "-g"),
      @Tweak(tool = "javac", with = "-parameters"),
      @Tweak(tool = "javac", with = "-Xlint"),
      @Tweak(tool = "javac", with = "-Werror", in = Tweak.Space.MAIN),
      @Tweak(
          tool = "javadoc",
          with = {
            "-encoding",
            "UTF-8",
            "-windowtitle",
            "🎼 Bach",
            "-header",
            "🎼 Bach",
            "-use",
            "-linksource",
            "-notimestamp",
            "-Werror",
            "-Xdoclint",
            "-quiet"
          }),
      @Tweak(tool = "junit", with = "--fail-if-no-tests", in = Tweak.Space.TEST)
    })
module build {
  requires com.github.sormuras.bach;

  provides com.github.sormuras.bach.BuildProgram with
      build.BachBuildProgram;
  provides com.github.sormuras.bach.project.ModuleLookup with
      build.JUnitModuleLookup;
}

@@ -1302,27 +1302,16 @@
  @Tweak(
-%0A          
 tool = %22
@@ -1323,72 +1323,37 @@
 oc%22,
-%0A          with = %7B%0A            %22-encoding%22,%0A           
+ with = %7B%22-encoding%22,
  %22UTF-8%22
 ,%0A  
@@ -1348,24 +1348,26 @@
  %22UTF-8%22
+%7D)
 ,%0A      
       %22-
@@ -1358,22 +1358,49 @@
 ,%0A      
-      
+@Tweak(tool = %22javadoc%22, with = %7B
 %22-window
@@ -1406,28 +1406,16 @@
 wtitle%22,
-%0A           
  %22%F0%9F%8E%BC Bach
@@ -1411,32 +1411,34 @@
 e%22, %22%F0%9F%8E%BC Bach%22
+%7D)
 ,%0A      
       %22-head
@@ -1429,105 +1429,309 @@
     
-      %22-header%22,%0A            %22%F0%9F%8E%BC Bach%22,%0A            %22-use%22,%0A            %22-linksource%22,%0A           
+@Tweak(tool = %22javadoc%22, with = %7B%22-header%22, %22%F0%9F%8E%BC Bach%22%7D),%0A      @Tweak(tool = %22javadoc%22, with = %7B%22-doctitle%22, %22%F0%9F%8E%BC Bach 16-ea%22%7D),%0A      @Tweak(tool = %22javadoc%22, with = %7B%22-overview%22, %22documentation/api/overview.html%22%7D),%0A      @Tweak(tool = %22javadoc%22, with = %22-quiet%22),%0A      @Tweak(tool = %22javadoc%22, with =
  %22-n
@@ -1741,24 +1741,25 @@
 mestamp%22
+)
 ,%0A      
       %22-
@@ -1754,36 +1754,86 @@
     
-      %22-Werror%22,%0A           
+@Tweak(tool = %22javadoc%22, with = %22-use%22),%0A      @Tweak(tool = %22javadoc%22, with =
  %22-X
@@ -1840,24 +1840,25 @@
 doclint%22
+)
 ,%0A      
       %22-
@@ -1853,34 +1853,49 @@
     
-      %22-quiet%22%0A          %7D
+@Tweak(tool = %22javadoc%22, with = %22-Werror%22
 ),%0A 

Split javadoc-related tweaks