Behavior contract for workspace snapshot backends.
Summary
Callbacks
@callback diff( ASM.Extensions.Workspace.Snapshot.t(), ASM.Extensions.Workspace.Snapshot.t(), keyword() ) :: {:ok, ASM.Extensions.Workspace.Diff.t()} | {:error, ASM.Error.t()}
@callback rollback( ASM.Extensions.Workspace.Snapshot.t(), keyword() ) :: :ok | {:error, ASM.Error.t()}
@callback snapshot( String.t(), keyword() ) :: {:ok, ASM.Extensions.Workspace.Snapshot.t()} | {:error, ASM.Error.t()}