GoalReportSpec.java
package network.ike.plugin.support;
import java.nio.file.Path;
/**
* The report a goal produces — which goal it is, where its report
* file lands, and the Markdown body.
*
* <p>Returned by {@link AbstractGoalMojo#runGoal()}; the base class
* writes it via {@link GoalReport}. Making the report a <em>required
* return value</em> — rather than an optional {@code writeReport(...)}
* call a goal author can forget — means a goal cannot compile without
* producing one. That is the structural fix for the missing-report
* bug class (IKE-Network/ike-issues#413, motivated by #407).
*
* @param goal the goal that produced this report
* @param projectRoot directory the report file is written into
* (alongside the invoking {@code pom.xml})
* @param content the Markdown report body
*/
public record GoalReportSpec(GoalRef goal, Path projectRoot,
String content) {
}