Preferable this is a single unified Package struct that can represent os packages, language packages, and other package-like artifacts. Additionally needs a collections of these packages into a single Catalog struct.
More thought is needed on how this data will be accessed. This will help guide how to best store (and potentially index) the data.