for (int i = 0; i < nodes.size(); i++) {
Node n = nodes.get(i);
int cm = n.move == null ? 0 : n.move.getCompressedMove();
buf[0] = (byte)(cm >> 8);             // Move, high byte
buf[1] = (byte)(cm & 255);            // Move, low byte
<BUG>buf[2] = (byte)(n.nameIdx >> 8);      // Index, high byte

buf[3] = (byte)(n.nameIdx & 255);     // Index, low byte

int firstChild = -1;</BUG>
if (n.children.size() > 0)

for (int i = 0; i < nodes.size(); i++) {
Node n = nodes.get(i);
int cm = n.move == null ? 0 : n.move.getCompressedMove();
buf[0] = (byte)(cm >> 8);             // Move, high byte
buf[1] = (byte)(cm & 255);            // Move, low byte
buf[2] = (byte)(n.ecoIdx >> 8);      // Index, high byte
buf[3] = (byte)(n.ecoIdx & 255);     // Index, low byte
buf[4] = (byte)(n.opnIdx >> 8);      // Index, high byte
buf[5] = (byte)(n.opnIdx & 255);     // Index, low byte
buf[6] = (byte)(n.varIdx >> 8);      // Index, high byte
buf[7] = (byte)(n.varIdx & 255);     // Index, low byte
int firstChild = -1;
if (n.children.size() > 0)
