public static PromptTemplateConfig parseFromJson(String json) throws SKException {
        try {
            return new ObjectMapper().readValue(json, PromptTemplateConfig.class);
        } catch (JsonProcessingException e) {
            throw new SKException("Unable to parse prompt template config", e);
        }
    }
@Test
    void testParseFromJson() throws Exception {

        String name = "a name";
        String description = "a description";
        String template = "A template for testing {{plugin.function input}}";
        String templateFormat = "semantic-kernel";
        List<InputVariable> inputVariables = Arrays.asList(
            new InputVariable("input", "java.lang.String", "a description", "default value",
                true, null));
        OutputVariable outputVariable = new OutputVariable("java.lang.String",
            "a description");
        HashMap<String, PromptExecutionSettings> executionSettings = new HashMap<String, PromptExecutionSettings>() {
            {
                put("default", PromptExecutionSettings.builder().build());
            }
        };

        PromptTemplateConfig expected = PromptTemplateConfig.builder()
            .withName(name)
            .withTemplate(template)
            .withTemplateFormat(templateFormat)
            .withDescription(description)
            .withInputVariables(inputVariables)
            .withOutputVariable(outputVariable)
            .withExecutionSettings(executionSettings)
            .build();

        String jsonString = "{"
            + "\"name\":\"" + name + "\","
            + "\"description\":\"" + description + "\","
            + "\"template\":\"" + template + "\","
            + "\"template_format\":\"" + templateFormat + "\","
            + "\"input_variables\":["
            + "{"
            + "\"name\":\"input\","
            + "\"type\":\"java.lang.String\","
            + "\"description\":\"a description\","
            + "\"defaultValue\":\"default value\","
            + "\"is_required\":true"
            + "}"
            + "],"
            + "\"output_variable\":{"
            + "\"type\":\"java.lang.String\","
            + "\"description\":\"a description\""
            + "},"
            + "\"executionSettings\":{"
            + "\"default\":{}"
            + "}"
            + "}";

        PromptTemplateConfig result = PromptTemplateConfig.parseFromJson(jsonString);
        assertEquals(expected, result);
    }