private SupportedLanguage parseSupportedLangJson(JsonObject obj) {
		if (obj.get("code") == null || obj.get("name") == null || obj.get("targets") == null) {
			throw new JsonSyntaxException("Bad json data for supported language");
		}
		String srcLangCode = obj.get("code").getAsString();
		String srcLangName = obj.get("name").getAsString();
		JsonArray targets = obj.get("targets").getAsJsonArray();
		List<String> targetLangCodes = new ArrayList<>();
		targets.forEach(targetEle -> {
			targetLangCodes.add(targetEle.getAsString());
		});
		return new SupportedLanguage(srcLangName, srcLangCode, targetLangCodes);
	}
Returns a list of languages that the LibreTranslate server supports.

@param monitor {@link TaskMonitor}
@return list of {@link SupportedLanguage} records
@throws IOException if error connecting or excessive time to respond
@throws CancelledException if cancelled
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/string/translate/libretranslate/LibreTranslateStringTranslationService.java