private static String buildEdgeList(GameState state) {
		StringBuilder sb = new StringBuilder(LIST_START);
		
		final Player firstPlayer = state.getPlayers().get(0);
		final Player secondPlayer = state.getPlayers().get(1);
		
		Iterator<Edge> edges = state.edges(ItemType.EXISTING).iterator();
		while(edges.hasNext()) {
			final Edge e = edges.next(); 
			Player p = state.getEdgeOwner(e);
			sb.append(String.format(EDGE_PLAYER_PAIR_BASE,
					e.getCanX(), e.getCanY(), 
					(e.getCanDirection() == Direction.RIGHT ?
							ATOM_RIGHT : ATOM_DOWN),
					p.equals(firstPlayer) ? ATOM_PLAYER_1 : ATOM_PLAYER_2));
			
			if(edges.hasNext()) {
				sb.append(LIST_ITEM_SEPARATOR);
			}
		}
		
		sb.append(LIST_END);
		return sb.toString();
	}