Yea, that should be correct. Here is an example from our game client:
[attachment=0:2v17oomv][/attachment:2v17oomv]
We parse the keys into a separate Array then loop through that array to reference each Hash bucket.
You have to reference the Hash like this:
Hash.At("key.arrayIndex") for multidimensional Hashes. For us, we use a loop like:
For loopindex from 0 to keyArray.Width -1{
Hash.At(keyArray.At(loopindex) & ".0")
}
in order to access the 0th slot in the array stored at each key location. Or you can dynamically increment the array index to access other array slots in each key location.
See rex's post on his Hash plugin for more details on other implementations: