### What happened?

I can't set complex chrome webdriver options because `org/openqa/selenium/json/JsonOutput.java` specifies a `MAX_DEPTH` of `10`.

This was working in 4.8.1.

### How can we reproduce the issue?

```shell
ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox"); // has to be the very first option
options.addArguments("--disable-gpu");
options.addArguments("--disable-translate");
options.addArguments("--disable-plugins");
options.addArguments("--window-size=1920,1080");

options.setAcceptInsecureCerts(true);

Map<String, Object> prefs = new HashMap<>();
Map<String, Object> profile = new HashMap<>();
Map<String, Object> contentSettings = new HashMap<>();
Map<String, Object> exceptions = new HashMap<>();
Map<String, Object> clipboard = new HashMap<>();
Map<String, Object> domain = new HashMap<>();

// Enable clipboard permissions
domain.put("expiration", 0);
domain.put("last_modified", System.currentTimeMillis());
domain.put("model", 0);
domain.put("setting", 1);
clipboard.put(siteRoot + ",*", domain);
exceptions.put("clipboard", clipboard);
contentSettings.put("exceptions", exceptions);
profile.put("content_settings", contentSettings);
prefs.put("profile", profile);
options.setExperimentalOption("prefs", prefs);


log.debug("Connecting to selenium at " + webDriverURI);
RemoteWebDriver newDriver = new RemoteWebDriver(webDriverURI, options);
log.debug("Connected to selenium");
```
```


### Relevant log output

```shell
org.openqa.selenium.json.JsonException: Reached the maximum depth of 10 while writing JSON
```
```


### Operating System

macOS 13.4

### Selenium version

Java 4.10.0

### What are the browser(s) and version(s) where you see this issue?

standalone-chromium:113.0

### What are the browser driver(s) and version(s) where you see this issue?

standalone-chromium:113.0

### Are you using Selenium Grid?

_No response_
String commandName = "some command";
    Map<String, Object> parameters = new HashMap<>();
    parameters.put("param1", "value1");
    parameters.put("param2", "value2");
    Command command = new Command(sessionId, commandName, parameters);
    String json = convert(command);
    JsonObject converted = JsonParser.parseString(json).getAsJsonObject();
    assertThat(converted.has("sessionId")).isTrue();
    JsonPrimitive sid = converted.get("sessionId").getAsJsonPrimitive();
    assertThat(sid.getAsString()).isEqualTo(sessionId.toString());
    assertThat(commandName).isEqualTo(converted.get("name").getAsString());
    assertThat(converted.has("parameters")).isTrue();
    JsonObject pars = converted.get("parameters").getAsJsonObject();
    assertThat(pars.entrySet()).hasSize(2);
    assertThat(pars.get("param1").getAsString()).isEqualTo(parameters.get("param1"));
    assertThat(pars.get("param2").getAsString()).isEqualTo(parameters.get("param2"));
  }
  @Test
  void shouldConvertAUrlToAString() throws MalformedURLException {
    URL url = new URL("http:example.com/cheese?type=edam");
    Map<String, URL> toConvert = ImmutableMap.of("url", url);
    String seen = new Json().toJson(toConvert);
    JsonObject converted = JsonParser.parseString(seen).getAsJsonObject();
    assertThat(converted.get("url").getAsString()).isEqualTo(url.toExternalForm());
  }
  @Test
  void shouldNotIncludePropertiesFromJavaLangObjectOtherThanClass() {
    String json = convert(new SimpleBean());
    JsonObject converted = JsonParser.parseString(json).getAsJsonObject();
    Stream.of(SimplePropertyDescriptor.getPropertyDescriptors(Object.class))