SubprojectSnapshot.java

package network.ike.plugin.ws;

/**
 * Immutable snapshot of a single workspace subproject at checkpoint time.
 *
 * <p>Decouples checkpoint YAML generation from git subprocess calls
 * so the formatting logic is testable with plain records.
 *
 * @param name     subproject directory name
 * @param sha      full commit SHA (or "unknown" if unavailable)
 * @param shortSha abbreviated commit SHA
 * @param branch   current branch name
 * @param version  POM version (may be null)
 * @param modified true if working tree has uncommitted changes
 */
public record SubprojectSnapshot(String name, String sha, String shortSha,
                                  String branch, String version,
                                  boolean modified) {}