anchor.diff:      device = await findTargetDevice();
       if (device == null)
         throwToolExit('Must have a connected device');
  -    if (!device.supportsScreenshot && argResults[_kSkia] == null)
  +    if (argResults[_kType] == _kDeviceType && !device.supportsScreenshot)
         throwToolExit('Screenshot not supported for ${device.name}.');
  +    if (argResults[_kType] != _kDeviceType && argResults[_kObservatoryPort] == null)
  +      throwToolExit('Observatory port must be specified for screenshot type ${argResults[_kType]}');
       return super.verifyThenRunCommand();
     }
   
  
positive.code: import '../vmservice.dart';
  
  const String _kOut = 'out';
  const String _kSkia = 'skia';
  
  class ScreenshotCommand extends FlutterCommand {
    ScreenshotCommand() {
      argParser.addOption(
        _kOut,
        abbr: 'o',
        help: 'Location to write the screenshot.',
      );
      argParser.addOption(
        _kSkia,
        valueHelp: 'port',
        help: 'Retrieve the last frame rendered by a Flutter app as a Skia picture\n'
          'using the specified observatory port.\n'
          'To find the observatory port number, use "flutter run --verbose"\n'
          'and look for "Forwarded host port ... for Observatory" in the output.'
      );
    }
  
  
negative.code:     if (argResults.wasParsed(_kOut))
        outputFile = fs.file(argResults[_kOut]);
  
      switch (argResults[_kType]) {
        case _kDeviceType:
          return runScreenshot(outputFile);
        case _kSkiaType:
          return runSkia(outputFile);
        case _kRasterizerType:
          return runRasterizer(outputFile);
      }
    }
  
  