Manifest.java
package network.ike.workspace;
import java.util.Map;
/**
* The top-level workspace manifest, deserialized from {@code workspace.yaml}.
*
* <p>This is the typed, immutable representation of the entire manifest.
* Use {@link ManifestReader#read} to parse YAML into this record.
*
* @param schemaVersion manifest format version (current "1.1"; legacy
* "1.0" still parses under default values)
* @param generated date string when the manifest was last updated
* @param defaults default values for subproject fields
* @param workspaceRoot the workspace root POM's published GAV
* (schema 1.1+, ike-issues#183); {@code null} only
* on legacy manifests pre-dating that schema bump
* @param subprojects named subproject definitions (insertion-ordered)
* @param ide optional IntelliJ project settings shared across
* collaborators; {@link IdeSettings#EMPTY} when absent
*/
public record Manifest(
String schemaVersion,
String generated,
Defaults defaults,
WorkspaceRoot workspaceRoot,
Map<String, Subproject> subprojects,
IdeSettings ide
) {}