-
Notifications
You must be signed in to change notification settings - Fork 1
/
paths.schema.json
117 lines (117 loc) · 4.34 KB
/
paths.schema.json
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
{
"$schema": "http://json-schema.org/draft-07/schema",
"title": "Advent of Code solution paths manifest",
"description": "A manifest describing where the main sources for each day are located.",
"definitions": {
"lang": {
"type": "object",
"properties": {
"codemirror": {
"type": "string",
"description": "The CodeMirror language mode of the implementation language",
"examples": [
"apl", "asn.1", "asterisk", "brainfuck", "clike", "clojure", "css",
"cmake", "cobol", "coffeescript", "commonlisp", "crystal", "cypher",
"python", "d", "dart", "django", "dockerfile", "diff", "dtd",
"dylan", "ebnf", "ecl", "eiffel", "elixir", "elm", "erlang",
"factor", "fcl", "forth", "fortran", "mllike", "gas", "gherkin",
"go", "groovy", "haml", "handlebars", "haskell", "haxe",
"htmlembedded", "htmlmixed", "idl", "javascript", "jinja2", "julia",
"livescript", "lua", "markdown", "mathematica", "mbox", "mirc",
"modelica", "mscgen", "mumps", "nginx", "nsis", "ntriples",
"octave", "oz", "pascal", "pegjs", "perl", "asciiarmor", "php",
"pig", "powershell", "properties", "protobuf", "pug", "puppet", "q",
"r", "rpm", "rst", "ruby", "rust", "sas", "sass", "spreadsheet",
"scheme", "shell", "sieve", "slim", "smalltalk", "smarty", "solr",
"soy", "stylus", "sql", "sparql", "swift", "stex", "tcl", "textile",
"tiddlywiki", "tiki", "toml", "tornado", "troff", "ttcn",
"ttcn-cfg", "turtle", "twig", "vb", "vbscript", "velocity",
"verilog", "vhdl", "vue", "webidl", "wast", "xml", "xquery",
"yacas", "yaml", "yaml-frontmatter", "z80"
]
},
"name": {
"type": "string",
"description": "The human-readable name of the language."
}
},
"required": ["name"]
},
"solution": {
"type": ["object", "null"],
"description": "A solution.",
"properties": {
"lang": {
"$ref": "#/definitions/lang"
},
"path": {
"type": "string",
"description": "The path to the main source file"
},
"encoding": {
"type": "string",
"default": "utf-8",
"description": "Optionally a custom text encoding that the file uses (e.g. because the compiler/interpreter/IDE only supports the given encoding). See https://developer.mozilla.org/en-US/docs/Web/API/TextDecoder/encoding#value for values.",
"examples": [
"utf-8", "ibm866", "iso-8859-2", "iso-8859-3", "iso-8859-4",
"iso-8859-5", "iso-8859-6", "iso-8859-7", "iso-8859-8",
"iso-8859-8i", "iso-8859-10", "iso-8859-13", "iso-8859-14",
"iso-8859-15", "iso-8859-16", "koi8-r", "koi8-u", "macintosh",
"windows-874", "windows-1250", "windows-1251", "windows-1252",
"windows-1253", "windows-1254", "windows-1255", "windows-1256",
"windows-1257", "windows-1258", "x-mac-cyrillic", "utf16-be",
"utf16-le", "replacement"
]
},
"binary": {
"type": "boolean",
"description": "Whether the file is in a binary (i.e. non-text) format.",
"default": false
},
"additionalNotes": {
"type": "string",
"description": "Additional notes to be added to the README."
}
},
"required": ["path"]
},
"day": {
"description": "The solutions for a day.",
"allOf": [
{
"type": "object",
"properties": {
"completed": {
"type": "boolean",
"description": "Whether the day has been completed (fully).",
"default": false
}
}
},
{
"anyOf": [
{
"$ref": "#/definitions/solution"
},
{
"type": "object",
"properties": {
"parts": {
"type": "array",
"items": {
"$ref": "#/definitions/solution"
}
}
},
"required": ["parts"]
}
]
}
]
}
},
"type": "array",
"items": {
"$ref": "#/definitions/day"
}
}