Added a check to prevent setting an attribute if the expected type does not match the value
An example is the bpy.types.GeometryNodeFieldToGrid.active_item attribute, which returns a bpy.types.GeometryNodeFieldToGridItem but expects a bpy.types.RepeatItem
Added a work-around to creating links by using literals to access nodes and sockets. The previous method stored sockets, but was prone to getting offset in memory, leading to values that are different than was initially set
Now handles group input/output nodes, and replaces them with reroutes