AGPL-3.0-or-later · forever.

the standard library

nika:convert

Convert between json·yaml·toml·csv (from/to · identity rejected). One of 28 builtins in the closed nika: namespace.

the data familypure JSON/data transforms, no I/O

  • datafamily9 tools
  • 5argsdeclared contract
  • 3requiredcheck teaches a miss
  • craftedusage filecheck-green below

the contract

5 args · 3 required

A missing required arg is a nika check finding before anything runs; the vocabulary below comes from the binary itself (nika catalog --tools --json), not from prose.

input*
the data (string for text formats)
from*
stringjson|yaml|toml|csv
to*
stringjson|yaml|toml|csv
has_header
booleanCSV only (default true)
formula_guard
booleanCSV only · prefix formula-triggering cells (=+-@) with ' against spreadsheet injection · default false (alters data)

in a real file

a complete workflow
convert.nika.yaml
nika: v1workflow:  id: json-to-yaml  description: "one format in, another out — identity is rejected"tasks:  translate:    invoke:      tool: "nika:convert"      args:        input: '{"name":"nika","verbs":4}'        from: json        to: yamloutputs:  yaml: ${{ tasks.translate.output }}

a complete file, nika check green; the drift gate re-validates this copy against the schema on every test run. open it in the playground →

cross-references

ships in skeletons

no skeleton ships it; the crafted file above is the reference.

the check gates

the data family

9 tools

pure JSON/data transforms, no I/O.

Machines read the same vocabulary at /tools/catalog.json; the contract lives in spec 06 · stdlib. Install and ask the binary itself: nika catalog --tools. Read the spec →