{
    "$id": "http://pddl-schema.org/ptest.json",
    "type": "object",
    "definitions": {},
    "$schema": "http://json-schema.org/draft-07/schema#",
    "properties": {
        "defaultDomain": {
            "$id": "/properties/defaultDomain",
            "type": "string",
            "title": "The domain file, if common to many of the test cases. The 'domain' property in each individual test case can override this value.",
            "default": "",
            "examples": [
                "domain.pddl"
            ]
        },
        "defaultProblem": {
            "$id": "/properties/defaultProblem",
            "type": "string",
            "title": "The problem file, if common to many of the test cases. The 'problem' property in each individual test case can override this value.",
            "default": "",
            "examples": [
                "problem.pddl"
            ]
        },
        "defaultOptions": {
            "$id": "/properties/defaultOptions",
            "type": "string",
            "title": "The command line options. Set this to empty string to avoid getting asked every time.",
            "default": "",
            "examples": [
                ""
            ]
        },
        "cases": {
            "$id": "/properties/cases",
            "type": "array",
            "items": {
                "$id": "/properties/cases/items",
                "type": "object",
                "properties": {
                    "label": {
                        "$id": "/properties/cases/items/properties/label",
                        "type": "string",
                        "description": "The Label for the test case",
                        "default": "Test XYZ",
                        "examples": [
                            "Test case number 1"
                        ]
                    },
                    "description": {
                        "$id": "/properties/cases/items/properties/description",
                        "type": "string",
                        "description": "The Description for the test case",
                        "default": "Test XYZ...",
                        "examples": [
                            "Given ... when ... then ..."
                        ]
                    },
                    "domain": {
                        "$id": "/properties/cases/items/properties/domain",
                        "type": "string",
                        "description": "The Domain file. Use absolute path, or relative to this ptest manifest file.",
                        "default": "domain.pddl",
                        "examples": [
                            "domain.pddl"
                        ]
                    },
                    "problem": {
                        "$id": "/properties/cases/items/properties/problem",
                        "type": "string",
                        "description": "The Problem file or template.",
                        "default": "problem.pddl",
                        "examples": [
                            "problem.pddl"
                        ]
                    },
                    "options": {
                        "$id": "/properties/cases/items/properties/options",
                        "type": "string",
                        "description": "The command-line options",
                        "default": "",
                        "examples": [
                            "-t 0.001"
                        ]
                    },
                    "preProcess": {
                        "$id": "/properties/cases/items/properties/preProcess",
                        "description": "Pre-processor to execute before launching the planner.",
                        "type": "object",
                        "required": [
                            "kind"
                        ],
                        "properties": {
                            "kind": {
                                "$id": "/properties/cases/items/properties/preProcess/properties/kind",
                                "type": "string",
                                "description": "The kind of pre-processor.",
                                "pattern": "^(nunjucks|jinja2|python|command)$",
                                "default": "nunjucks",
                                "examples": [
                                    "command",
                                    "python",
                                    "nunjucks",
                                    "jinja2"
                                ]
                            },
                            "command": {
                                "$id": "/properties/cases/items/properties/preProcess/properties/command",
                                "type": "string",
                                "description": "The command to execute. Mandatory when 'kind' is set to 'command'.",
                                "default": "",
                                "examples": [
                                    "shell",
                                    "script.bat",
                                    "program.exe"
                                ]
                            },
                            "script": {
                                "$id": "/properties/cases/items/properties/preProcess/properties/script",
                                "type": "string",
                                "description": "The python script to execute. Mandatory when 'kind' is set to 'python'.",
                                "default": "myscript.py",
                                "examples": [
                                    "script.py"
                                ]
                            },
                            "args": {
                                "$id": "/properties/cases/items/properties/preProcess/properties/args",
                                "type": "array",
                                "description": "Command-line arguments",
                                "items": {
                                    "$id": "/properties/cases/items/properties/preProcess/properties/args/items",
                                    "type": "string",
                                    "title": "The command-line argument",
                                    "default": "",
                                    "examples": [
                                        "script.py",
                                        "data.json"
                                    ]
                                }
                            },
                            "data": {
                                "$id": "/properties/cases/items/properties/preProcess/properties/data",
                                "type": "string",
                                "description": "The JSON data file. This property is mandatory if 'kind' is set to 'jinja2' or 'nunjucks'",
                                "default": "case1.json",
                                "examples": [
                                    "data.json"
                                ]
                            }
                        }
                    },
                    "expectedPlans": {
                        "$id": "/properties/cases/items/properties/expectedPlans",
                        "description": "Expected plans - put one or more plan file names here",
                        "type": "array",
                        "items": {
                            "$id": "/properties/cases/items/properties/expectedPlans/items",
                            "type": "string",
                            "title": "Plan file name",
                            "default": ""
                        }
                    }
                }
            }
        }
    }
}