folksy_idioms/schemas/fictional_entities.schema.json

48 lines
2 KiB
JSON
Raw Permalink Normal View History

2026-02-15 14:04:25 -05:00
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Fictional Entity Registry",
"description": "Custom entities for the folksy idiom generator. Each entity declares its category roles and relationships, allowing it to fill template slots alongside real ConceptNet vocabulary.",
"type": "object",
"required": ["entities"],
"properties": {
"entities": {
"type": "array",
"items": {
"type": "object",
"required": ["name", "categories", "relations"],
"properties": {
"name": {
"type": "string",
"description": "Display name of the entity (e.g., 'Xorhir', 'turtleduck')"
},
"categories": {
"type": "array",
"items": { "type": "string" },
"minItems": 1,
"description": "Category roles this entity can fill (e.g., ['animal', 'mount'])"
},
"relations": {
"type": "object",
"description": "Typed relationships to other entities or real words. Keys are ConceptNet relation types (e.g., 'AtLocation', 'UsedFor', 'HasA', 'MadeOf', 'CapableOf', 'Causes', 'HasPrerequisite', 'PartOf', 'ReceivesAction', 'Desires'). Values are arrays of target words.",
"additionalProperties": {
"type": "array",
"items": { "type": "string" }
}
},
"properties": {
"type": "array",
"items": { "type": "string" },
"description": "Adjectives/properties of this entity (e.g., ['fast', 'stubborn', 'scaly']). Used to fill HasProperty slots in templates."
},
"derived_from": {
"type": "array",
"items": { "type": "string" },
"description": "Real-world words to inherit relations from (e.g., ['turtle', 'duck'] for a turtleduck). All parent relations are unioned, with this entity's explicit relations taking priority."
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}