Added plugin manifest to allow for automatic registration of the backend coming in `NSchema 4.0.0.
The S3 lock now records an optional expiry (StateLockInfo.ExpiresUtc) when the lock request carries a time-to-live.
Changed
Updated to the NSchema.Core 4.0.0 lock contract. The S3 state-lock handle releases via the explicit
IStateLockHandle.Release(...) (the handle is no longer IAsyncDisposable), and IStateLock.ForceUnlock is renamed
to IStateLock.Release (returning ValueTask).
Updated to NSchema.Core 5.0.0-alpha.1, which is a major rearchitecture of the core API.
S3StatePlugin replaces S3BackendPlugin, implementing the new INSchemaStatePlugin contract.
The plugin is configured by a STATE s3 block instead of BACKEND s3, and the scaffold template renders the new form. The scaffold no longer pins a version in the block — the host authors the PLUGIN statement.
The S3 state store implements the renamed IDatabaseStateStore (was ISchemaStateStore), and the lock’s StateLockInfo carries the new LockId/LockHolder value objects.
Added
new asks which bucket to use. The plugin declares the bucket as a scaffolding question; the key still follows from the environment, and credentials still come from the AWS chain.