private static BodyPublisher ofJsonEncodedParams(Map<String, Object> params) {
		JsonObject obj = new JsonObject();
		params.forEach((k, v) -> {
			if (v instanceof String str) {
				obj.addProperty(k, str);
			}
			else if (v instanceof Number num) {
				obj.addProperty(k, num);
			}
			else if (v instanceof Boolean bool) {
				obj.addProperty(k, bool);
			}
			else if (v instanceof List list) {
				JsonArray jsonArray = new JsonArray();
				for (Object listEle : list) {
					jsonArray.add(listEle.toString());
				}
				obj.add(k, jsonArray);
			}
		});
		return BodyPublishers.ofString(obj.toString());
	}
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