export default { '$schema': 'http://nosuchtype.com/xflow/v1/schema#', 'id': '/', 'type': 'object', 'properties': { 'id': { 'id': 'id', 'type': 'string', 'minLength': 1 }, 'name': { 'id': 'name', 'type': 'string', 'minLength': 1 }, 'version': { 'id': 'version', 'type': 'number', 'minimum': 0 }, 'requirements': { 'id': 'requirements', 'type': 'array', 'minItems': 1, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'object', 'properties': { 'xtype': { 'id': 'xtype', 'type': 'string', 'minLength': 1 }, 'version': { 'id': 'version', 'type': 'integer', 'minimum': 1, 'default': 1 } }, 'additionalProperties': false } }, 'variables': { 'id': 'variables', 'type': 'object', 'properties': { 'input': { 'type': 'array', 'minItems': 0, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type' : 'object', 'oneOf' : [ { '$ref': '#/definitions/scopeVariable' } ] } }, 'output': { 'type': 'array', 'minItems': 0, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'object', 'oneOf' : [ { '$ref': '#/definitions/scopeVariableReference' } ] } }, 'local': { 'id': 'local', 'type': 'array', 'minItems': 0, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'object', 'oneOf' : [ { '$ref': '#/definitions/scopeVariable' } ] } } }, 'additionalProperties': false, 'required' : [ 'input', 'output', 'local' ] }, 'nodes': { 'id': 'nodes', 'type': 'array', 'minItems': 2, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'object', 'oneOf' : [ { '$ref': '#/definitions/flowNode' } ] } }, 'edges': { 'id': 'edges', 'type': 'array', 'minItems': 1, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'array', 'oneOf' : [ { '$ref': '#/definitions/flowEdge' } ] } }, 'branches': { 'id': 'branches', 'type': 'array', 'minItems': 0, 'uniqueItems': true, 'additionalItems': true, 'items': { 'type': 'object', 'oneOf' : [ { '$ref': '#/definitions/flowBranch' } ] } } }, 'definitions' : { 'scopeVariableReference' : { 'properties' : { 'name' : { 'type': 'string', 'minLength': 1 }, 'vtype' : { 'type': 'string', 'minLength': 1, 'default': 'string', 'enum': [ 'boolean', 'number', 'string' ] } }, 'additionalProperties' : false, 'required': [ 'name', 'vtype' ] }, 'scopeVariable' : { 'properties' : { 'name' : { 'type': 'string', 'minLength': 1 }, 'vtype' : { 'type': 'string', 'minLength': 1, 'default': 'string', 'enum': [ 'boolean', 'number', 'string' ] }, 'value' : { 'type': 'string', 'minLength': 0, 'default': '' } }, 'additionalProperties' : false, 'required': [ 'name', 'vtype', 'value' ] }, 'flowNode' : { 'properties' : { 'id' : { 'type' : 'number' }, 'nodetype' : { 'type' : 'string' }, 'action' : { 'type' : 'string' }, 'label' : { 'type' : 'string' }, 'parameters' : { 'type' : 'object' } }, 'additionalProperties' : false, 'required': [ 'id', 'nodetype', 'action', 'label', 'parameters' ] }, 'flowEdge' : { 'properties' : { 'type': 'array', 'minItems': 2, 'maxItems': 2, 'uniqueItems': true, 'additionalItems': false, 'items': { 'type': 'number' }, 'additionalProperties': false } }, 'flowBranch' : { 'properties' : { 'edge' : { 'type': 'object', 'oneOf' : [ { '$ref': '#/definitions/flowEdge' } ] }, 'name' : { 'type' : 'string' }, 'value' : { 'type': 'object', 'anyOf': [ { 'type': 'boolean' }, { 'type': 'string' }, { 'type': 'number' } ] } }, 'additionalProperties' : false, 'required': [ 'edge', 'name', 'value' ] } }, 'additionalProperties': false, 'required': [ 'id', 'name', 'version', 'requirements', 'variables', 'nodes', 'edges', 'branches' ] };