<?xml version="1.0" encoding="utf-8" standalone="yes"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><script src="https://www.rss.style/js/atom-style.js" xmlns="http://www.w3.org/1999/xhtml"/><title>Tower of Kubes</title><link rel="self" type="application/atom+xml" hreflang="en" href="https://www.towerofkubes.com/tags/json/feed.xml"/><link rel="alternate" type="text/html" hreflang="en" href="https://www.towerofkubes.com/tags/json/"/><link rel="alternate" type="application/rss+xml" hreflang="en" href="https://www.towerofkubes.com/tags/json/index.xml"/><id>/</id><updated>2025-11-18T00:00:00Z</updated><author><name>Ro'i Bandel</name></author><generator>Hugo 0.157.0</generator><entry><title>New Configuration Languages - MAML and TOON</title><link rel="alternate" type="text/html" hreflang="en" href="https://www.towerofkubes.com/articles/new-configuration-languages/"/><id>https://www.towerofkubes.com/articles/new-configuration-languages/</id><updated>2025-11-18T00:00:00Z</updated><summary type="html">MAML and TOON are two new configuration languages.</summary><content type="html"><![CDATA[<p>I came across this article today: <a href="https://medv.io/blog/things-i-dont-like-in-configuration-languages"  target="_blank" rel="noreferrer">Things I Don’t Like in Configuration Languages</a>. It mentions an overwhelming amount of configuration languages. XML, JSON and YAML are well known, but there are many others, some of which I have heard about and even used (for example, I have used TOML, JSON5 and JSONC), others were entirely new to me (there are more JSON variants than I realized). The article didn’t even mention <a href="/articles/kyaml/" >KYAML</a>.</p>
<p>What’s the solution for this mess? More configuration languages!</p>
<figure><img
    class="my-0 rounded-md"
    loading="lazy"
    decoding="async"
    fetchpriority="low"
    alt="xkcd: Standards"
    src="https://imgs.xkcd.com/comics/standards_2x.png"
    ></figure>
<ul>
<li><a href="https://xkcd.com/927/"  target="_blank" rel="noreferrer">xkcd: Standards</a></li>
</ul>

<h2 class="relative group"><a href="https://maml.dev/"  target="_blank" rel="noreferrer">MAML</a>
    <div id="maml" class="anchor"></div>
    
</h2>

    <details class="admonition quote">
      <summary class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"/></svg>
        <span>Quote</span>
      </summary>
      <div class="admonition-content">
        <p>Minimal. Human-readable. Machine-parsable.</p>

<h2 class="relative group">Rationale
    <div id="rationale" class="anchor"></div>
    
</h2>
<p>JSON is the most popular <em>data-interchange</em> format. But it isn’t a very good <em>configuration</em> language.</p>
<p><strong>MAML</strong> keeps JSON’s simplicity and adds only the needed bits for a good configuration language:</p>
<ol>
<li>Comments</li>
<li>Multiline raw strings</li>
<li>Optional commas</li>
<li>Optional key quotes</li>
<li>Ordered key-value objects</li>
</ol>
<p><strong>MAML</strong> is human-readable and <em>easy to parse</em>.</p>
      </div>
    </details><hr>

    <div class="admonition note">
      <div class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 125.7-86.8 86.8c-10.3 10.3-17.5 23.1-21 37.2l-18.7 74.9c-2.3 9.2-1.8 18.8 1.3 27.5L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zM549.8 235.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-29.4 29.4-71-71 29.4-29.4c15.6-15.6 40.9-15.6 56.6 0zM311.9 417L441.1 287.8l71 71L382.9 487.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"/></svg>
        <span>Note</span>
      </div>
      <div class="admonition-content">
        <p><em>Not to be confused</em> with <a href="https://en.wikipedia.org/wiki/Microsoft_Assistance_Markup_Language"  target="_blank" rel="noreferrer">Microsoft Assistance Markup Language</a>.</p>
      </div>
    </div><p>MAML aims to improve on JSON’s strength and overcome its shortcomings.</p>

<h2 class="relative group"><a href="https://github.com/toon-format/toon"  target="_blank" rel="noreferrer">TOON</a>
    <div id="toon" class="anchor"></div>
    
</h2>

    <details class="admonition quote">
      <summary class="admonition-header"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z"/></svg>
        <span>Quote</span>
      </summary>
      <div class="admonition-content">
        <p>Token-Oriented Object Notation (TOON)
Token-Oriented Object Notation** is a compact, human-readable encoding of the JSON data model for LLM prompts. It provides a lossless serialization of the same objects, arrays, and primitives as JSON, but in a syntax that minimizes tokens and makes structure easy for models to follow.</p>
<p>TOON combines YAML’s indentation-based structure for nested objects with a CSV-style tabular layout for uniform arrays. TOON’s sweet spot is uniform arrays of objects (multiple fields per row, same structure across items), achieving CSV-like compactness while adding explicit structure that helps LLMs parse and validate data reliably. For deeply nested or non-uniform data, JSON may be more efficient.</p>
<p>The similarity to CSV is intentional: CSV is simple and ubiquitous, and TOON aims to keep that familiarity while remaining a lossless, drop-in representation of JSON for Large Language Models.</p>
<p>Think of it as a translation layer: use JSON programmatically, and encode it as TOON for LLM input.</p>
      </div>
    </details><p>TOON aims to be a token-efficient JSON alternative for LLM prompts. It takes inspiration from YAML and CSV.</p>

<h2 class="relative group">My Opinion
    <div id="my-opinion" class="anchor"></div>
    
</h2>
<p>Unlike <a href="/articles/kyaml/" >KYAML</a>, which I tried out almost as soon as I found out about it, I don’t think I will be an early-adopter of either MAML nor TOON. I still don’t quite understand MAML’s rationale, but will be reading more about it. As for TOON, beyond the initial hype, it’s still not clear how good it actually is. Let’s see if either of these gain any traction.</p>
<hr>
<p><em>Featured image by <a href="https://unsplash.com/@flowforfrank?utm_source=hugo&utm_medium=referral"  target="_blank" rel="noreferrer">Ferenc Almasi</a> on <a href="https://unsplash.com/?utm_source=hugo&utm_medium=referral"  target="_blank" rel="noreferrer">Unsplash</a>.</em></p>
]]></content><author><name>Ro'i Bandel</name></author><category term="yaml" label="Yaml" scheme="https://www.towerofkubes.com/tags/yaml/"/><category term="json" label="Json" scheme="https://www.towerofkubes.com/tags/json/"/><published>2025-11-18T00:00:00Z</published></entry></feed>