{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "yard.yaml Schema",
"type": "object",
"properties": {
"inputs": {
"type": "object",
"properties": {
"modules": {
"type": "object",
"minProperties": 1,
"additionalProperties": {
"type": "string"
}
},
"remotes": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri"
},
"commit": {
"type": "string"
},
"modules": {
"type": "object",
"additionalProperties": {
"type": "string"
}
}
},
"required": [
"url",
"commit",
"modules"
],
"additionalProperties": false
}
}
},
"anyOf": [
{
"required": [
"modules"
]
},
{
"required": [
"remotes"
]
}
]
},
"outputs": {
"type": "object",
"minProperties": 1,
"additionalProperties": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string"
},
{
"type": "object",
"additionalProperties": {
"oneOf": [
{
"type": "object",
"properties": {
"version": {
"type": "string"
}
},
"additionalProperties": {
"type": "string"
}
},
{
"type": "null"
}
]
}
}
]
}
}
},
"hooks": {
"type": "object",
"properties": {
"build": {
"type": "object",
"properties": {
"pre": {
"type": "string"
},
"post": {
"type": "string"
}
},
"anyOf": [
{ "required": ["pre"] },
{ "required": ["post"] }
],
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"inputs",
"outputs"
],
"additionalProperties": false
}