The index and attached to ints are what orders it. So when you spawn a block, you have to give it a unique index, and when you attach it, you also store the index of the block it is attached to. That is happening in the above graphs.
It should work for physics enabled objects, but you should probably add a WorldRotation rotator to your struct too, so that you can save and load that.