Skip to content

Capabilities

This page answers one question: “What can I do with DataSheetLang today?”
For exact YAML shapes, field lists, and command flags, use the linked reference pages.

You write a spec describing create / update / delete operations. The CLI validates and applies those operations to your XML DataSheet in a repeatable, reviewable way.

EntityCreateUpdateDeleteWhere it applies
ItemsItemTemplate.xml
EquipmentEquipmentTemplate.xml
ItemStringsStrSheet_Item.xml

See: Entities

  • Create: add new entries by id
  • Update: modify an existing entry by id (only the fields you declare)
  • Delete: remove entries by id

See: Syntax

  • Reuse common patterns with presets
  • Support single inheritance (extends) with validation (depth limits, no cycles)

See: Presets

For deeply nested blocks, block presets support deep-merge semantics so you can reuse shared nested configs without rewriting entire objects.

See: Presets

Items can embed inline blocks that expand into related changes:

  • equipment: inline block
  • strings: inline block

See: Syntax and Entities

Specs can be applied in a defined order to support patch transitions over time (reviewable diffs, repeatable application).

See: CLI

  • Specs are validated before execution (syntax, required fields, preset resolution, supported values)
  • The same inputs produce the same changes (deterministic behavior)
  • Failures return structured error codes to speed up debugging

What’s intentionally not supported (yet)

Section titled “What’s intentionally not supported (yet)”

These are out of scope for the current phase:

  • “where/filter” bulk updates (e.g., update every item matching a condition)
  • User-facing rollback/undo
  • Interactive REPL
  • Arbitrary cross-entity relationship editing (beyond what inline blocks cover)