"description":"A category to group project objects under.",
"properties":{
"title":{
"title":"Category Title",
"description":"A human-readable identifier for the category.",
"type":"string"
},
"id":{
"title":"Category Identifier",
"description":"A short identifier designed for programs. It should only contain lowercase alphanumeric characters and a - (dash) for replacing spaces.",
"type":"string",
"pattern":"^[^A-Z_ ]+$"
},
"description":{
"title":"Category Description",
"description":"A description of the category meant to be provided to the user.",
"type":"string",
"default":""
},
"parent":{
"title":"Category Parent",
"description":"Makes the current category a subcategory of the category with an id that matches this value.",
"type":["string","null"],
"default":null
}
},
"required":["title","id"],
"additionalProperties":false
}
},
"projects":{
"type":"array",
"uniqueItems":true,
"items":{
"title":"Project Object",
"description":"An object that holds all the information for a specific project.",
"properties":{
"title":{
"title":"Project Title",
"description":"The official title of the project.",
"type":"string"
},
"category":{
"title":"Project Category",
"description":"The category or list of categories that the project falls under. If it is a list, the categories should be ordered from most to least relevant/applicable to the project.",
"type":["string","array"],
"items":{
"type":"string"
}
},
"description":{
"title":"Project Description",
"description":"A brief 1 sentence summary of the project.",
"type":"string"
},
"lang":{
"title":"Project Language",
"description":"A three-character ISO 639-2 code representing the primary language of the project, or a list of such codes, with the primary language first.",
"type":["string","array"],
"minLength":3,
"maxLength":3,
"minItems":1,
"items":{
"type":"string",
"minLength":3,
"maxLength":3
},
"default":"eng"
},
"country":{
"title":"Project Country",
"description":"The country that the project operates out of or the country the project is designed for (if designed for a specific location). Null if country is unclear/unspecified.",