{
    "Defaults": {
        "version": 1,
        "categories": "tutorials",
        "scheduling": ["threadsafe"],
        "description": ["This is a tutorial node. It will move the values of inputs to corresponding outputs.",
                        "Inputs all have unspecified, and therefore empty, default values."
        ],
        "metadata":
        {
           "uiName": "Tutorial Node: Defaults"
        },
        "inputs": {
            "a_bool": {
                "type": "bool",
                "description": ["This is an attribute of type boolean"]
             },
            "a_half": {
                "type": "half",
                "description": ["This is an attribute of type 16 bit floating point"]
             },
            "a_int": {
                "type": "int",
                "description": ["This is an attribute of type 32 bit integer"]
             },
            "a_int64": {
                "type": "int64",
                "description": ["This is an attribute of type 64 bit integer"]
             },
            "a_float": {
                "type": "float",
                "description": ["This is an attribute of type 32 bit floating point"]
             },
            "a_double": {
                "type": "double",
                "description": ["This is an attribute of type 64 bit floating point"]
             },
             "a_string": {
                "type": "string",
                "description": ["This is an attribute of type string"]
            },
            "a_token": {
                "type": "token",
                "description": ["This is an attribute of type interned string with fast comparison and hashing"]
            },
            "a_uchar": {
               "type": "uchar",
               "description": ["This is an attribute of type unsigned 8 bit integer"]
           },
            "a_uint": {
               "type": "uint",
               "description": ["This is an attribute of type unsigned 32 bit integer"]
            },
            "a_uint64": {
                "type": "uint64",
                "description": ["This is an attribute of type unsigned 64 bit integer"]
            },
            "a_int2": {
                "type": "int[2]",
                "description": ["This is an attribute of type 2-tuple of integers"]
            },
            "a_matrix": {
                "type": "matrixd[2]",
                "description": ["This is an attribute of type 2x2 matrix"]
            },
            "a_array": {
                "type": "float[]",
                "description": ["This is an attribute of type array of floats"]
             }
        },
        "outputs": {
            "a_bool": {
                "type": "bool",
                "description": ["This is a computed attribute of type boolean"]
             },
            "a_half": {
                "type": "half",
                "description": ["This is a computed attribute of type 16 bit floating point"]
             },
            "a_int": {
                "type": "int",
                "description": ["This is a computed attribute of type 32 bit integer"]
             },
            "a_int64": {
                "type": "int64",
                "description": ["This is a computed attribute of type 64 bit integer"]
             },
            "a_float": {
                "type": "float",
                "description": ["This is a computed attribute of type 32 bit floating point"]
             },
            "a_double": {
                "type": "double",
                "description": ["This is a computed attribute of type 64 bit floating point"]
            },
            "a_string": {
                "type": "string",
                "description": ["This is a computed attribute of type string"]
            },
            "a_token": {
                "type": "token",
                "description": ["This is a computed attribute of type interned string with fast comparison and hashing"]
            },
            "a_uchar": {
                "type": "uchar",
                "description": ["This is a computed attribute of type unsigned 8 bit integer"]
            },
            "a_uint": {
                "type": "uint",
                "description": ["This is a computed attribute of type unsigned 32 bit integer"]
            },
            "a_uint64": {
                "type": "uint64",
                "description": ["This is a computed attribute of type unsigned 64 bit integer"]
            },
            "a_int2": {
                "type": "int[2]",
                "description": ["This is a computed attribute of type 2-tuple of integers"]
            },
            "a_matrix": {
                "type": "matrixd[2]",
                "description": ["This is a computed attribute of type 2x2 matrix"]
            },
            "a_array": {
                "type": "float[]",
                "description": ["This is a computed attribute of type array of floats"]
            }
        },
        "tests": [
            {
                "outputs:a_bool": false,
                "outputs:a_double": 0.0,
                "outputs:a_float": 0.0,
                "outputs:a_half": 0.0,
                "outputs:a_int": 0,
                "outputs:a_int64": 0,
                "outputs:a_string": "",
                "outputs:a_token": "",
                "outputs:a_uchar": 0,
                "outputs:a_uint": 0,
                "outputs:a_uint64": 0,
                "outputs:a_int2": [0, 0],
                "outputs:a_matrix": [[1.0, 0.0], [0.0, 1.0]],
                "outputs:a_array": []
            }
        ]
    }
}
