anchor.diff:      ExpAtmLaneRunStateDiff = #{<<"status">> => <<"preparing">>},
       ExpStateCtx1 = update_exp_lane_run_state(AtmLaneRunSelector, ExpAtmLaneRunStateDiff, ExpStateCtx0),
   
  -    ExpAtmWorkflowExecutionStateDiff = fun(ExpAtmWorkflowExecutionState) ->
  -        ExpAtmWorkflowExecutionState#{
  -            <<"status">> => <<"active">>,
  -            <<"startTime">> => build_timestamp_field_validator(?NOW())
  -        }
  -    end,
  -    update_workflow_execution_exp_state(ExpAtmWorkflowExecutionStateDiff, ExpStateCtx1).
  +    update_workflow_execution_exp_state(ExpStateCtx1, #{
  +        <<"status">> => <<"active">>,
  +        <<"startTime">> => build_timestamp_field_validator(?NOW())
  +    }).
   
   
   -spec expect_lane_run_started_preparing_in_advance(atm_lane_execution:lane_run_selector(), ctx()) ->
  
positive.code: 
  -spec expect_workflow_execution_scheduled(ctx()) -> ctx().
  expect_workflow_execution_scheduled(ExpStateCtx) ->
      ExpAtmWorkflowExecutionStateDiff = fun(ExpAtmWorkflowExecutionState) ->
          ExpAtmWorkflowExecutionState#{
              <<"status">> => <<"scheduled">>,
              <<"scheduleTime">> => build_timestamp_field_validator(?NOW())
          }
      end,
      update_workflow_execution_exp_state(ExpAtmWorkflowExecutionStateDiff, ExpStateCtx).
  
  
  -spec expect_workflow_execution_active(ctx()) -> ctx().
  expect_workflow_execution_active(ExpStateCtx) ->
      ExpAtmWorkflowExecutionStateDiff = fun(ExpAtmWorkflowExecutionState) ->
          ExpAtmWorkflowExecutionState#{
              <<"status">> => <<"active">>,
              <<"startTime">> => build_timestamp_field_validator(?NOW())
          }
      end,
      update_workflow_execution_exp_state(ExpAtmWorkflowExecutionStateDiff, ExpStateCtx).
  
  
  -spec expect_workflow_execution_stopping(ctx()) -> ctx().
  expect_workflow_execution_stopping(ExpStateCtx) ->
      ExpAtmWorkflowExecutionStateDiff = fun
          (ExpAtmWorkflowExecutionState = #{<<"status">> := <<"active">>}) ->
              ExpAtmWorkflowExecutionState#{<<"status">> => <<"stopping">>};
          (ExpAtmWorkflowExecutionState) ->
  
negative.code: 
  %% @private
  -spec update_workflow_execution_exp_state(
      ctx(),
      json_utils:json_map() | fun((workflow_execution_state()) -> workflow_execution_state())
  ) ->
      ctx().
  update_workflow_execution_exp_state(ExpStateCtx, Diff) when is_map(Diff) ->
      update_workflow_execution_exp_state(
          ExpStateCtx,
          fun(ExpAtmWorkflowExecutionState) -> maps:merge(ExpAtmWorkflowExecutionState, Diff) end
      );
  
  update_workflow_execution_exp_state(ExpStateCtx = #exp_workflow_execution_state_ctx{
      exp_workflow_execution_state = ExpAtmWorkflowExecutionState
  }, Diff) ->
      ExpStateCtx#exp_workflow_execution_state_ctx{
          exp_workflow_execution_state = Diff(ExpAtmWorkflowExecutionState)
      }.
  