{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "definitions": {
        "Comment": {
            "properties": {
                "body": {
                    "maxLength": 140,
                    "minLength": 5,
                    "type": "string"
                },
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "post": {
                    "$ref": "#/definitions/Post"
                },
                "postId": {
                    "type": "integer"
                }
            },
            "propertyOrder": [
                "body",
                "postId",
                "post",
                "id",
                "meta"
            ],
            "required": [
                "body",
                "id",
                "postId"
            ],
            "type": "object"
        },
        "Group": {
            "properties": {
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "name": {
                    "maxLength": 20,
                    "minLength": 1,
                    "type": "string"
                },
                "posts": {
                    "items": {
                        "$ref": "#/definitions/Post"
                    },
                    "type": "array"
                }
            },
            "propertyOrder": [
                "name",
                "posts",
                "id",
                "meta"
            ],
            "required": [
                "id",
                "name"
            ],
            "type": "object"
        },
        "Meta": {
            "additionalProperties": {},
            "propertyOrder": [],
            "type": "object"
        },
        "Post": {
            "properties": {
                "comments": {
                    "items": {
                        "$ref": "#/definitions/Comment"
                    },
                    "type": "array"
                },
                "group": {
                    "$ref": "#/definitions/Group"
                },
                "groupId": {
                    "type": "integer"
                },
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "title": {
                    "maxLength": 50,
                    "minLength": 5,
                    "type": "string"
                },
                "user": {
                    "$ref": "#/definitions/User"
                },
                "userId": {
                    "type": "integer"
                }
            },
            "propertyOrder": [
                "title",
                "userId",
                "groupId",
                "user",
                "group",
                "comments",
                "id",
                "meta"
            ],
            "required": [
                "groupId",
                "id",
                "title",
                "userId"
            ],
            "type": "object"
        },
        "Product": {
            "properties": {
                "arr": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "arr1": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "obj": {
                    "additionalProperties": true,
                    "properties": {},
                    "type": "object"
                },
                "obj1": {
                    "additionalProperties": true,
                    "properties": {},
                    "type": "object"
                }
            },
            "propertyOrder": [
                "arr",
                "arr1",
                "obj",
                "obj1",
                "id",
                "meta"
            ],
            "required": [
                "arr",
                "id",
                "obj"
            ],
            "type": "object"
        },
        "Profile": {
            "additionalProperties": true,
            "properties": {
                "desc": {
                    "type": "string"
                },
                "name": {
                    "maxLength": 20,
                    "minLength": 5,
                    "type": "string"
                }
            },
            "propertyOrder": [
                "name",
                "desc"
            ],
            "required": [
                "name"
            ],
            "type": "object"
        },
        "Tag": {
            "properties": {
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "name": {
                    "maxLength": 20,
                    "minLength": 1,
                    "type": "string"
                },
                "post": {
                    "$ref": "#/definitions/Post"
                },
                "postId": {
                    "type": "integer"
                }
            },
            "propertyOrder": [
                "name",
                "postId",
                "post",
                "id",
                "meta"
            ],
            "required": [
                "id",
                "name",
                "postId"
            ],
            "type": "object"
        },
        "Testonly": {
            "properties": {
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "metadata": {
                    "additionalProperties": true,
                    "properties": {},
                    "type": "object"
                },
                "private": {
                    "type": "boolean"
                },
                "private1": {
                    "type": "boolean"
                },
                "tags": {
                    "items": {
                        "type": "string"
                    },
                    "type": "array"
                },
                "test": {
                    "type": "null"
                },
                "test1": {
                    "type": "null"
                },
                "weight": {
                    "type": "number"
                }
            },
            "propertyOrder": [
                "tags",
                "metadata",
                "private",
                "private1",
                "weight",
                "test",
                "test1",
                "id",
                "meta"
            ],
            "required": [
                "id",
                "test1"
            ],
            "type": "object"
        },
        "User": {
            "properties": {
                "id": {
                    "type": "integer"
                },
                "meta": {
                    "$ref": "#/definitions/Meta"
                },
                "name": {
                    "maxLength": 20,
                    "minLength": 1,
                    "type": "string"
                },
                "posts": {
                    "items": {
                        "$ref": "#/definitions/Post"
                    },
                    "type": "array"
                },
                "token": {
                    "type": "string"
                }
            },
            "propertyOrder": [
                "name",
                "token",
                "posts",
                "id",
                "meta"
            ],
            "required": [
                "id",
                "name",
                "token"
            ],
            "type": "object"
        }
    }
}
