{"title": "FutoIn interface definition schema", "type": "object", "required": ["iface", "version"], "additionalProperties": false, "properties": {"iface": {"type": "string", "pattern": "^([a-z][a-z0-9]*)(\\.[a-z][a-z0-9]*)+$", "description": "Unique interface identifier"}, "version": {"type": "string", "pattern": "^[0-9]+\\.(DV)?[0-9]+$", "description": "Version of given interface"}, "funcs": {"type": "object", "description": "Version of given interface", "additionalProperties": false, "properties": {"desc": {"type": "string"}}, "patternProperties": {"^[a-z][a-zA-Z0-9]*$": {"type": "object", "additionalProperties": false, "properties": {"params": {"additionalProperties": false, "patternProperties": {"^[a-z][a-z0-9_]*$": {"type": "object", "properties": {"type": {"type": "string", "pattern": "^boolean|integer|number|string|map|array$"}, "default": {"type": ["boolean", "integer", "number", "string", "object", "array", "null"]}, "desc": {"type": "string"}}}}, "description": "List of allowed parameter key-value pairs"}, "result": {"additionalProperties": false, "patternProperties": {"^[a-z][a-z0-9_]*$": {"type": "object", "properties": {"type": {"type": "string", "pattern": "^boolean|integer|number|string|map|array$"}, "desc": {"type": "string"}}}}, "description": "List of allowed result key-value pairs"}, "throws": {"type": "array", "uniqueItems": true, "description": "List of associative error names, which can be triggered by function execution"}}, "description": "Interface Function definition"}}}, "desc": {"type": "string"}, "inherit": {"type": "string", "description": "Name:version of interface to be inherited"}, "requires": {"type": "array", "description": "List of conditions for interface operation", "items": {"type": "string", "pattern": "^AllowAnonymous|SecureChannel|[a-zA-Z0-9]+$"}, "uniqueItems": true}}}