anchor.diff:  
   // 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<String, dynamic> manifestYaml) {
  +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<String> sortedKeys = tasksYaml.keys.toList()..sort();
  +  final List<dynamic> sortedKeys = tasksYaml.keys.toList()..sort();
     return sortedKeys.map((dynamic taskName) => _validateAndParseTask(taskName, tasksYaml[taskName])).toList();
   }
   
  
positive.code:     final dynamic capability = capabilitiesYaml[i];
      _checkType(capability is String, capability, 'required_agent_capabilities[$i]', 'string');
    }
    return capabilitiesYaml;
  }
  
  void _checkType(bool isValid, dynamic value, String variableName, String typeName) {
  
negative.code:     _checkType(timeoutInMinutes is int, timeoutInMinutes, 'timeout_in_minutes', 'integer');
    }
  
    final List<dynamic> capabilities = _validateAndParseCapabilities(taskName, taskYaml['required_agent_capabilities']);
    return new ManifestTask._(
      name: taskName,
      description: taskYaml['description'],
  