Add basic protocol types with serialization and tests