Is it possible to create a custom object type with Python API? I am writing an IO + editing tools addon for a very complicated model format (World of Warcraft WMO). Besides meshes, it is supposed to have a few specific object types. Is it somehow possible to add a new type of object to Blender with Python API and define custom rules of editing for it. I'd not mind using other solutions if possible.
Here is what I am trying to achieve:


Fog spheres. This object should basically represent a colored sphere with custom properties, that you can scale, move and rotate. Right now I am using a mesh sphere for that, but I do not need edit mode in it.
Water plane. Actually just a plane with static X and Y coords for vertices. Similar to what people often use for terrain in game engines. I need to be able to edit the Z coords of this plane, but block the editing of X and Y coords since you cannot change them. I also need to be able to mark specific faces with flags.
Doodad. Actually a reference to another object file. It should be a regular mesh object, however I need to block any changes that can be done to the mesh itself, since it is actually a different file. That includes blocking things like apply rotation, scale and other operators that can potentially change the mesh of the object.


Are these things anyhow possible to achieve with Blender Python?
No, object types are hard coded in Blender's C code.

Typically developers of add-ons use Empty types and attach custom properties to them.