``` type ResourceTable struct { mainStrings stringTable nextPackageId uint32 packages map[uint32]*packageGroup } ``` What's the logic here? Why hide the fields that can be used to get resources and strings?