1{
2  "title": "benchmark",
3  "type": "object",
4  "properties": {
5    "timing_type": {
6      "type": "string"
7    },
8    "functions": {
9      "title": "Associative array of functions",
10      "type": "object",
11      "patternProperties": {
12        "^[_a-zA-Z][_a-zA-Z0-9]+$": {
13          "title": "Function names",
14          "type": "object",
15          "patternProperties": {
16            "^[_a-zA-Z0-9,=.-]*$": {
17              "title": "Function variants",
18              "type": "object",
19              "properties": {
20                "duration": {"type": "number"},
21                "iterations": {"type": "number"},
22                "throughput": {"type": "number"},
23                "max": {"type": "number"},
24                "min": {"type": "number"},
25                "mean": {"type": "number"},
26                "latency": {"type": "number"},
27                "min-throughput": {"type": "number"},
28                "max-throughput": {"type": "number"},
29                "reciprocal-throughput": {"type": "number"},
30                "min-outlier": {"type": "number"},
31                "max-outlier": {"type": "number"},
32                "wall-sec": {"type": "number"},
33                "stdev": {"type": "number"},
34                "timings": {
35                  "type": "array",
36                  "items": {"type": "number"}
37                }
38              },
39              "required": ["duration", "iterations"],
40              "additionalProperties": false
41            }
42          },
43          "additionalProperties": false
44        }
45      },
46      "minProperties": 1
47    }
48  },
49  "required": ["timing_type", "functions"],
50  "additionalProperties": false
51}
52