Consul-Conf: config templates from consul data

Object oriented mechanism to rewrite config files from template filled in by consul data.  The primary functionality here is to go through the consul services and nodes, using their health checks to come up with an idea of what nodes offer what servies  and their health status.  This data can then be plugged into  template to write out a configuration file. The code includes a diffing mechanism to verify that the file has changed, with comment exclusion, and hooks eg to restart services.
Is it required to have all this information in the json file?  

Consul supports port in the service descriptor json files so I'd rather pull that information from consul.

Also I'd like to push most of this data into the template and have a simpler configuration.  So for example the cookie, check, and options would all be just inlined in the template instead of doing the big loop. In general moving logic out of the template layer is a good practice, even if things become a little bit more verbose.