Functional, I know, but could an evil imperative style be clearer and shorter here?
```
TemplateApi templateApi = client.getTemplateApi();
ImmutableSet.Builder<? extends Template> templates = ImmutableSet.builder();
// add non-project templates
templates.addAll(templateApi.listTemplates());
for (Project project : projectSupplier.get().values()) {
  templates.addAll(templateApi.listTemplates(ListTemplatesOptions.Builder.projectId(project.getId()));
}
return filter(templates.build(), isReady());
```
And the use of the empty string as a "magic value" to force the non-project values to be added seems a bit hacky? If anything, add them to the template iterable explicitly before filtering?