Public state access. The recorded state is now a public model.
ISchemaStateManager, exposed as app.State, facilitates reading and writing the recorded state, with an optional ReadRaw/WriteRaw methods for moving the serialized payload without interpreting it.
Changed
Planning with an unreadable state payload now fails with a diagnostic instead of throwing.
Public desired-schema access.IDesiredSchemaProvider is now public and exposed as app.DesiredSchema.
Hash on Script and DataMigration. For reading the canonical hash of the body.
Changed
Refresh no longer silently replaces a state payload it cannot read: it fails unless RefreshArguments.Force is set, and a forced replacement carries
a warning that the run-once script ledger was reset. The state capture after an apply still replaces an unreadable payload (the SQL has already run),
with the same warning.