I started out this library in a private repo and went with the simple naive approach of having a NavGroup and NavItem, one being able to have sub-items. But as this library has evolved, it's making less sense to keep them apart.
Recent changes (that have not been published in a new version, yet) have brought them even further together, with NavGroup only differing in a few ways.