mirror of
https://github.com/placeAtlas/atlas.git
synced 2024-11-10 20:12:04 +01:00
130 lines
No EOL
3.8 KiB
JSON
130 lines
No EOL
3.8 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft-07/schema",
|
|
"type": "array",
|
|
"definitions": {
|
|
"entry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"id": {
|
|
"oneOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": 1
|
|
},
|
|
{
|
|
"type": "integer",
|
|
"minimum": -1,
|
|
"maximum": 0,
|
|
"description": "The ID of the entry. The value is a placeholder for new entries."
|
|
}
|
|
],
|
|
"description": "The ID of the entry. Usually, this is a number (preferably number, or string), or the post ID of the new entry submission."
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
"description": "The short, descriptive name of the entry.",
|
|
"minLength": 1
|
|
},
|
|
"description": {
|
|
"type": "string",
|
|
"description": "The description of the entry. that will also be understood by somebody not familiar with the topic. Usually, the first sentence on Wikipedia is a good example."
|
|
},
|
|
"links": {
|
|
"type": "object",
|
|
"description": "The links related to the entry.",
|
|
"properties": {
|
|
"subreddit": {
|
|
"type": "array",
|
|
"description": "Subreddits that's either most relevant to the topic, or that was responsible for creating the artwork, excluding the r/.",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "A subreddit that's either most relevant to the topic, or that was responsible for creating the artwork.",
|
|
"pattern": "^[A-Za-z0-9][A-Za-z0-9_]{1,20}$",
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"website": {
|
|
"type": "array",
|
|
"description": "URL to websites related to the entry, including the http/https protocol. If you're describing a project, the project's main website would be suitable here.",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "The URL to a website related to the entry.",
|
|
"pattern": "^https?://[^\\s/$.?#].[^\\s]*$",
|
|
"minItems": 1
|
|
}
|
|
},
|
|
"discord": {
|
|
"type": "array",
|
|
"description": "Invite codes of Discord servers related to the entry (excluding discord.gg/)",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "The invite code of a Discord server related to the entry.",
|
|
"minItems": 1,
|
|
"minLength": 1
|
|
}
|
|
},
|
|
"wiki": {
|
|
"type": "array",
|
|
"description": "Wiki pages related to the entry.",
|
|
"items": {
|
|
"type": "string",
|
|
"description": "The title of the wiki page related to the entry.",
|
|
"minItems": 1,
|
|
"minLength": 1
|
|
}
|
|
}
|
|
},
|
|
"additionalProperties": false
|
|
},
|
|
"path": {
|
|
"type": "object",
|
|
"description": "The path of the entry.",
|
|
"patternProperties": {
|
|
"^(\\d+(-\\d+)?|\\w+(:\\d+(-\\d+)?)?)(, (\\d+(-\\d+)?|\\w+(:\\d+(-\\d+)?)?))*$": {
|
|
"type": "array",
|
|
"description": "A period containing the path points.",
|
|
"items": {
|
|
"type": "array",
|
|
"description": "A point.",
|
|
"items": {
|
|
"type": "number"
|
|
},
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
},
|
|
"minItems": 3
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"minProperties": 1
|
|
},
|
|
"center": {
|
|
"type": "object",
|
|
"description": "The center of the entry.",
|
|
"patternProperties": {
|
|
"^(\\d+(-\\d+)?|\\w+(:\\d+(-\\d+)?)?)(, (\\d+(-\\d+)?|\\w+(:\\d+(-\\d+)?)?))*$": {
|
|
"type": "array",
|
|
"description": "A period containing the center point.",
|
|
"items": {
|
|
"type": "number",
|
|
"description": "A point."
|
|
},
|
|
"minItems": 2,
|
|
"maxItems": 2
|
|
}
|
|
},
|
|
"additionalProperties": false,
|
|
"minProperties": 1
|
|
}
|
|
},
|
|
"required": ["id", "name", "description", "links", "path", "center"],
|
|
"additionalItems": true
|
|
}
|
|
},
|
|
"items": {
|
|
"$ref": "#/definitions/entry"
|
|
}
|
|
} |