anchor.diff:          revision = #atm_workflow_schema_revision_draft{
               stores = __STORE_SCHEMA_DRAFTS,
               lanes = [#atm_lane_schema_draft{
  -                parallel_boxes = [#atm_parallel_box_schema_draft{tasks = [
  -                    ?ECHO_TASK_SCHEMA_DRAFT([#atm_task_schema_result_mapper{
  -                        result_name = ?ECHO_ARG_NAME,
  -                        store_schema_id = __TARGET_STORE_SCHEMA_ID,
  -                        store_content_update_options = __TARGET_STORE_CONTENT_UPDATE_OPTIONS
  -                    }])
  -                ]}],
  +                parallel_boxes = [#atm_parallel_box_schema_draft{tasks = [#atm_task_schema_draft{
  +                    lambda_id = ?ECHO_LAMBDA_ID,
  +                    lambda_revision_number = ?ECHO_LAMBDA_REVISION_NUM,
  +                    argument_mappings = __ARGUMENT_MAPPING,
  +                    result_mappings = __RESULT_MAPPINGS,
  +                    time_series_store_config = ?ATM_TS_STORE_CONFIG
  +                }]}],
                   store_iterator_spec = #atm_store_iterator_spec_draft{
                       store_schema_id = ?ITERATED_STORE_SCHEMA_ID,
                       max_batch_size = ?RAND_INT(5, 8)
  
positive.code: ]).
  
  
  -define(ATM_INTEGER_DATA_SPEC, #atm_data_spec{type = atm_integer_type}).
  -define(ATM_OBJECT_DATA_SPEC, #atm_data_spec{type = atm_object_type}).
  
  
  -define(ITERATED_STORE_SCHEMA_ID, <<"iterated_st">>).
  -define(ITERATED_LIST_STORE_SCHEMA_DRAFT(__ITEM_DATA_SPEC, __INITIAL_CONTENT),
      ?LIST_STORE_SCHEMA_DRAFT(?ITERATED_STORE_SCHEMA_ID, __ITEM_DATA_SPEC, __INITIAL_CONTENT)
  ).
  -define(LIST_STORE_SCHEMA_DRAFT(__ID, __ITEM_DATA_SPEC, __INITIAL_CONTENT), #atm_store_schema_draft{
      id = __ID,
      type = list,
      config = #atm_list_store_config{item_data_spec = __ITEM_DATA_SPEC},
      requires_initial_content = false,
      default_initial_content = __INITIAL_CONTENT
  }).
  
  -define(ATM_TIME_SERIES_STORE_CONFIG, #atm_time_series_store_config{
      time_series_collection_schema = #time_series_collection_schema{
          time_series_schemas = [
              ?MAX_FILE_SIZE_TS_SCHEMA,
              ?COUNT_TS_SCHEMA
          ]
      }
  }).
  -define(ATM_TIME_SERIES_DISPATCH_RULES, [
      #atm_time_series_dispatch_rule{
          measurement_ts_name_matcher_type = has_prefix,
          measurement_ts_name_matcher = <<"count_">>,
          target_ts_name_generator = ?COUNT_TS_NAME_GENERATOR,
          prefix_combiner = converge
      },
      #atm_time_series_dispatch_rule{
          measurement_ts_name_matcher_type = exact,
          measurement_ts_name_matcher = <<"size">>,
          target_ts_name_generator = ?MAX_FILE_SIZE_TS_NAME,
          prefix_combiner = overwrite
      }
  ]).
  
  -define(ECHO_TASK_SCHEMA_DRAFT(__RESULT_MAPPERS), #atm_task_schema_draft{
      lambda_id = ?ECHO_LAMBDA_ID,
      lambda_revision_number = ?ECHO_LAMBDA_REVISION_NUM,
      argument_mappings = [?ITERATED_ITEM_ARG_MAPPER(?ECHO_ARG_NAME)],
      result_mappings = __RESULT_MAPPERS,
      time_series_store_config = ?ATM_TIME_SERIES_STORE_CONFIG
  }).
  
  -define(RESULT_MAPPING_WORKFLOW_SCHEMA_DRAFT(
      __TESTCASE,
      __STORE_SCHEMA_DRAFTS,
      __ITERATED_ITEM_DATA_SPEC,
      __TARGET_STORE_SCHEMA_ID,
      __TARGET_STORE_CONTENT_UPDATE_OPTIONS
  ),
      #atm_workflow_schema_dump_draft{
          name = str_utils:to_binary(__TESTCASE),
  
negative.code:                     after_step_hook = fun(AtmMockCallCtx = #atm_mock_call_ctx{
                          call_args = [_AtmWorkflowExecutionId, _AtmWorkflowExecutionEnv, AtmTaskExecutionId]
                      }) ->
                          TargetStoreContent = atm_workflow_execution_test_utils:browse_store(
                              TargetStoreSchemaId, AtmTaskExecutionId, AtmMockCallCtx
                          ),
                          assert_exp_target_store_content(TargetStoreType, IteratedItems, TargetStoreContent)
                      end
                  }
              }],
              handle_workflow_execution_stopped = #atm_step_mock_spec{
                  after_step_exp_state_diff = [
                      {lane_runs, [{1, 1}], rerunable},
                      workflow_finished
                  ]
              }
          }]
      }).
  