schemas/json/vape/recipe/recipe-v1.schema

84 lines
2.4 KiB
Plaintext

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://data.vapesafer.info/schema/recipe.schema.json",
"title": "Recipe",
"description": "An e-juice recipe",
"type": "object",
"properties": {
"url": {
"description": "Original recipe URL. Should be unique and canonical",
"type": "string"
},
"key": {
"description": "Unique identifier for this recipe. Should be slug-like and have an appropriate author prefix",
"type": "string"
},
"recipeName": {
"description": "The name of the recipe",
"type": "string"
},
"author": {
"description": "The author of the recipe",
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"name": { "type": "string" },
"email": { "type": "string" },
"url": { "type": "string" }
}
}
]
},
"license": {
"description": "The license this recipe is published under",
"type": "string"
},
"recommendedSteep": {
"description": "The recommended number of days to steep this recipe",
"type": "integer"
},
"type": {
"description": "Recipe type, such as experiment or clone",
"type": "string"
},
"recipe": {
"description": "Recipe ingredients",
"type": "array",
"items": {
"type": "object",
"properties": {
"key": { "type": "string" },
"vendor": { "type": "string" },
"flavor": { "type": "string" },
"percent": { "type": "number" },
"optional": { "type": "boolean" },
"subs": {
"description": "Possible substitutes for this ingredient",
"type": "array",
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"key": { "type": "string" },
"vendor": { "type": "string" },
"flavor": { "type": "string" },
"percent": { "type": "number" },
"note": { "type": "string" }
}
}
}
}
},
"note": { "type": "string" }
},
"required": [ "flavor", "percent" ]
}
},
"required": [ "recipeName", "recipe" ]
}