Lazy Children

Nodes marked hasChildren: true with no loaded children fetch on first expand via loadChildren. Expand a folder: it spins, then its children spring in. Each node loads at most once. This demo simulates a ~600ms network call and goes three levels deep.