Properties with object values
Some scenegraph properties have values that are not simple primitive types (e.g. numbers), but rather are objects with sub-properties of their own. In order to update the document with changes, you must invoke the top-level setter on the scenenode object itself – changing properties on the object value "inline" will not result in an update.
For example:
// Right:
let color = node.fill;
color.r = 0x80;
node.fill = color; // update fill in the scenegraph by kicking the node's setter
// Wrong - document will not update:
node.color.r = 0x80;