{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "_space.jsonc Schema",
"description": "Schema for validating the _space.jsonc configuration file in weaveconfig.",
"type": "object",
"properties": {
"$schema": {
"type": "string",
"description": "The URI of the JSON Schema that this document adheres to."
},
"name": {
"type": "string",
"description": "The name of the space. This is used to identify the space in the graph. Dependencies reference spaces by their name. It must be unique within the graph."
},
"dependencies": {
"type": "array",
"description": "List of dependencies for the space. Each element must be a name of another space.",
"items": {
"type": "string",
"description": "A string representing the name of a dependency space."
}
},
"mapping": {
"type": "array",
"description": "Mappings of environments from this space to environments in dependencies.",
"items": {
"type": "object",
"properties": {
"from": {
"type": "string",
"description": "The name of the environment in the dependency."
},
"to": {
"type": "string",
"description": "The name of the environment in this space."
}
},
"required": ["from", "to"],
"additionalProperties": false
}
},
"environments": {
"type": "array",
"description": "List of environments supported by the space.",
"items": {
"type": "string",
"minLength": 1
},
"uniqueItems": true,
"minItems": 1
},
"generate": {
"description": "Generate configurations or files for the space.",
"oneOf": [
{
"type": "boolean",
"description": "A boolean indicating whether to generate default configurations."
},
{
"type": "object",
"description": "Object providing options for generating configurations.",
"properties": {
"typescript": {
"type": "boolean",
"description": "Whether to generate TypeScript bindings."
}
},
"required": ["typescript"],
"additionalProperties": false
}
]
}
},
"required": ["name"],
"additionalProperties": false
}