ServiceLocation represents one single instance/deployment of a particular server(specified with ServiceId).
DDSL does not care how you specify your urls... It can be a propper formed url like http://myserver:90/basePath or it can be just an hostname, etc...
All you have to care about is that your client knows how to use the url-information.
url is a string that tells the client where to find this particular instance of the service
quality is a double-value specifying the quality of this particular service. The higher number the better. For instance,
you could inject a proxy-service just by telling DDSL that you have higher quality than the other instances of an particular service.. This will
make all clients use your location instead.
ip is the IP of the machine this instance of the service is running on. This is used to make it possible for clients to prefaere local service locations.
if ip is not specified, it will be resolved.