anchor.diff:  }
   
   @app.Route("/listAchievements")
  -Future<String> listAchievements(@app.QueryParam("email") String email,
  -  @app.QueryParam("excludeNonMatches") bool excludeNonMatches) async {
  +Future<String> listAchievements(
  +	@app.QueryParam("email") String email,
  +	@app.QueryParam("category") String category,
  +	@app.QueryParam("excludeNonMatches") bool excludeNonMatches) async {
   	List<String> ids = [];
   	List<String> awardedIds = [];
   	Map<String, Map<String, dynamic>> maps = {};
   
  -	ids = Achievement.ACHIEVEMENTS.keys.toList();
  +	ids = Achievement._ACHIEVEMENTS.keys.toList();
   
   	if (email != null || !(excludeNonMatches ?? true)) {
   		// Email provided, find their awarded achievements
  
positive.code: 
  	bool get isSetUp {
  		return (
  		  id != null && name != null && description != null && category != null && imageUrl != null
  		);
  	}
  
  
negative.code: part of coUserver;
  
  class Achievement {
  	static Map<String, Achievement> _ACHIEVEMENTS = {};
  
  	static Future load() async {
  		String directory = Platform.script.toFilePath();
  		directory = directory.substring(0, directory.lastIndexOf("/"));
  
  		await new Directory("$directory/gameServer/achievements/json").list().forEach((File category) async {
  			await JSON.decode(await category.readAsString()).forEach((String id, Map data) async {
  				Achievement achievement = new Achievement(
  					id: id,
  					name: data["name"],
  					description: data["description"],
  					category: data["category"],
  					imageUrl: data["imageUrl"]
  					);
  				_ACHIEVEMENTS[id] = achievement;
  			});
  		});
  	}
  
  	static Achievement find(String id) {
  		return _ACHIEVEMENTS[id];
  	}
  
  	static Map<String, int> queuedWrites = {};
  