Irrlicht has "IAttributeExchangingObject" interface. Document says that it can be used in editor.
But it serializes/deserializes ALL attributes of object. Editor can't modify only single property by this interface.
Another way to achieve this is storing name of properties and values in object's constructor. But, if may objects are created, this method requires external memory for storing strings.
Writing a serialization class for each class is too hard.
It shouldn't be too hard. If you deserialize the attributes into an io::IAttributes, you can get/set each attribute individually, and then you can serialize the attributes back to the object.
Yes, all attribute values are saved in IAttributes, so other properties are not changed.
In the case of modifying single attribute, other class properties should be reset by "IAttributeExchangingObject::deserializeAttributes" call.