{
    "State" : {
        "version": 1,
        "categories": "tutorials",
        "scheduling": ["threadsafe"],
        "description": [
            "This is a tutorial node. It makes use of internal state information",
            "to continuously increment an output."
        ],
        "metadata":
        {
           "uiName": "Tutorial Node: Internal States"
        },
        "inputs": {
            "overrideValue": {
                "type": "int64",
                "description": "Value to use instead of the monotonically increasing internal one when 'override' is true",
                "default": 0,
                "metadata": {
                    "uiName": "Override Value"
                }
            },
            "override": {
                "type": "bool",
                "description": "When true get the output from the overrideValue, otherwise use the internal value",
                "default": false,
                "metadata": {
                    "uiName": "Enable Override"
                }
            }
        },
        "outputs": {
            "monotonic": {
                "type": "int64",
                "description": "Monotonically increasing output, set by internal state information",
                "default": 0,
                "metadata": {
                    "uiName": "State-Based Output"
                }
            }
        },
        "tests": [
            { "inputs:overrideValue": 555, "inputs:override": true, "outputs:monotonic": 555 }
        ],
        "$tests": "State tests are better done by a script that can control how many times a node evaluates"
    }
}
