Represents a captured workspace state at a point in time.
@type backend() :: :git | :hash
@type t() :: %AgentSessionManager.Workspace.Snapshot{ backend: backend(), captured_at: DateTime.t(), label: atom() | nil, metadata: map(), path: String.t(), ref: String.t() | nil }
@spec to_map(t()) :: map()