I noticed that the concrete metadata
classes that we created interfaces for are still in the provisional API
package. Since we have interfaces to form the API spec, and a factory method
for creating instances, the concrete classes can now be moved into internal
packages. In fact if we don't, a client could reasonably downcast to the
concrete API class, which would break with a different implementation.
Was this an oversight, or just staging the changes to make sure we fixed
up all references before moving the classes? I vaguely remember a dicussion
about this but couldn't see anything in the bug report about it.