New item types should always be defined using the envire plugin mechanism because the plugin macros add metadata that is needed for correct serialization and visualization.
Minimal Example
Header File:
Cpp File: