In PUP-6028 where 3.x resource types are handled by 4.x loaders, special types like Capability are described by the Resource type. That is not 100% correct and the type system should probably have appropriate types for all special cases of CatalogEntry (e.g. Site, Capability, and Application even though not all of those have a runtime representation in the Puppet Language. The correct typing in the Puppet Type system becomes important later when resource types are fully implementable in the Puppet Language.