docs: String buildProjectionExpression(SubstitutionContext context) {
          if (projections.size() == 0)
              return null;
          StringBuilder sb = new StringBuilder();
          for (PathOperand projection : projections) {
              if (sb.length() > 0)
                  sb.append(", ");
              sb.append(projection.asSubstituted(context));
          }
          return sb.toString();
      }