-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathgame-schema-v1.json
More file actions
128 lines (128 loc) · 5.34 KB
/
game-schema-v1.json
File metadata and controls
128 lines (128 loc) · 5.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://raw.githubusercontent.com/lk-code/armyplanner/main/game-schema-v1.json",
"type": "object",
"title": "The ArmyPlanner Open-Format Game-Index schema",
"description": "This schema comprises the game-index JSON format from the ArmyPlanner Open Format.",
"definitions": {
"user-interface": {
"type": "object",
"title": "the keyword-translation schema",
"description": "describes how the unit object must be constructed",
"required": [
"element",
"items"
],
"properties": {
"element": {
"type": "string",
"title": "the name of ui-element",
"enum": [
"unit-list",
"wargear-list",
"roster-detail-summary-header"
],
"description": "to which ui element is this element directed"
},
"items": {
"type": "array",
"title": "the items-list schema",
"description": "contains a listing with the properties of the object to be displayed",
"additionalItems": true,
"items": {
"anyOf": [
{
"type": "string",
"title": "the key of the property",
"description": "contains the key of the property to be displayed."
}
]
}
}
}
}
},
"required": [
"title",
"description",
"codices",
"ui"
],
"properties": {
"title": {
"type": "string",
"title": "the title of the game",
"description": "contains the title of the game (like the name was given by the editor)"
},
"description": {
"type": "string",
"title": "an optional description for the game",
"description": "contains a description of the game - note: the description is given as markdown code"
},
"codices": {
"type": "array",
"title": "the codex-list schema",
"description": "contains a list of codex-index objects",
"additionalItems": true,
"items": {
"anyOf": [
{
"type": "object",
"title": "the codex-index schema",
"description": "contains a codex-index object with the index-data for the codex",
"required": [
"title",
"path",
"created"
],
"properties": {
"title": {
"type": "string",
"title": "the title of the codex",
"description": "contains the title of the codex (like the name was given by the editor)"
},
"description": {
"type": "string",
"title": "a description for the codex",
"description": "contains a description for the codex - note: the description is given as markdown code"
},
"enabled": {
"type": "boolean",
"title": "an optional parameter for the codex to enable or disable this codex entry",
"description": "If false, this codx entry should not be loaded. If enabled is not set, the codex can be loaded as well.",
"default": false
},
"path": {
"type": "string",
"title": "the codex-index path",
"description": "specifies the path to the codex-file"
},
"created": {
"type": "string",
"title": "the timestamp of the latest edit",
"description": "the (utc-)timestamp used for update functionality"
}
},
"additionalProperties": true
}
]
}
},
"ui": {
"type": "array",
"title": "a list of elements describing specific app ui parts",
"description": "contains various elements that describe the structure of certain app interface elements.",
"additionalItems": true,
"items": {
"anyOf": [
{
"$ref": "#/definitions/user-interface",
"additionalProperties": true
}
],
"additionalProperties": true
}
}
},
"additionalProperties": true
}