{
    "title": "Funscript",
    "description": "Funjack's haptic script format",
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "https://raw.github.com/funjack/launchcontrol/master/schemas/funscript.schema.json",
    "type": "object",
    "properties": {
        "version": {
            "description": "Funscript version",
            "type": "string"
        },
        "range": {
            "description": "Range of moment to use in percent",
            "type": "integer",
            "minimum": 0,
            "maximum": 100
        },
        "inverted": {
            "description": "Invert position values (0=100, 100=0)",
            "type": "boolean"
        },
        "actions": {
            "description": "Script actions",
            "type": "array",
            "items": {
                "description": "An action",
                "type": "object",
                "properties": {
                    "pos": {
                        "description": "Position in percent",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100
                    },
                    "at": {
                        "description": "Time to be at position in milliseconds",
                        "type": "integer",
                        "minimum": 0
                    }
                },
                "required": [
                    "pos",
                    "at"
                ]
            }
        }
    },
    "required": [
        "actions"
    ]
}