The RNA path used for animating the settings passed to the node tree
is incorrect. Currently it's just settings.property_name, but it's
the path from the ID, not the modifier, so it should be
modifiers[modifier_name].settings.property_name.
However, the "Settings" struct is separated in RNA and DNA, which means
that the callback to get the RNA path does not know about the modifier's
name in order to fill the above path. So we would have to add some reference
to the modifier in the "Settings" struct, which creates a convoluted
layout in the ModifierData struct:
NodesModifierData { ModifierData md; bNodeTree *node_group; settings { IDProperty *properties; ModifierData *md; /* Pointer back to the modifier to get the name, icky! */ }; };
(For the record, that fix looks like this: P1904)
Instead, this patch simply removes the "Settings" struct from RNA,
which might look a bit messier from the point of view of the Python API,
but otherwise it's an easy simplification. Note that we can't remove the
settings struct from DNA if we want to be able to read old files.