WorkspaceReportSpec.java
package network.ike.plugin.ws;
/**
* The report a {@code ws:*} goal produces — which goal it is and the
* Markdown body.
*
* <p>Returned by {@link AbstractWorkspaceMojo#runGoal()}; the base
* class writes it via {@link WorkspaceReport}. 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).
*
* <p>Unlike the ike plugin's {@code GoalReportSpec}, the workspace
* root is not carried here: the base class resolves it from
* {@code workspace.yaml} when it writes the file.
*
* @param goal the goal that produced this report
* @param content the Markdown report body
*/
public record WorkspaceReportSpec(WsGoal goal, String content) {
}