67 lines
2 KiB
JSON
67 lines
2 KiB
JSON
{
|
|
"title": "trees.json",
|
|
"description": "JSON Schema for config/trees.json",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["trees"],
|
|
"properties": {
|
|
|
|
"trees": {
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"patternProperties": {
|
|
|
|
"^\\S+$": {
|
|
"description": "(required) The name of the tree (e.g. 'brands')",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["emoji", "mainTag", "nameTags"],
|
|
"properties": {
|
|
|
|
"emoji": {
|
|
"description": "(required) An emoji used for logging and output (e.g. '🍔')",
|
|
"type": "string"
|
|
},
|
|
|
|
"mainTag": {
|
|
"description": "(required) An OSM tag that this tree uses as the main tag (e.g. 'brand:wikidata')",
|
|
"type": "string",
|
|
"pattern": "^\\S+$"
|
|
},
|
|
|
|
"sourceTags": {
|
|
"description": "(optional) Tags from OSM to collect namelike values",
|
|
"type": "array",
|
|
"uniqueItems": true,
|
|
"items": {
|
|
"type": "string",
|
|
"pattern": "^\\S+$"
|
|
}
|
|
},
|
|
|
|
"nameTags": {
|
|
"description": "(required) OSM tags that can contain namelike values to be indexed by the matcher",
|
|
"type": "object",
|
|
"additionalProperties": false,
|
|
"required": ["primary", "alternate"],
|
|
"properties": {
|
|
"primary": {
|
|
"description": "(required) Patterns for matching primary name tags (e.g. 'name')",
|
|
"type": "string",
|
|
"format": "regex"
|
|
},
|
|
"alternate": {
|
|
"description": "(required) Patterns for matching alternate name tags (e.g. 'short_name', 'alt_name')",
|
|
"type": "string",
|
|
"format": "regex"
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|