136 lines
2.5 KiB
JSON
136 lines
2.5 KiB
JSON
{
|
|
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
"title": "WorldBook",
|
|
"type": "object",
|
|
"properties": {
|
|
"entries": {
|
|
"type": "array",
|
|
"items": {
|
|
"$ref": "#/$defs/WorldBookEntry"
|
|
}
|
|
},
|
|
"header": {
|
|
"$ref": "#/$defs/ResourceHeader"
|
|
},
|
|
"name": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"header",
|
|
"name",
|
|
"entries"
|
|
],
|
|
"$defs": {
|
|
"ResourceHeader": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content_hash": {
|
|
"type": "string"
|
|
},
|
|
"dependencies": {
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/$defs/ResourceRef"
|
|
}
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/$defs/ResourceKind"
|
|
},
|
|
"revision": {
|
|
"type": "string"
|
|
},
|
|
"schema_version": {
|
|
"type": "integer",
|
|
"format": "uint32",
|
|
"minimum": 0
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"schema_version",
|
|
"revision",
|
|
"content_hash"
|
|
]
|
|
},
|
|
"ResourceKind": {
|
|
"type": "string",
|
|
"enum": [
|
|
"character",
|
|
"world_book",
|
|
"persona",
|
|
"plot_module",
|
|
"item_spec"
|
|
]
|
|
},
|
|
"ResourceRef": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content_hash": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"$ref": "#/$defs/ResourceKind"
|
|
},
|
|
"revision": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"kind",
|
|
"revision",
|
|
"content_hash"
|
|
]
|
|
},
|
|
"WorldBookEntry": {
|
|
"type": "object",
|
|
"properties": {
|
|
"content": {
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"type": "string"
|
|
},
|
|
"keywords": {
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required_flags": {
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"tags": {
|
|
"type": "array",
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"title",
|
|
"content"
|
|
]
|
|
}
|
|
}
|
|
}
|