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