GeminiDocument: Improve Stream/Optional usage
Using Optional.orElseGet instead of Optional.orElse saves constructing an empty list when it's not needed. Also use Stream.toList instead of .collect(Collectors.toList()) and tidy up some of the method chains to be neater and more consistently Stream-y.