Леха (Felix)
А потом все обработчики предметов принимают в себя itemData и там берут для себя именно то поле , которое им нужно для работы
У меня похожая тема, всего предметов ~20, для них есть Registry (1), Appliers (~15), Serializers (~15), SerializerFactory.
Реестр в одном месте - удобно,
сериализаторы в другом - удобно + версии легко клепать
Appliers - то, что работает с каждым предметом или типом в 3м месте, тоже удобно