public static void main(String[] args)
	{
		addGames();
		
		if (args.length == 0 || (args.length - 1) %2 != 0)
		{
			System.err.println("Args:\n" +
				"\t<game name> [<stat name> <value> [<stat name> <value> [...]]]");
			
			System.err.println("Supported games and stats:");
			for (String gameName: games.keySet())
			{
				Game game = games.get(gameName);
				System.err.println("\t" + gameName + "\t" + "(" + game + ")");
				
				for (String stat: formatStats(game.getStats()))
					System.err.println("\t\t" + stat);
			}
			
			System.exit(1);
		}
		
		Game game = games.get(args[0]);
		Map<String, Integer> desiredStats = new HashMap<String, Integer>();
		
		for (int i = 1; i < args.length; i += 2)
			desiredStats.put(args[i], Integer.parseInt(args[i + 1]));
		
		List<Character> proposals = null;
		try
		{
			proposals = game.propose(desiredStats);
		} catch (Exception ex)
		{
			Logger.getLogger(SoulsBestClass.class.getName()).log(Level.SEVERE, null, ex);
			System.exit(1);
		}
		
		for (Character character: proposals)
			System.out.println(character);
	}