Three levels, visualised

The dockerstats demo writes one snapshot per docker container per polling cycle:

nodes  (root: AtCollection<HostNode>,  ns = 'nodes.dockerstats.demos')
│
├── host-prod-01    (CItem<HostNode>)
│     │
│     └── atsigns   (sub: AtCollection<AtsignOnHost>)
│           │
│           ├── @bob       (CItem<AtsignOnHost>)
│           │     └── samples  (sub-sub: AtCollection<StatSample>)
│           │           ├── 1714998273123   ← (CItem<StatSample>)  leaf
│           │           ├── 1714998278456
│           │           └── …
│           │
│           └── @carol     (CItem<AtsignOnHost>)
│                 └── samples
│                       └── …
│
└── host-prod-02    (CItem<HostNode>)
      └── …

3 levels here. Bounded only by the protocol's 255-char atKey limit, around 10 in practice with sane naming.