package manifest

// SchemaVersion represents the current version of the manifest schema.
// This must be incremented when making breaking changes to the schema.
const SchemaVersion = "1.0.0"

// SchemaVersionInfo provides metadata about schema changes
type SchemaVersionInfo struct {
	Version     string
	Date        string
	Description string
	Breaking    bool
}

// SchemaChangeHistory documents all schema versions
var SchemaChangeHistory = []SchemaVersionInfo{
	{
		Version:     "1.0.0",
		Date:        "2026-02-23",
		Breaking:    false,
		Description: "Initial schema version with RunManifest, Artifacts, and ExecutionEnvironment",
	},
}

// GetSchemaVersion returns the current schema version
func GetSchemaVersion() string {
	return SchemaVersion
}

// IsCompatibleVersion checks if a stored manifest version is compatible
// with the current schema version (same major version)
func IsCompatibleVersion(storedVersion string) bool {
	// For now, simple string comparison - can be enhanced with semver parsing
	return storedVersion == SchemaVersion
}
