metadata: add factory for vendor-specific metadata