diff --git a/pkg/catalog/catalog.schema.json b/pkg/catalog/catalog.schema.json new file mode 100644 index 0000000..8339af2 --- /dev/null +++ b/pkg/catalog/catalog.schema.json @@ -0,0 +1,71 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/monome/maiden/master/pkg/catalog/catalog.schema.json", + "title": "maiden catalog", + "description": "listing of maiden projects", + "type": "object", + "properties": { + "file_info": { + "description": "file format metadata", + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "version": { + "type": "integer" + } + }, + "required": [ "kind", "version" ] + }, + "catalog_name": { + "type": "string" + }, + "date": { + "type": "string" + }, + "entries": { + "description": "individual project entries", + "type": "array", + "items": { + "type": "object", + "properties": { + "project_name": { + "type": "string" + }, + "project_url": { + "type": "string" + }, + "description": { + "type": "string" + }, + "author": { + "type": "string" + }, + "home_page": { + "type": "string" + }, + "discussion_url": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "uniqueItems": true + }, + "version": { + "type": "string" + }, + "origin": { + "type": "string" + } + }, + "required": [ "project_name", "project_url" ] + } + } + }, + "required": [ "file_info", "catalog_name", "entries" ] +} diff --git a/pkg/catalog/source.schema.json b/pkg/catalog/source.schema.json new file mode 100644 index 0000000..969f459 --- /dev/null +++ b/pkg/catalog/source.schema.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://raw.githubusercontent.com/monome/maiden/master/pkg/catalog/source.schema.json", + "title": "maiden catalog source file", + "description": "details of maiden catalog to download", + "type": "object", + "properties": { + "file_info": { + "description": "file format metadata", + "type": "object", + "properties": { + "kind": { + "type": "string" + }, + "version": { + "type": "integer" + } + }, + "required": [ "kind", "version" ] + }, + "source": { + "type": "object", + "properties": { + "name": { + "type": "string" + }, + "method": { + "type": "string" + }, + "parameters": { + "type": "object" + } + }, + "required": [ "name", "method", "parameters" ] + } + }, + "required": [ "file_info", "source" ] +}