1[
2    {
3        "schema": {
4            "Invoice": {
5                "id": "Invoice",
6                "description": "Represents the document sent to the customer for payment.",
7                "properties": {
8                    "customer": {
9                        "description": "Who will pay?\nNot me! éàè",
10                        "type": "string"
11                    },
12                    "lines": {
13                        "description": "Invoice content\n",
14                        "minItems": "1",
15                        "maxItems": "50",
16                        "type": "array",
17                        "items": {
18                            "$ref": "InvoiceLine"
19                        }
20                    },
21                    "dimension": {
22                        "description": "Total dimension of the order ",
23                        "$ref": "Dimension"
24                    }
25                }
26            },
27            "InvoiceLine": {
28                "id": "InvoiceLine",
29                "properties": {
30                    "product": {
31                        "$ref": "Product"
32                    },
33                    "quantity": {
34                        "minimum": "0",
35                        "exclusiveMinimum": "true",
36                        "maximum": "10",
37                        "exclusiveMaximum": "false",
38                        "type": "number"
39                    }
40                }
41            },
42            "Dimension": {
43                "id": "Dimension",
44                "properties": {
45                    "width": {
46                        "description": "Width in cm ",
47                        "type": "number"
48                    },
49                    "height": {
50                        "description": "Height in cm ",
51                        "type": "number"
52                    },
53                    "length": {
54                        "description": "Length in cm ",
55                        "type": "number"
56                    }
57                }
58            },
59            "Product": {
60                "id": "Product",
61                "properties": {
62                    "name": {
63                        "description": "Uniquely defines the product ",
64                        "type": "string"
65                    },
66                    "dimension": {
67                        "description": "How big it is ",
68                        "$ref": "Dimension"
69                    },
70                    "category": {
71                        "description": "Classification ",
72                        "$ref": "Category"
73                    }
74                }
75            },
76            "Category": {
77                "id": "Category",
78                "properties": {
79                    "name": {
80                        "description": "Uniquely identifies the category ",
81                        "type": "string"
82                    },
83                    "level": {
84                        "description": "Classification level from 1 to 5 (highest) ",
85                        "type": "number"
86                    }
87                }
88            },
89            "CategoryIndex": {
90                "id": "CategoryIndex",
91                "properties": {
92                    "categories": {},
93                    "products": {},
94                    "sizes": {}
95                }
96            }
97        }
98    }]
99