- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Program",
- "description": "Specification of files or folders in the $HOME folder for a program",
- "properties": {
- "name": {
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "definitions": {
+ "empty": {
+ "type": "string",
+ "pattern": "^\\s+$"
+ }
+ },
+ "title": "specification",
+ "description": "A specification of files or folders in the $HOME folder for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "object",
+ "required": ["name", "files"],
+ "properties": {
+ "name": {
+ "title": "name",
+ "description": "A program name\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "string",
+ "minLength": 1,
+ "not": {
+ "$ref": "#/definitions/empty"
+ },
+ "examples": ["abook"]
+ },
+ "files": {
+ "title": "files",
+ "description": "Files and folders for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "array",
+ "uniqueItems": true,
+ "minItems": 1,
+ "items": {
+ "description": "A file or a folder for a program\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "object",
+ "required": ["path", "movable", "help"],
+ "properties": {
+ "path": {
+ "title": "path",
+ "description": "A path to a file or a folder\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "string",
+ "minLength": 1,
+ "not": {
+ "$ref": "#/definitions/empty"
+ },
+ "examples": ["$HOME/.abook"]
+ },
+ "movable": {
+ "title": "movable",
+ "description": "Whether a file or a folder is movable to a place other than $HOME\nhttps://github.com/b3nj5m1n/xdg-ninja",
+ "type": "boolean"
+ },
+ "help": {
+ "title": "help",
+ "description": "A help message for a user in markdown\nRestrictions:\n- can't contain just spaces\nhttps://github.com/b3nj5m1n/xdg-ninja",