private static EffectQuantum readEffect(@NotNull DataInput in) throws IOException {
      int effectMask = DataInputOutputUtil.readINT(in);
      return switch (effectMask) {
        case -1 -> EffectQuantum.TopEffectQuantum;
        case -2 -> EffectQuantum.ThisChangeQuantum;
        case -3 -> {
          EKey key = readKey(in);
          boolean isStatic = in.readBoolean();
          int dataLength = DataInputOutputUtil.readINT(in);
          DataValue[] data = new DataValue[dataLength];
          for (int di = 0; di < dataLength; di++) {
            data[di] = readDataValue(in);
          }
          yield new EffectQuantum.CallQuantum(key, data, isStatic);
        }
        case -4 -> new EffectQuantum.ReturnChangeQuantum(readKey(in));
        case -5 -> new EffectQuantum.FieldReadQuantum(readKey(in));
        default -> new EffectQuantum.ParamChangeQuantum(effectMask);
      };
    }
private static EffectQuantum readEffect(@NotNull DataInput in)