Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.17.0] - 2026-10-01
Section titled “[0.17.0] - 2026-10-01”- Code Generation: Added the
cs-godot-vectortemplate override for Godot vector types. - Code Generation: Added the
godot-editortemplate, which generates a Godot editor plugin that loads the configs in the editor and shows config ID properties as searchable dropdowns in the Inspector. It also generates theCfgIdPropHintandCfgIdPropTypeconstants for exporting config IDs from game code. - Code Generation: The
unity-editortemplate now registers a dropdown for every table that has a config ID, with the ID as its display name. - Code Generation: Added the
ARCHMAGE_JAVA_OUTER_CLASS_NAME_SUFFIXandARCHMAGE_GD_CLASS_NAME_SUFFIXenvironment variables for the enum code templates.
Changed
Section titled “Changed”- Code Generation: The Java outer class name and the GDScript
class_namenow end withEnumby default. - Code Generation: The generated C#
ConfigAtlasregisters the type converter of eachCfgIdtype in a static constructor. - Code Generation: The C# JSON templates mark generated files with
<auto-generated />.
[0.16.0] - 2026-09-24
Section titled “[0.16.0] - 2026-09-24”- Type System: Added
switch|enum@<enumType>to hold enum items inswitchcolumns. Data export (including--human-enum) and code generation treat the values asenum@<enumType>.
Changed
Section titled “Changed”- C# Code Generation: String config IDs now treat
nullas an empty ID in equality, hashing, conversion, and JSON output, and absentreffields no longer serialize asnull.
- Code Generation:
reffields that target a virtual table now generate reference types instead of plain value types. - Code Generation: The generated
L10ntext accessors now return an empty string for blankl10nfields instead of failing.
[0.13.0] - 2026-09-23
Section titled “[0.13.0] - 2026-09-23”- Installation: Added a Windows installer for Windows 10 or later.
[0.10.0] - 2026-09-07
Section titled “[0.10.0] - 2026-09-07”- Type System: Added the
ref@++mark to designate preferred reference candidates when multiplerefvalues point to the same target entry, determining back-reference eligibility. - Type System: Added support for empty
rgbacolor values, corresponding to implicit tree-node defaults. - Version Info: Added the
--semverflag to specify the semantic version for the build, embedding it into the exported output (atlas.json/version.json).
Changed
Section titled “Changed”- Google Drive Integration: Wildcard pattern matching for Drive files now supports standard path matching semantics anywhere in the pattern.
[0.9.0] - 2026-08-05
Section titled “[0.9.0] - 2026-08-05”- Google Drive Pull Command: Added a major new
archmage drivecommand suite (login,logout,list,download) to pull and sync spreadsheets from Google Drive to a local directory. - Data Export: Added the
--omit-zeroflag to automatically drop zero-valued object fields from the exported data payloads. - Logging: Added the
--verbose/-vflag to raise selected debug logs to the info level.
Changed
Section titled “Changed”- Type System: The
minmaxdata type now natively supportsdurationas a valid element type. - Type System: Added validation support for
backrefandbackref-nfields.
[0.8.0] - 2026-07-01
Section titled “[0.8.0] - 2026-07-01”- Schema Generation: Added the
--schemaflag to generate.schemasidecar files that describe the exact types and structures of the parsed data. - Type System: Added support for using enum types as map keys.
- Data Traversal: Introduced
--jqand--jq-codeflags to render jq-compatible node paths for easier downstream data traversal.
[0.7.0] - 2026-06-02
Section titled “[0.7.0] - 2026-06-02”- Weighted Pool (
wtpool): Added support for using tree object ({}) and compact object (>>object) as item types within weighted pools. - Weighted Pool (
wtpool): Added support for thesynclenvalidation option. - Type System: Added the
keyOnlyoption for both compact (>>map[K]V) and multi-column (map[K]V) map types. - Data Export: Added the
--readableflag to emit human-friendly data formats during export. - Data Export: Added
--human-wtpoolto export weighted pools in an intuitive key-value structure instead of raw arrays. - Data Export: Added the
--human-refflag to output readable reference and back-reference values. - Data Export: Added the
--human-durationand--human-enumflags for human-friendly output of durations and enumerations. - Data Export: Added the
--emit-anchorsflag to export configuration anchors as string literals. - Data Export: Added the
--l10n-literalflag to disable l10n aggregation. - Data Export: Added the
--path-as-isflag to preserve exact path values during export. - Data Export: Added
--tree-float-typeand--tree-int-typeflags to explicitly control the type of numeric values in tree data structures. - Data Export: Added
yamlas a natively supported output format for localization (l10n) data exports. - Data Export: Added support for configuring the JSON export indentation style via environment variables.
- Logging: Added the
--flush-on-progressflag to flush logs upon progress updates.
[0.6.0] - 2026-05-01
Section titled “[0.6.0] - 2026-05-01”- Minmax Type: Added support for the
minmaxdata type across compact, multi-column, and tree structures, including full code generation support for C# and Go. - Spreadsheet Conventions: Added lookback operators (
<1,<2,<3) in the header region to reuse values from preceding columns. - Data Constraints: The
nonzerovalidation option is now fully supported for compact vectors and multi-column tuples/vectors. - Data Constraints: Added the
synclenoption to enforce equal-length containers.
[0.5.0] - 2026-04-06
Section titled “[0.5.0] - 2026-04-06”- Type System: Added the
anchortype to enable named config-id lookups within reference fields. - Type System: Added support for hex color
rgbavalues (e.g.,#RRGGBB/#RRGGBBAA). - L10n Key Access: Added built-in
L10nKey()/GetL10nKey()accessor methods to the generated enum code across all supported languages. - C# Code Generation: Added
ConfigAtlas.Instancefor global atlas singleton access. - C# Code Generation: Enabled direct configuration lookup using strongly-typed Config ID structs (e.g.,
id.Cfg). - C# Code Generation: Added support for mapping to external C# vector types and enabled nullable reference types.
- Code Generation: Added the
--unityflag to support mapping to Unity’s built-in vector types. - Data Bundling: Added the
--add-metaflag to thebundlesubcommand to inject__meta__root nodes into the final output.
[0.4.0] - 2026-03-03
Section titled “[0.4.0] - 2026-03-03”- Virtual Tables: Added extensive support for virtual tables, including conflict checking and cross-file reference/backref resolution.
- Data Export: Added the
--no-atlasflag to the export subcommand to skipatlas.jsongeneration.
Changed
Section titled “Changed”- Export Capabilities: The
--l10n-output-formatsoption now accepts multiple comma-separated formats, generating them simultaneously in a single pass.
[0.3.0] - 2026-02-03
Section titled “[0.3.0] - 2026-02-03”- Format Conversion Utility: Added the
convsubcommand to explicitly convert tree-structured config files to JSON. - Type System: Added the
switchbehavior type as a multi-branch selector to determine active fields in conjunction with theCaseheader. - Type System: Added the
discardoption to drop fields from the output while keeping them available for validation. - External Enums: Added code generation support for mapping external enum types across all language templates.
- Version Info: Introduced the
--vcsflag, automatically bundling Git branch, commit ID, and author metadata directly into the output.
[0.2.0] - 2026-01-01
Section titled “[0.2.0] - 2026-01-01”- Data Bundling Utility: Added the
bundlesubcommand to merge multiple tree-structured data files into a single JSON file.
[0.1.0] - 2025-12-05
Section titled “[0.1.0] - 2025-12-05”- Initial release.