{root}
{thread_id}/
{checkpoint_ns}/
checkpoints/
writes/
{checkpoint_id}.msgpack
checkpoint + metadata + parent_id
{checkpoint_id}/{task_id}/
{idx}.msgpack
task_id + idx + channel
each checkpoint and write is one object, named by ID — never read, modified, rewritten