Introduce MetadataFactoryInterface and DefaultAssetMetadataFactory.