private static List<CompoundName> namesUnder(String prefix, QueryProfileType type) {
        if (type == null) return List.of(); // Names not known statically
        List<CompoundName> names = new ArrayList<>();
        for (Map.Entry<String, FieldDescription> field : type.fields().entrySet()) {
            String name = append(prefix, field.getKey());
            if (field.getValue().getType() instanceof QueryProfileFieldType) {
                names.addAll(namesUnder(name, ((QueryProfileFieldType) field.getValue().getType()).getQueryProfileType()));
            }
            else {
                names.add(CompoundName.from(name));
            }
        }
        return names;
    }
Returns an unmodifiable list of all the native properties under a Query
container-search/src/main/java/com/yahoo/search/Query.java