anchor.diff:  
     globalAsserts = prefix: cfg:
       flatten [
  -      (assertKeysValid prefix freeformGlobalKeys cfg.settings)
  +      (assertKeysValid "${prefix}.settings" freeformGlobalKeys cfg.settings)
         (imap0 (n: l: listenerAsserts "${prefix}.listener.${toString n}" l) cfg.listeners)
         (mapAttrsToList (n: b: bridgeAsserts "${prefix}.bridge.${n}" b) cfg.bridges)
       ];
  
positive.code:   };
  
    listenerAsserts = prefix: listener:
      assertKeysValid prefix freeformListenerKeys listener.settings
      ++ userAsserts prefix listener.users
      ++ imap0
        (i: v: authAsserts "${prefix}.authPlugins.${toString i}" v)
  
negative.code:   };
  
    bridgeAsserts = prefix: bridge:
      assertKeysValid "${prefix}.settings" freeformBridgeKeys bridge.settings
      ++ [ {
        assertion = length bridge.addresses > 0;
        message = "Bridge ${prefix} needs remote broker addresses";
  