@Override
    public ProjectedTuple decode(BsonReader reader, DecoderContext context) {
      BsonDocument doc = registry.get(BsonDocument.class).decode(reader, context);
      final List<Object> values = new ArrayList<>();
      for (FieldDecoder field: decoders) {
        BsonValue bson = resolveOrNull(doc, Arrays.asList(field.mongoField.split("\\.")));
        values.add(field.decode(bson));
      }

      return ProjectedTuple.of(query.projections(), values);
    }
Provider for {@link ProjectedTuple}. Used when there are projections.
criteria/mongo/src/org/immutables/criteria/mongo/TupleCodecProvider.java