{
	"$id": "https://yazi-rs.github.io/schemas/keymap.json",
	"$schema": "https://json-schema.org/draft/2020-12/schema",
	"type": "object",
	"additionalProperties": false,
	"properties": {
		"$schema": {
			"default": "https://yazi-rs.github.io/schemas/keymap.schema.json",
			"type": "string"
		},
		"mgr": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"tasks": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"spot": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"pick": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"input": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"confirm": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"cmp": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		},
		"help": {
			"type": "object",
			"properties": {
				"keymap": { "$ref": "#/$defs/keymap" },
				"prepend_keymap": { "$ref": "#/$defs/keymap" },
				"append_keymap": { "$ref": "#/$defs/keymap" }
			},
			"additionalProperties": false
		}
	},
	"$defs": {
		"strOrStrArray": {
			"oneOf": [
				{ "type": "string" },
				{ "type": "array", "items": { "type": "string" } }
			]
		},
		"keymap": {
			"type": "array",
			"items": {
				"type": "object",
				"properties": {
					"on": { "$ref": "#/$defs/strOrStrArray" },
					"run": { "$ref": "#/$defs/strOrStrArray" },
					"desc": { "type": "string" },
					"for": { "$ref": "/schemas/types/platform.json" }
				},
				"required": ["on", "run"]
			}
		}
	}
}
