{
	"$schema": "http://json-schema.org/draft-07/schema",
	"$id": "https://schemas.gongt.net/build-script/schema.json",
	"type": "object",
	"additionalProperties": false,
	"properties": {
		"$schema": {
			"type": "string",
			"const": "https://schemas.gongt.net/build-script/schema.json"
		},
		"load": {
			"type": "array",
			"items": {
				"type": "object",
				"additionalProperties": false,
				"properties": {
					"file": {
						"type": "string"
					},
					"args": {
						"type": ["string", "array"],
						"items": {
							"type": "string"
						}
					}
				}
			}
		},
		"plugins": {
			"type": "array",
			"items": {
				"type": "object",
				"additionalProperties": false,
				"required": ["name"],
				"properties": {
					"name": {
						"type": "string"
					},
					"args": {
						"type": "array",
						"items": {
							"type": "string"
						}
					}
				}
			}
		},
		"command": {
			"type": "object",
			"additionalProperties": {
				"type": "object",
				"additionalProperties": false,
				"required": ["run"],
				"properties": {
					"title": {
						"type": "string"
					},
					"serial": {
						"type": "boolean",
						"default": false
					},
					"run": {
						"type": "array",
						"items": {
							"type": "string"
						}
					},
					"after": {
						"type": "array",
						"items": {
							"type": "string"
						}
					}
				}
			},
			"propertyNames": {
				"pattern": "^[a-zA-Z0-9_-]+$"
			}
		},
		"alias": {
			"type": "object",
			"additionalProperties": {
				"type": ["string", "array"],
				"items": {
					"type": "string"
				}
			}
		}
	}
}
