C2 core object is fill with LOTS of different stuff and special cases.
This is the minimal memory instance of a World Object. no graphics, plugins, no positional, no ace elements of anything. And it still has LOTS of stuff that has no meaning most of the time. If I make a Node, apparently I have stubs for a TileMap.
property: type
property: runtime
property: recycled
property: uid
property: puid
property: iid
property: get_iid
property: toString
property: extra
property: instance_var_names
property: instance_vars
property: x
property: y
property: z
property: width
property: height
property: depth
property: angle
property: opacity
property: hotspotX
property: hotspotY
property: blend_mode
property: compositeOp
property: srcBlend
property: destBlend
property: effect_params
property: active_effect_types
property: active_effect_flags
property: bbox
property: collcells
property: rendercells
property: bquad
property: bbox_changed_callbacks
property: set_bbox_changed
property: add_bbox_changed_callback
property: contains_pt
property: update_bbox
property: update_render_cell
property: update_collision_cell
property: get_zindex
property: tilemap_exists
property: tilemap_width
property: tilemap_height
property: tilemap_data
property: updateActiveEffects
property: uses_shaders
property: bbox_changed
property: cell_changed
property: visible
property: my_timescale
property: layer
property: zindex < Hey zIndes.. why depth?
property: collision_poly
property: collisionsEnabled
property: behavior_insts
property: properties
property: is_contained
property: siblings
property: onCreate
property: onDestroy
property: saveToJSON
property: loadFromJSON
property: draw
property: drawGL
property: getDebuggerValues
property: onDebugValueEdited
My opinion is that a WorldObject should be something like this
property: type
property: recycled
property: uid
property: puid
property: iid
property: get_iid
property: parent
property: children
property: x
property: y
property: z
property: worldX
property: worldY
property: worldZ
property: angle
property: worldAngle
property: scaleX
property: scaleY
property: scaleZ
property: worldScaleX
property: worldScaleY
property: worldScaleZ
property: hotspotX
property: hotspotY
property: behavior_insts
property: onCreate
property: onDestroy
property: saveToJSON
property: loadFromJSON
property: draw
property: drawGL
property: getDebuggerValues
property: onDebugValueEdited
property: toString
Everything else is a behaviour. thus only adding as needed.