{ "$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" } }