SnapshotReadGraph: Pick<Graph, "read" | "now">

Capability slice handed to exportSnapshot / exportSnapshotJson.

Closes #364: snapshot export is read-only by definition — it freezes the requested input values at the current GraphTime and emits an envelope. The full Graph parameter that #257 left in place handed the read-side accessor commit, input, derived, hydrate, the time-travel readers, and the admin handles, despite the export path touching only read and now. Per §12.3 the parameter exposes only those two methods.

importSnapshot legitimately needs the full Graph (it opens a commit), so its parameter stays as Graph — only the read-side accessors narrow.

Narrowing is type-level. A real Graph is still assignable, so call sites keep working; the discipline is enforced at compile time inside the implementation.