public static Optional<String> resolveImplicitCatalogUrl(String catalogName) {
		Optional<ImplicitCatalogRef> icr = Optional.ofNullable(parse(catalogName));
		Optional<String> url = chain(
				() -> Util.isURL(catalogName) ? tryDownload(catalogName) : Optional.empty(),
				() -> catalogName.contains(".") ? tryDownload("https://" + catalogName) : Optional.empty(),
				() -> icr.isPresent() ? tryDownload(icr.get().repoUrl(GITHUB_URL, "/blob/")) : Optional.empty(),
				() -> icr.isPresent() ? tryDownload(icr.get().repoUrl(GITLAB_URL, "/-/blob/")) : Optional.empty(),
				() -> icr.isPresent() ? tryDownload(icr.get().repoUrl(BITBUCKET_URL, "/src/")) : Optional.empty())
			.findFirst();
		return url;
	}
Return ImplicitCatalogRef if can be parsed into a git accessible structure.

@param name
@return null if cannot parse it
src/main/java/dev/jbang/catalog/ImplicitCatalogRef.java