anchor.diff:      _checkType(timeoutInMinutes is int, timeoutInMinutes, 'timeout_in_minutes', 'integer');
     }
   
  -  final List<String> capabilities = _validateAndParseCapabilities(taskName, taskYaml['required_agent_capabilities']);
  +  final List<dynamic> capabilities = _validateAndParseCapabilities(taskName, taskYaml['required_agent_capabilities']);
     return new ManifestTask._(
       name: taskName,
       description: taskYaml['description'],
  
positive.code:   }
  }
  
  void _checkKeys(Map<String, dynamic> map, String variableName, List<String> allowedKeys) {
    for (String key in map.keys) {
      if (!allowedKeys.contains(key)) {
        throw new ManifestError(
  
negative.code: 
  // There's no good YAML validator, at least not for Dart, so we validate
  // manually. It's not too much code and produces good error messages.
  Manifest _validateAndParseManifest(Map<dynamic, dynamic> manifestYaml) {
    _checkKeys(manifestYaml, 'manifest', const <String>['tasks']);
    return new Manifest._(_validateAndParseTasks(manifestYaml['tasks']));
  }
  
  List<ManifestTask> _validateAndParseTasks(dynamic tasksYaml) {
    _checkType(tasksYaml is Map, tasksYaml, 'Value of "tasks"', 'dictionary');
    final List<dynamic> sortedKeys = tasksYaml.keys.toList()..sort();
    return sortedKeys.map((dynamic taskName) => _validateAndParseTask(taskName, tasksYaml[taskName])).toList();
  }
  
  