public Flow updateTask(String taskId, Task newValue) throws InternalException {
        Task task = this.findTaskByTaskId(taskId);

        Map<String, Object> map = NON_DEFAULT_OBJECT_MAPPER.convertValue(this, JacksonMapper.MAP_TYPE_REFERENCE);

        return NON_DEFAULT_OBJECT_MAPPER.convertValue(
            recursiveUpdate(map, task, newValue),
            Flow.class
        );
    }
@Test
    void updateTask() throws InternalException {
        Flow flow = this.parse("flows/valids/each-sequential-nested.yaml");

        Flow updated = flow.updateTask("1-2-2_return", Return.builder()
            .id("1-2-2_return")
            .type(Return.class.getName())
            .format("{{task.id}}")
            .build()
        );

        Task findUpdated = updated.findTaskByTaskId("1-2-2_return");

        assertThat(((Return) findUpdated).getFormat(), is("{{task.id}}"));
    }