@Override
    public void deserialize(Buffer buf) {
        presetId = buf.readByte();
        if (presetId < 0)
            throw new RuntimeException("Forbidden value on presetId = " + presetId + ", it doesn't respect the following condition : presetId < 0");
        code = buf.readByte();
        if (code < 0)
            throw new RuntimeException("Forbidden value on code = " + code + ", it doesn't respect the following condition : code < 0");
        int limit = buf.readUShort();
        unlinkedPosition = new short[limit];
        for (int i = 0; i < limit; i++) {
            unlinkedPosition[i] = buf.readUByte();
        }
    }