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

127 lines
3.1 KiB
Plaintext

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://vapesafer.info/schema/flavoring-v1.json",
"title": "Ingredient",
"description": "Flavoring used for mixing e-liquid",
"type": "object",
"properties": {
"flavoringKey": {
"description": "Unique flavoring ID",
"type": "string"
},
"brandKey": {
"description": "Unique key for flavor brand",
"type": "string"
},
"flavoringName": {
"description": "The name of the flavoring",
"type": "string"
},
"brandName": {
"description": "The name of the brand",
"type": "string"
},
"flavoringVariant": {
"description": "The version of the flavoring if more than one variant with the same name",
"type": "string"
},
"attributes": {
"type": "object",
"properties": {
"specificGravity": {
"description": "The apparent specific gravity in g/mL",
"type": "number"
},
"suggestedPercent": {
"description": "Suggested initial percent to use when mixing",
"type": "number"
},
"suggestedSteep": {
"description": "Suggested number of days this flavoring need to steep",
"type": "integer"
},
"base": {
"description": "The base used to carry this flavoring, like PG100",
"type": "string"
},
"isAdditive": {
"description": "If true the flavoring is primarily an additive and not a flavor",
"type": "boolean"
},
"isRetired": {
"description": "True if the flavoring has been retired or is no longer available",
"type": "boolean"
}
}
},
"flavorProfiles": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"ingredients": {
"description": "The ingredients that make up this ingredient",
"type": "array",
"items": {
"type": [ "string", "object" ],
"properties": {
"class": { "type":"string" },
"ingredient": { "type":"string" },
"percent": {
"type": [ "number", "object" ],
"properties": {
"min": { "type":"number" },
"max": { "type":"number" }
}
},
"isNotable": { "type": "boolean" },
"cas": { "type": "string" },
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
}
},
"uniqueItems": true
},
"warnings": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
},
"notes": {
"type": "array",
"items": {
"type": "string"
},
"uniqueItems": true
}
},
"required": [ "flavoringKey", "brandKey", "flavoringName" ]
}