DSAction ported, except it needs ActionExecutor ported from Dart.