#pragma once
// generated by simple_cli_definitions.py do NOT edit!
#include "cli-parser.h"
static void
parse_cli_for_kitty(CLISpec *spec, int argc, char **argv) {
	FlagSpec flag;
	if (vt_is_end(vt_insert(&spec->alias_map, "--class", "cls"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--app-id", "cls"))) OOM;
	flag = (FlagSpec){.dest="cls",};
	flag.defval.type = CLI_VALUE_STRING;
	flag.defval.strval = "kitty";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--name", "name"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--os-window-tag", "name"))) OOM;
	flag = (FlagSpec){.dest="name",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--title", "title"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-T", "title"))) OOM;
	flag = (FlagSpec){.dest="title",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--config", "config"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-c", "config"))) OOM;
	flag = (FlagSpec){.dest="config",};
	flag.defval.type = CLI_VALUE_LIST;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--override", "override"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-o", "override"))) OOM;
	flag = (FlagSpec){.dest="override",};
	flag.defval.type = CLI_VALUE_LIST;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--directory", "directory"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--working-directory", "directory"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-d", "directory"))) OOM;
	flag = (FlagSpec){.dest="directory",};
	flag.defval.type = CLI_VALUE_STRING;
	flag.defval.strval = ".";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--detach", "detach"))) OOM;
	flag = (FlagSpec){.dest="detach",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--detached-log", "detached_log"))) OOM;
	flag = (FlagSpec){.dest="detached_log",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--session", "session"))) OOM;
	flag = (FlagSpec){.dest="session",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--hold", "hold"))) OOM;
	flag = (FlagSpec){.dest="hold",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--single-instance", "single_instance"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-1", "single_instance"))) OOM;
	flag = (FlagSpec){.dest="single_instance",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--instance-group", "instance_group"))) OOM;
	flag = (FlagSpec){.dest="instance_group",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--wait-for-single-instance-window-close", "wait_for_single_instance_window_close"))) OOM;
	flag = (FlagSpec){.dest="wait_for_single_instance_window_close",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--listen-on", "listen_on"))) OOM;
	flag = (FlagSpec){.dest="listen_on",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--start-as", "start_as"))) OOM;
	flag = (FlagSpec){.dest="start_as",};
	flag.defval.type = CLI_VALUE_CHOICE;
	flag.defval.strval = "normal";
	flag.defval.listval.items = alloc_for_cli(spec, 5 * sizeof(flag.defval.listval.items[0]));
	if (!flag.defval.listval.items) OOM;
	flag.defval.listval.count = 5;
	flag.defval.listval.capacity = 5;
	flag.defval.listval.items[0] = "normal";
	flag.defval.listval.items[1] = "fullscreen";
	flag.defval.listval.items[2] = "maximized";
	flag.defval.listval.items[3] = "minimized";
	flag.defval.listval.items[4] = "hidden";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--position", "position"))) OOM;
	flag = (FlagSpec){.dest="position",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--grab-keyboard", "grab_keyboard"))) OOM;
	flag = (FlagSpec){.dest="grab_keyboard",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--version", "version"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-v", "version"))) OOM;
	flag = (FlagSpec){.dest="version",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--dump-commands", "dump_commands"))) OOM;
	flag = (FlagSpec){.dest="dump_commands",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--replay-commands", "replay_commands"))) OOM;
	flag = (FlagSpec){.dest="replay_commands",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--dump-bytes", "dump_bytes"))) OOM;
	flag = (FlagSpec){.dest="dump_bytes",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-rendering", "debug_rendering"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-gl", "debug_rendering"))) OOM;
	flag = (FlagSpec){.dest="debug_rendering",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-input", "debug_keyboard"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-keyboard", "debug_keyboard"))) OOM;
	flag = (FlagSpec){.dest="debug_keyboard",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-font-fallback", "debug_font_fallback"))) OOM;
	flag = (FlagSpec){.dest="debug_font_fallback",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--watcher", "watcher"))) OOM;
	flag = (FlagSpec){.dest="watcher",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--execute", "execute"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-e", "execute"))) OOM;
	flag = (FlagSpec){.dest="execute",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--help", "help"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-h", "help"))) OOM;
	flag = (FlagSpec){.dest="help",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	parse_cli_loop(spec, true, argc, argv);
}


static void
parse_cli_for_panel_kitten(CLISpec *spec, int argc, char **argv) {
	FlagSpec flag;
	if (vt_is_end(vt_insert(&spec->alias_map, "--lines", "lines"))) OOM;
	flag = (FlagSpec){.dest="lines",};
	flag.defval.type = CLI_VALUE_STRING;
	flag.defval.strval = "1";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--columns", "columns"))) OOM;
	flag = (FlagSpec){.dest="columns",};
	flag.defval.type = CLI_VALUE_STRING;
	flag.defval.strval = "1";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--margin-top", "margin_top"))) OOM;
	flag = (FlagSpec){.dest="margin_top",};
	flag.defval.type = CLI_VALUE_INT;
	flag.defval.intval = 0;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--margin-left", "margin_left"))) OOM;
	flag = (FlagSpec){.dest="margin_left",};
	flag.defval.type = CLI_VALUE_INT;
	flag.defval.intval = 0;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--margin-bottom", "margin_bottom"))) OOM;
	flag = (FlagSpec){.dest="margin_bottom",};
	flag.defval.type = CLI_VALUE_INT;
	flag.defval.intval = 0;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--margin-right", "margin_right"))) OOM;
	flag = (FlagSpec){.dest="margin_right",};
	flag.defval.type = CLI_VALUE_INT;
	flag.defval.intval = 0;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--edge", "edge"))) OOM;
	flag = (FlagSpec){.dest="edge",};
	flag.defval.type = CLI_VALUE_CHOICE;
	flag.defval.strval = "top";
	flag.defval.listval.items = alloc_for_cli(spec, 8 * sizeof(flag.defval.listval.items[0]));
	if (!flag.defval.listval.items) OOM;
	flag.defval.listval.count = 8;
	flag.defval.listval.capacity = 8;
	flag.defval.listval.items[0] = "top";
	flag.defval.listval.items[1] = "bottom";
	flag.defval.listval.items[2] = "left";
	flag.defval.listval.items[3] = "right";
	flag.defval.listval.items[4] = "background";
	flag.defval.listval.items[5] = "center";
	flag.defval.listval.items[6] = "center-sized";
	flag.defval.listval.items[7] = "none";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--layer", "layer"))) OOM;
	flag = (FlagSpec){.dest="layer",};
	flag.defval.type = CLI_VALUE_CHOICE;
	flag.defval.strval = "bottom";
	flag.defval.listval.items = alloc_for_cli(spec, 4 * sizeof(flag.defval.listval.items[0]));
	if (!flag.defval.listval.items) OOM;
	flag.defval.listval.count = 4;
	flag.defval.listval.capacity = 4;
	flag.defval.listval.items[0] = "background";
	flag.defval.listval.items[1] = "bottom";
	flag.defval.listval.items[2] = "top";
	flag.defval.listval.items[3] = "overlay";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--config", "config"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-c", "config"))) OOM;
	flag = (FlagSpec){.dest="config",};
	flag.defval.type = CLI_VALUE_LIST;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--override", "override"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-o", "override"))) OOM;
	flag = (FlagSpec){.dest="override",};
	flag.defval.type = CLI_VALUE_LIST;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--output-name", "output_name"))) OOM;
	flag = (FlagSpec){.dest="output_name",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--class", "cls"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--app-id", "cls"))) OOM;
	flag = (FlagSpec){.dest="cls",};
	flag.defval.type = CLI_VALUE_STRING;
	flag.defval.strval = "kitty-panel";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--name", "name"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--os-window-tag", "name"))) OOM;
	flag = (FlagSpec){.dest="name",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--focus-policy", "focus_policy"))) OOM;
	flag = (FlagSpec){.dest="focus_policy",};
	flag.defval.type = CLI_VALUE_CHOICE;
	flag.defval.strval = "not-allowed";
	flag.defval.listval.items = alloc_for_cli(spec, 3 * sizeof(flag.defval.listval.items[0]));
	if (!flag.defval.listval.items) OOM;
	flag.defval.listval.count = 3;
	flag.defval.listval.capacity = 3;
	flag.defval.listval.items[0] = "not-allowed";
	flag.defval.listval.items[1] = "exclusive";
	flag.defval.listval.items[2] = "on-demand";
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--hide-on-focus-loss", "hide_on_focus_loss"))) OOM;
	flag = (FlagSpec){.dest="hide_on_focus_loss",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--grab-keyboard", "grab_keyboard"))) OOM;
	flag = (FlagSpec){.dest="grab_keyboard",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--exclusive-zone", "exclusive_zone"))) OOM;
	flag = (FlagSpec){.dest="exclusive_zone",};
	flag.defval.type = CLI_VALUE_INT;
	flag.defval.intval = -1;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--override-exclusive-zone", "override_exclusive_zone"))) OOM;
	flag = (FlagSpec){.dest="override_exclusive_zone",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--single-instance", "single_instance"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-1", "single_instance"))) OOM;
	flag = (FlagSpec){.dest="single_instance",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--instance-group", "instance_group"))) OOM;
	flag = (FlagSpec){.dest="instance_group",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--wait-for-single-instance-window-close", "wait_for_single_instance_window_close"))) OOM;
	flag = (FlagSpec){.dest="wait_for_single_instance_window_close",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--listen-on", "listen_on"))) OOM;
	flag = (FlagSpec){.dest="listen_on",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--toggle-visibility", "toggle_visibility"))) OOM;
	flag = (FlagSpec){.dest="toggle_visibility",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--move-to-active-monitor", "move_to_active_monitor"))) OOM;
	flag = (FlagSpec){.dest="move_to_active_monitor",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--start-as-hidden", "start_as_hidden"))) OOM;
	flag = (FlagSpec){.dest="start_as_hidden",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--detach", "detach"))) OOM;
	flag = (FlagSpec){.dest="detach",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--detached-log", "detached_log"))) OOM;
	flag = (FlagSpec){.dest="detached_log",};
	flag.defval.type = CLI_VALUE_STRING;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-rendering", "debug_rendering"))) OOM;
	flag = (FlagSpec){.dest="debug_rendering",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--debug-input", "debug_input"))) OOM;
	flag = (FlagSpec){.dest="debug_input",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--help", "help"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-h", "help"))) OOM;
	flag = (FlagSpec){.dest="help",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "--version", "version"))) OOM;
	if (vt_is_end(vt_insert(&spec->alias_map, "-v", "version"))) OOM;
	flag = (FlagSpec){.dest="version",};
	flag.defval.type = CLI_VALUE_BOOL;
	flag.defval.boolval = false;
	if (vt_is_end(vt_insert(&spec->flag_map, flag.dest, flag))) OOM;
	parse_cli_loop(spec, true, argc, argv);
}
