code: private byte encodeTargetDiscriminator() {
          byte result = 0;
          if (Positions.isReadable(targetPosition)) {
              result |= 1;
          }
          if (Positions.isWritable(targetPosition)) {
              result |= 2;
          }
          return result;
      }
docs: Different operators may pick up a given {@link Transform} depending on the readability/writability of
  the {@link #targetPosition}; this information can be encoded in two bits.
  @return byte