[JsonPolymorphic(TypeDiscriminatorPropertyName = "method")]
[JsonDerivedType(typeof(StatusCommand), "session.status")]
[JsonDerivedType(typeof(SubscribeCommand), "session.subscribe")]
[JsonDerivedType(typeof(UnsubscribeCommand), "session.unsubscribe")]
[JsonDerivedType(typeof(NewCommand), "session.new")]
[JsonDerivedType(typeof(EndCommand), "session.end")]
[JsonDerivedType(typeof(CreateUserContextCommand), "browser.createUserContext")]
[JsonDerivedType(typeof(GetUserContextsCommand), "browser.getUserContexts")]
[JsonDerivedType(typeof(RemoveUserContextCommand), "browser.removeUserContext")]
[JsonDerivedType(typeof(CloseCommand), "browser.close")]
[JsonDerivedType(typeof(CreateCommand), "browsingContext.create")]
[JsonDerivedType(typeof(NavigateCommand), "browsingContext.navigate")]
[JsonDerivedType(typeof(ReloadCommand), "browsingContext.reload")]
[JsonDerivedType(typeof(TraverseHistoryCommand), "browsingContext.traverseHistory")]
[JsonDerivedType(typeof(LocateNodesCommand), "browsingContext.locateNodes")]
[JsonDerivedType(typeof(ActivateCommand), "browsingContext.activate")]
[JsonDerivedType(typeof(CaptureScreenshotCommand), "browsingContext.captureScreenshot")]
[JsonDerivedType(typeof(SetViewportCommand), "browsingContext.setViewport")]
[JsonDerivedType(typeof(GetTreeCommand), "browsingContext.getTree")]
[JsonDerivedType(typeof(PrintCommand), "browsingContext.print")]
[JsonDerivedType(typeof(HandleUserPromptCommand), "browsingContext.handleUserPrompt")]
[JsonDerivedType(typeof(CloseCommand), "browsingContext.close")]
[JsonDerivedType(typeof(AddInterceptCommand), "network.addIntercept")]
[JsonDerivedType(typeof(ContinueRequestCommand), "network.continueRequest")]
[JsonDerivedType(typeof(ContinueResponseCommand), "network.continueResponse")]
[JsonDerivedType(typeof(FailRequestCommand), "network.failRequest")]
[JsonDerivedType(typeof(ProvideResponseCommand), "network.provideResponse")]
[JsonDerivedType(typeof(ContinueWithAuthCommand), "network.continueWithAuth")]
[JsonDerivedType(typeof(RemoveInterceptCommand), "network.removeIntercept")]
[JsonDerivedType(typeof(AddPreloadScriptCommand), "script.addPreloadScript")]
[JsonDerivedType(typeof(RemovePreloadScriptCommand), "script.removePreloadScript")]
[JsonDerivedType(typeof(EvaluateCommand), "script.evaluate")]
[JsonDerivedType(typeof(CallFunctionCommand), "script.callFunction")]
[JsonDerivedType(typeof(DisownCommand), "script.disown")]
[JsonDerivedType(typeof(GetRealmsCommand), "script.getRealms")]
[JsonDerivedType(typeof(PerformActionsCommand), "input.performActions")]
[JsonDerivedType(typeof(ReleaseActionsCommand), "input.releaseActions")]
[JsonDerivedType(typeof(GetCookiesCommand), "storage.getCookies")]
[JsonDerivedType(typeof(DeleteCookiesCommand), "storage.deleteCookies")]
[JsonDerivedType(typeof(SetCookieCommand), "storage.setCookie")]
public abstract class Command