Возвращаясь к вопросу кодогенерации, а что если сделать отдельное описание структуры, на основе которой потом автоматически генерировать код, вместе с кодом struct/class, как, например, это делает протобуфф, возникает следующая проблема, если необходимо иметь кастомные методы и поля в модели, то каждый раз их придётся вставлять заново,или наследоваться от этих структур, что неудобно.. а что если генерировать не сами классы и структуры, а traits для них, таким образом у нас будет нужный функционал и возможность полностью управлять классом?)