Perhaps some more clarification is best.
Yeah, great explanation from lionz, I dont think it needs more explanation than that:
A few points that I think are important:
but pushing back on the X axis with Armor.X adds a new entry, in my opinion is super weird.
Is exactly the same thing you were doing:
You were using "Insert" in the Y so what this does is insert a new Row.
I use "Push" which is the exact same thing I push a new Row or column.
The only difference between the two is that "Insert" lets you pick the (Y or X) index where you want to insert the Row or column. And push just insert the new (Row or column) at the back or the front.
"Yeah it works and I sort of understand what's going on but it isn't very intuitive."
Is quite intuitive and safer than the system you were using as By inserting always back you protect all the Rows and values that you already had in place for the old parts, especially since you say that ober time you gonna keep adding new parts, therefore you better no change any index reference. So if you you keep inserting in any index you will have the risk of breaking your code as you gonna have to constantly change the references that you already had in place to get the old part values.
On the other hand, if new parts get inserted in the back then all the old parts are protected since you do not change their index reference ever.