Glossary

Game Data

The static information for the game, such as items, quests, dialogues, etc., is stored as game data. Schemas are also included to organize and structure game data.

Schema

A schema is a description of the structure for documents in game data. It defines the properties and structure of each document in the game data.

Schema Type

A field of a schema that controls how its documents are created, stored, and navigated. Available types are Normal, Component, Settings, and Union.

Component

A schema type for sub-objects that are always embedded inside another document and never exist as standalone root-level entries. Documents of a component schema do not appear in the navigation menu and are not exported on their own.

Settings Schema

A singleton schema type. Exactly one document of this schema exists in the root-level collection; it is created automatically and cannot be deleted. Suited for project-wide configuration.

Tagged Union

A schema type (also known as a discriminated union) that allows documents of different shapes, called variants, to coexist within the same collection or be embedded inside other documents.

Schema Property

A part of a schema that defines a specific property or attribute of a document in the game data.

Id Property

A required schema property, always named Id, that holds the unique identifier of a document. Its value can be entered manually or produced automatically by an Id generator.

Shared Property

A schema property that synchronizes its data type-related configuration with properties of the same name in other schemas. Modifying a shared property in one schema updates all other synced properties. A shared property can be unlinked at any time, making it schema-specific again.

Data Type

The kind of value a schema property holds, such as Text, Integer, Number, Logical, Date, Pick List, Localized Text, Reference, Document, or Formula.

Formula

A property data type in a schema for a C# expression that can be executed at runtime to calculate a value for a field.

Reference

A property data type in a schema for a pointer to another document.

Pick List

A property data type for a single value chosen from a predefined list of options. The Multi-Pick List variant allows several options to be selected at once. In generated source code, pick list properties produce enum types. Making a pick list a Shared Property keeps its options synchronized across schemas, producing a single shared enum type instead of a separate one per schema.

Localized Text

A property data type that stores text in multiple translation languages, enabling localization workflows.

Asset Path

A sub-type of the Text data type used to store a path to a game asset (e.g. a texture or prefab) within game data. Paths are typically relative to the project root and can be used to load assets at runtime.

Specification

A flexible extension field available on schemas and schema properties. It stores URL-encoded key-value pairs (e.g. icon=table&group=Combat) used for custom logic in UI editors, source code generation, and other tooling.

Display Text Template

A schema-level template that defines how documents are labeled in the UI, using replaceable expressions in curly braces (e.g. Quest #{Id}: {Description}). Without it, documents are labeled by the DisplayName, Name, Title, or Id property.

Document

A specific instance of a schema in the game data. It represents a single item or entity in the game, such as an item, quest, or dialogue.

Document Collection

A list of documents of the same schema. Root-level collections appear in the navigation menu; embedded collections are stored inside another document as a property value.

Field

A named part of a document that holds a specific value.

Source Code

The code generated by Charon that represents the game data. This code can be used to load the game data at runtime.

Metadata

All the schemas and relations between them. This data is used by Charon to generate the source code for the game data.

Validation

The process of checking game data against schema constraints and integrity rules. Validation runs on every document save, on import, and on demand; selected checks can automatically repair common problems.

Import

The process of loading documents into game data from an external file in a supported format (JSON, BSON, MessagePack, XLSX, etc.).

Export

The process of writing documents from game data to an external file in a supported format, optionally filtered by schemas, properties, or languages.

Patch

A file describing the difference between two game data files as a set of additions, modifications, and deletions. A patch can be applied to any compatible target file, enabling branching workflows, incremental updates, and modding.

Backup

A complete snapshot of game data and metadata saved to a single file, which can later be restored to replace the current content.

Internationalization (i18n)

The workflow of translating game data. Localized Text fields are exported to XLSX, XLIFF, or JSON, translated externally, and imported back.

Translation Language

A language configured in the project settings for which Localized Text fields can store values.

Publication

The process of exporting game data in a format that can be loaded into the game.

Modding

A workflow where the free version of Charon is shipped with the game, letting players edit a copy of the game data. Player changes are captured as patch files that the game applies on top of the base data at startup.

CLI

The command-line interface of the dotnet-charon tool. It provides commands for editing, importing, exporting, validating, and patching game data, as well as generating source code — used for automation and CI/CD pipelines.

REST API

An HTTP API exposed by Charon that lets external tools perform the same data operations available in the UI and CLI.

MCP Server

A built-in Model Context Protocol server that lets AI assistants read and write game data, generate source code, and manage localization. It communicates over stdio using the standard JSON-RPC MCP transport.

UI Extension

An external NPM package containing Web Components that add custom field or document editors to the document form.

Standalone Edition

The locally installed distribution of Charon that works with game data files on the local disk, without requiring a game engine integration or a server.

Web Application

The hosted, collaborative version of Charon at charon.live, where teams work on shared projects organized into workspaces.

Server Edition

The team collaboration layer built on top of the standalone editor, giving studios a shared game data repository accessed through a browser. Available as the hosted web application or self-hosted on your own infrastructure.

Workspace

In the web application, the workspace is the place where users can manage their projects and subscription.

Project

In the web application, a project is a container for organizing related game data. It can contain multiple branches.

Branch

In the web application, a branch is a specific variant of game data within a project. It can be used to manage different versions or stages of the game data.

API Key

A unique identifier generated for a user in the User’s Profile “API Keys” section, which can be used to access the REST API and CLI for various operations. It allows for automation of game build processes, such as pushing game data to local GIT repositories.