deliver<T> method

T deliver<T>(
  1. String verb,
  2. String target,
  3. T body(
    1. String step
    )
)

A step the world takes on this person's behalf — a code typed from an SMS, a link opened from a mail — named as a tap's is, ana.4. body runs inside it, and what the app starts after it, within window, joins it: a link reaches the app through the plugin's own stream, on no step of ours.

verb is what it did, type or open; target what to, as the trace says it: the code from SMS. body is given the step's id.

Implementation

T deliver<T>(String verb, String target, T Function(String step) body) {
  var id = '$_prefix.${++_count}';
  _report(worldStepsChannel, {'step': id, 'verb': verb, 'target': target});
  _last = id;
  _lastAt = DateTime.now();
  try {
    return runZoned(() => body(id), zoneValues: {worldStepKey: id});
  } finally {
    _lastAt = DateTime.now();
  }
}