Чтоб поиск в оутлук работал хорошо, после существенных изменений в базе сообщений оутглюка надо дать ему «настояться» - проиндексироваться. Сам недавно наступил на эту граблю.
Вообще не спец в этом, но банально из Википедии - оба формата должны подходить, но зависит от того, насколько передаваемые данные «свободны от схемы».
Как я это понял - если идут строки одной таблицы (сколь угодно сложной, но все по одному образцу), то Proto; если данные могут идти всяко разно по ситуации, и надо разбираться по получении, чё кого, то Bson. Это так, размышления диванного аналитика.
Струйники это такой развод на деньги что ойойой. Смысла в нем нет. Если вам надо печатать цветные фото в профессиональном качестве - печатайте в хорошей фотолабе. Во всех остальных случаях - цветной лазерник.
spoiler
Лично я себе поставил ricoh sp 261 sfnw и много лет горя не знаю. Вся семья печатает, сканирует и копирует всё, что надо, хоть чб хоть цвет.
Что касается вопроса о «распределении на подклассы», то это совершенно другой вопрос, и тут вам надо научиться разделять проблему на части, анализировать их и разделять дальше. Потом освоить нахождение и выделение слоев абстракций, написание для каждого слоя базовых классов и наследуемых.
Мне нравится пример из вот этого перевода.
Там не всё идеально с точки зрения чистоты кода, но сам подход хорошо иллюстрирует сказанное мною.
Приведенный код не соответствует PEP 8.
Например, CAPS-ом должны именоваться константы, классы - CamelCase, а методы и переменные - snake_case.
У вас всё перепутано.
Название класса должно отражать суть объектов, которые описаны в классе. Названия функций и методов - суть действий, которые совершают функции и методы.
Вам надо продумать очень тщательно имена, от этого зависит читабельность кода.