World data descriptor
Generated by
pnpm schemas:generatefrom the Zod schemas inpackages/shared/src/schemas/. Do not edit by hand; change the schema's.describe()text instead.
The descriptor a world names in worldData, usually data/world.data.yaml.
JSON Schema: world-data.schema.json.
In the path headings below, [] is a list item and .* is a map value.
Top-level fields
| Field | Type | Required | Description |
|---|---|---|---|
sources | map of object | yes | Changes to the conventional sources and further sources, keyed by source ID. An entry whose path is that of a conventional source changes it; any other entry adds a source and needs kind and to. A source ID starts with a letter and uses letters, digits, _ or -. |
sources.*
| Field | Type | Required | Description |
|---|---|---|---|
kind | "yaml" or "json" or "markdown" or "text" or "media" | no | Reader type. media reads a directory of media files. |
path | string | yes | File or directory, relative to the world root. A variant <name>.<locale>.<ext> is used when it exists for the session locale. Example: "data/quests.yaml". |
schema | string | no | Schema that validates the content: covel://world/dimensions, contract:<contractId>, or a local JSON Schema path. Omit it for a contract: or dimensions destination: the schema is the one of the destination. Example: "contract:character.blueprints@1". |
to | string | no | Destination: world:metadata.<path>, contract:<contractId>, contract:<contractId>+lorebook, lorebook, characters or media. Example: "contract:character.blueprints@1", "characters". |
key | string | no | Field that gives each record a stable key. Media sources use filename. Example: "id". |
localeArrayKeys | list of string | no | Additional stable identity fields for nested object lists in locale overlays, after the source key and id. Translations retain these keys when lists are reordered. |
indexTo | string | no | Media sources only: the contract:<contractId> that receives the media index. Without an active receiver the media bytes are not imported. |
effects | list of "characters" or "projections" | no | Extra projections. characters instantiates characters; projections runs the pure projections that active plugins declare. |
enabled | boolean | no | false skips this source. |
locale | string | no | Language of the content in this source. Metadata only; it does not select a locale variant. |
merge | "replace" or "skipExisting" | no | Policy when a record already exists. |
after | string or list of string | no | Source ID or IDs that must import first. |
visibility | "public" or "hidden" | no | hidden imports into the receiving plugin's hidden namespace. The data stays out of prompts and player-visible surfaces until the plugin reveals it. Requires a contract: destination. Defaults to public. |