The naming of the original *Metadata classes suggests that there is some kind of relationship on when to use which Metadata class.
This is reflected in http://www.dotnetfunda.com/articles/show/961/wpf-tutorial-dependency-property as well.
We should restrict the generics accordingly to keep the API as clean and type safe as possible.