So I got part way into implementing the case class as you suggested and stopped. Things get hairy when we get to re-implementing contentsForBundle. For us to reimplement that functionality using a bundle map of type `Map[BundleNameAndTarget]`, we'd need to do one of two things:

1. Force the user to use the entirety of the bundle name and target whenever they wanted to include one bundle in another one. (e.g. to include `aux->aux.frmr.me` inside another bundle you'd have to type the entirety of `aux->aux.frmr.me` instead of just `aux`)
2. Do a sequential search on the bundles map to find one who has a BundleNameAndTarget that matches the bundle we're trying to include.

Option number 1 is almost certainly a non-starter. Option 2 is ok... It just kind of sucks to be using a Map and then have to do sequential searches over it for things. :/ Thoughts?