anchor.diff:        _validate(contents, [ErrorIds.INVALID_SOCKET_HOST_PATTERN]);
       });
   
  -    test('"sockets" host pattern cannot be an object', () {
  -      String contents = """{
  -  "sockets": { "udp": { "send": {"foo": "*.*"} } }
  +    test('"socket_host_pattern" cannot be an object', () {
  +      String contents = """{
  +  "sockets": { "udp": { "send": {"foo": 0} } }
  +}
  +""";
  +      _validate(contents, [ErrorIds.INVALID_SOCKET_HOST_PATTERN]);
  +    });
  +
  +    test('"socket_host_pattern" cannot be a nested object', () {
  +      String contents = """{
  +  "sockets": { "udp": { "send": {"bar":{"foo": 0}} } }
  +}
  +""";
  +      _validate(contents, [ErrorIds.INVALID_SOCKET_HOST_PATTERN]);
  +    });
  +
  +    test('"socket_host_pattern" cannot be a nested array', () {
  +      String contents = """{
  +  "sockets": { "udp": { "send": [[""]] } }
   }
   """;
         _validate(contents, [ErrorIds.INVALID_SOCKET_HOST_PATTERN]);
  
positive.code:       _validate(contents, []);
      });
  
      test('"sockets" host pattern may be a single value or an array', () {
        String contents = """{
    "sockets": { "udp": { "send": "*.*", "bind": ["*:80", "*:8080"] } }
  }
  """;
        _validate(contents, []);
      });
  
      test('"sockets" cannot contain a unknown property', () {
        String contents = """{ "sockets": { "foo": {} } }""";
        _validate(
            contents, [json_schema_validator.ErrorIds.UNKNOWN_PROPERTY_NAME]);
      });
  
      test('"sockets" host pattern may be an empty string or contain wildcards', () {
        String contents = """{
    "sockets": { "udp": { "send": ["", "*", "*:", "*:*", ":*"] } }
  }
  
negative.code:       _validate(contents, []);
      });
  
      test('socket_host_pattern may only contain host:port', () {
        String contents = """{
    "sockets": { "udp": { "send": ["foo:123:"] } }
  }
  