public void validateGeneralPacket () throws PacketValidator.InvalidPacketException {
		Set<?> keys = map.keySet();
		for (Object key : keys) {
			if (!(key instanceof String)) {
				throw new InvalidPacketException("Invalid key: " + key, map);
			}
		}
		if (!map.containsKey("type")) {
			throw new InvalidPacketException("Missing type field", map);
		}
		Object typeObject = map.get("type");
		if (!(typeObject instanceof String)) {
			throw new InvalidPacketException("Invalid class for type field: " + typeObject.getClass(), map);
		}
		String typeName = (String)typeObject;
		if (typeName.equals("auth")) {
			validateClientAuthMap();
		} else if (typeName.equals("data")) {
			validateClientDataMap();
		} else {
			throw new InvalidPacketException("Unknown type field: \"" + typeName + "\"", map);
		}
	}