- packages/toon/README.md: drop two v3.1 bullets that crept into the
"What's new in v3.2" list (canonical empty-array form and \uXXXX
escape both landed in v3.1).
- docs/reference/api.md: rename "Delimiter mismatches" entry to
"Header delimiter mismatch" and cite §14.2 – the previous wording
invited the false reading that non-active delimiter chars in row
data are an error. Add §14.4 cross-ref to the duplicate-key entry.
- docs/reference/spec.md: include \uXXXX in the §7 escape list; soften
the charset MUST claim to match §17; en-dash the §-ranges in the
glance table.
- docs/reference/syntax-cheatsheet.md: rename "Strings with Active
Delimiter" to "Strings Containing Delimiters" and distinguish
active-delim (array scope) from document-delim (object field
values) per §11.1.
- docs/guide/format-overview.md: same active-vs-document distinction
in the delimiter paragraph; drop incorrect "strict mode" qualifier
from the unknown-escape error claim (§7.1 rejects unconditionally);
trim redundant "with leading zeros" parenthetical.
- docs/guide/llm-prompts.md: fix two broken anchors
(/reference/api#decode → #decode-input-options, similar for
encodelines); use -o instead of --output for CLI example
consistency.
- packages/cli/README.md: enumerate what --no-strict actually skips
in the options table; replace "delimiter consistency" with the
more specific "header delimiter mismatches" in the Lenient Decoding
prose to avoid the same false reading the api.md fix addresses.
In v3.2, --no-strict no longer just skips count/indent/delimiter
validation - it also applies last-write-wins on duplicate sibling
keys and tolerates malformed array headers as plain key-value lines.
The previous "faster processing" framing didn't reflect any of this.
- Lenient Decoding sections in cli docs and packages/cli/README spell
out which checks the decoder stops enforcing
- Options table description shifts from "Disable strict validation"
to "Skip decode validation; last-write-wins on duplicate keys"
- --strict help text in the CLI reads "Strict decode validation
(disable with --no-strict)"
- §17 IANA anchor fix in the cli docs media-type note
- Canonical empty-array form (`key: []` / root `[]`) replaces `key[0]:`
in format-overview, syntax-cheatsheet, and the efficiency-formalization
worked example. Legacy form still decodes.
- Escape tables grow a `\uXXXX` row covering U+0000-U+001F outside
\n/\r/\t, with a note rejecting lone-surrogate \uXXXX values.
- "Special characters" lists widened to "any control character (U+0000-U+001F)"
instead of the LF/HTAB/CR triplet.
- Tabular eligibility note adds the "at least one key" rule so arrays
containing an empty {} fall back to the expanded list.
- New short example for nested arrays-of-objects as list items (`- [N]:`).
- API reference: Date row gets an info callout noting it's an
implementation choice the spec leaves open; strict-mode bullet list
picks up header structure, duplicate sibling keys, path-expansion
conflicts, and lone-surrogate escapes; Expansion Conflict Resolution
notes the matching duplicate-key policy.
- §17 IANA anchor fix in getting-started media-type paragraph.
- Drop the removed §17 Interoperability and §19 Core Profile bullets
- Renumber §18 IANA -> §17, add §18 Versioning and §19 IP entries
- Appendix G -> F (Host Type Normalization Examples)
- Update the Sections-at-a-Glance table to the v3.2 layout
- §14.5 -> §14.3 path-expansion reference in the Decoder Checklist
- §14 enumeration covers count/width, syntax/structural, expansion, dup keys
- Encoder Checklist mentions \uXXXX escapes alongside the five base escapes
- Major-version example swapped to v2 -> v3 / v3.1 -> v3.2
- Working Draft date updated to 2026-05-20
Adds the [Tooner](https://github.com/chaindead/tooner) MCP proxy entry to the Tools & Integration list in the package README and to docs/ecosystem/tools-and-playgrounds.md.
* feat(docs): add YAML input to Playground with tests
- Add input format selector and YAML parsing (YAML 1.2, merge keys off)
- Extract parse/stringify helpers for testability and SPEC-aligned encoding
- Add Vitest for docs package and playground parse tests
- Update Playground copy in package README and ecosystem docs
* refactor(docs): simplify Playground YAML support
- Inline parse/stringify helpers into the component, drop the separate
parse-input module and its tests
- Rename input state from `jsonInput`/`formattedJson`/`jsonTokens` to
`inputText`/`formattedInput`/`inputTokens` so names no longer lie when
YAML is selected
- Hide the JSON Baseline selector in YAML mode and make the token-count
tooltip conditional on input format
- Store input under `state.input` with a fallback read of legacy
`state.json` so existing share URLs keep working
- Drop redundant YAML parse options (merge/version match library
defaults); use lineWidth: 0 for editor display so long scalars do not
fold mid-sentence
- Remove the duplicated vitest devDep, docs vitest.config.ts, and `test`
script – the playground is verified through the dev server
* chore(docs): tighten Playground wording and drop empty-string fallback
- "in real-time" → "in real time" (real-time only hyphenates as a
compound modifier before a noun)
- Header copy now matches the ecosystem page: "Convert JSON or YAML to
TOON in real time"
- Token-count tooltip unified across input formats; the JSON baseline
selector is right next to it and already communicates the format
- Drop `?? ''` fallback on state.input — decodeState already gates on
successful JSON parse; the chain falls through to the legacy
state.json field
---------
Co-authored-by: Sweta <sweta@Swetas-MacBook-Air.local>
Co-authored-by: Johann Schopplich <johann@schopplich.com>
json-io is a comprehensive Java library for TOON serialization that supports:
- 60+ built-in types (vs ~15 in other Java implementations)
- Any serializable type as Map keys (not just strings)
- EnumSet support
- Cyclic reference handling
- Zero external dependencies (except java-util)
Repository: https://github.com/jdereg/json-io
* docs: add ToonStore to community implementations
* docs: add ToonStore to community implementations
* docs: add TORM to community implementations
* chore: revert sace
---------
Co-authored-by: Johann Schopplich <mail@johannschopplich.com>