PackageMetaData is a relatively thin and inefficient wrapper around KDesktopFile. It's used rarely and doesn't serve a clear purpose. PackageStructure is a relatively static class that combines both a method for getting new packages as well as a description of the underlying package.
Look at the use cases for Package and PackageStructure, and consider a refactor to clean up the API and make it easier to use. Likely scenario: merge Package with PackageStructure, drop PackageMetadata from libplasma2.