If the endpoint to download item data looks like /entities/items/{entity_id}, then I worry that people will try to handle generic entities with code like this:
entity_id = ... entity_type = { 'Q': 'item', 'P': 'property', 'L': 'lexeme', 'M': 'mediainfo', }[entity_id[0]] # KeyError on unknown prefix if entity_type.endswith('y'): entity_type_plural = entity_type[:-1] + 'ies' elif entity_type.endswith('s'): entity_type_plural = entity_type + 'es' else: entity_type_plural = entity_type + 's' endpoint = f'/entities/{entity_type_plural}/{entity_id}'