{
  "info": {
    "description": "Emulator Jey-Dai specs.",
    "helpGroup": "EMU Control Commands"
  },

  "can": {

    "FileLoad": {
      "help": "Load file",
      "args": 1,
      "hints": "<file>",
      "usage": [
        "Syntax: FileLoad <file>\n",
        "Commands outputs Array of bytes [], which can be used by other commands.\n",
        "Example: FileLoad \"Data\\AnsiFont.szp\"\n"
      ],
      "output": "Array bytes []"
    },

    "FileSave": {
      "help": "Save file",
      "args": 2,
      "hints": "<file> <cmd>",
      "usage": [
        "Syntax: FileSave <file> <cmd ...>\n",
        "Save data returned by another command (cmd) to specified file.\n",
        "Example: FileSave \"Data\\FST.bin\" DumpFst\n"
      ]
    },

    "sleep": {
      "help": "Sleep specified number of milliseconds",
      "args": 1,
      "hints": "<msec>",
      "usage": [
        "Syntax: sleep <milliseconds>\n",
        "Examples of use: sleep 1000\n"
      ]
    },

    "exit": {
      "help": "Exit (also: x, quit, q)"
    },
    "quit": {
      "internal": true,
      "help": "Exit"
    },
    "x": {
      "internal": true,
      "help": "Exit"
    },
    "q": {
      "internal": true,
      "help": "Exit"
    },

    "load": {
      "help": "load DVD/executable from file",
      "args": 1,
      "usage": [
        "Syntax: load <file>\n",
        "path can be relative. Use `load Bootrom` to load IPL.\n",
        "Examples of use: boot c:\\luigimansion.gcm\n",
        "                 boot PONG.dol\n"
      ]
    },

    "unload": {
      "help": "unload current file"
    },

    "reset": {
      "help": "Reset emulation"
    },

    "IsLoaded": {
      "internal": true,
      "help": "Return true if emulation state is `Loaded`",
      "output": "Bool"
    },

    "GetLoaded": {
      "internal": true,
      "help": "Get the full path of the loaded file",
      "info": "Used by other components to obtain information about the currently running game or DOL file.",
      "output": "{ loaded: PathString }"
    },

    "GetVersion": {
      "internal": true,
      "help": "Get emulator version",
      "output": "Array: [String]"
    },

    "GetConfig": {
      "help": "Dump config"
    },

    "GetConfigString": {
      "internal": true,
      "help": "Get configuration String parameter",
      "args": 2,
      "usage": [
        "Use: GetConfigString <section> <param>"
      ],
      "output": "Array: [String]"
    },

    "SetConfigString": {
      "internal": true,
      "help": "Set configuration String parameter",
      "args": 3,
      "usage": [
        "Use: SetConfigString <section> <param> <value>"
      ]
    },

    "GetConfigInt": {
      "internal": true,
      "help": "Get configuration Int parameter",
      "args": 2,
      "usage": [
        "Use: GetConfigInt <section> <param>"
      ],
      "output": "Array: [Int]"
    },

    "SetConfigInt": {
      "internal": true,
      "help": "Set configuration Int parameter",
      "args": 3,
      "usage": [
        "Use: SetConfigInt <section> <param> <value>"
      ]
    },

    "GetConfigBool": {
      "internal": true,
      "help": "Get configuration Bool parameter",
      "args": 2,
      "usage": [
        "Use: GetConfigBool <section> <param>"
      ],
      "output": "Array: [Bool]"
    },

    "SetConfigBool": {
      "internal": true,
      "help": "Set configuration Bool parameter",
      "args": 3,
      "usage": [
        "Use: SetConfigBool <section> <param> <value>"
      ]
    },

    "threads": {
      "help": "Show emulator threads (Util::Thread)"
    }

  }

}
