Structural subset of DurableObjectState — the shape DurableObjectRunner
reads from. id.name (tenant/run identity recovery off the DO's own
tenant-scoped idFromName address) and storage (the ctx.storage-backed resume
ledger — DurableStorageResumeLedger in resume-ledger.ts) are always touched;
the Hibernatable-WebSocket members are OPTIONAL so node/vitest stubs that
set only id.name/storage still satisfy the type and the per-run WS stream
route can guard on their presence (absent ⇒ the non-WS 426 fallback).
Structural subset of DurableObjectState — the shape DurableObjectRunner reads from.
id.name(tenant/run identity recovery off the DO's own tenant-scoped idFromName address) andstorage(the ctx.storage-backed resume ledger — DurableStorageResumeLedger in resume-ledger.ts) are always touched; the Hibernatable-WebSocket members are OPTIONAL so node/vitest stubs that set only id.name/storage still satisfy the type and the per-run WS stream route can guard on their presence (absent ⇒ the non-WS 426 fallback).