Thank y’all very much for your comments and suggestions. This led me to study the difference between the special increment/decrement nodes as well as how that kind of play might work out for arrays.
In short, the below algorithm worked for what I needed, which is an arbitrary list of keys connected to an unknown list length of values.
Experiment Q
The solution (in step 3) feels “heavy”, yet I understand the need to completely rebuild the struct. I had hoped that the array ref in the struct would be sufficient to mutate it, however this was not the case. There is some behavior that prevents arrays within structs from being mutated (with silent honeypot failure). So a complete regeneration of the struct with all its properties is required for array mutations . (note: steps 1, 2, 4 are boilerplate test code that won’t be in my actual project)
successful output here for solution Q
BEGIN EXPERIMENT Q
confirm item: 6
confirm item: 7
confirm item: 8
item: 6
item: 7
item: 8
item: 9
The default behavior for “make array” is perplexing to me. I think that several of the nodes like array’s add, should also return the mutated array copy for clarity. Also the “make array” is useless for any dynamic case. It should be renamed to “make fixed array” or make static array".
Since y’all got me to understand that an explicit blueprint scoped variable is required for mutations to work, I created this function “MakeLocalIntArray” which behaves like what I’d expect the built-in “make array” to do.
I attempted to move this function into a Blueprint Library, which alters the scope of the variable and breaks the functionality. So this technique only works if the Blueprint managing the array holds the scope of the function making the dynamic int array (which feels like a terrible newbie trap).
Output from using this same function, cept from a Blueprint library
BEGIN EXPERIMENT Q
confirm item: 6
confirm item: 7
confirm item: 8
item: 6
item: 0
item: 0
item: 9
Note: All other experiments E through P either partially worked for my purposes or flat failed. Excluded for brevity