15 comments

  • kbolino55 minutes ago
    Using the query string to carry the sha256 hash but then saying the &quot;hash parameter is verification metadata, not identity&quot; doesn&#x27;t make much sense. The ?query part of a URL is <i>supposed</i> to be sent to the server. If you want to add client-side (meta)data, you should use the #fragment part of a URL. See RFC 3986, sections 3.4 and 3.5: <a href="https:&#x2F;&#x2F;datatracker.ietf.org&#x2F;doc&#x2F;html&#x2F;rfc3986#section-3.4" rel="nofollow">https:&#x2F;&#x2F;datatracker.ietf.org&#x2F;doc&#x2F;html&#x2F;rfc3986#section-3.4</a>
    • geoah15 minutes ago
      Was thinking the same. ?v=4#sha111 for defining the version and using fragment for hash verification seemed like a more interesting approach.
  • al_be_back10 minutes ago
    &gt;&gt; Ordering, consensus, and mutability policy are application concerns outside this series. [1]<p>Of course, immutable means as-is, but since you&#x27;re not dealing with ordering etc (that&#x27;s pretty big), I might as well use existing tech (JSON with a schema) and a policy (simple&#x2F;naive: hash and compare lowercased data).<p>[1] From their spec: 2.2.1 Identity and Content Addressing - <a href="https:&#x2F;&#x2F;tson.io&#x2F;2026&#x2F;32&#x2F;tson-part1-data&#x2F;#" rel="nofollow">https:&#x2F;&#x2F;tson.io&#x2F;2026&#x2F;32&#x2F;tson-part1-data&#x2F;#</a>
  • Retr0id59 minutes ago
    What&#x27;s the justification for being a <i>superset</i> of JSON? Being incompatible with most existing JSON tooling and interfaces is a big disadvantage, so there better be a tangible upside.<p>Also, I see mention of hashing, but no mention of canonicalization. Does fiddling with a schema&#x27;s whitespace change its hash?
    • ramses020 minutes ago
      &quot;superset&quot; is just marketing mumbo jumbo that says: &quot;I promise to embed an x86 virtual machine inside my spec that&#x27;ll still parse whatever weird JSON you&#x27;re currently handling and give it back to you as an object in your programming language&quot;<p><pre><code> $ echo &#x27;{ &quot;Hello&quot;: &quot;World&quot; }&#x27; | tson --parse ERROR: ...refusing to interoperate w&#x2F; JSON b&#x2F;c we want to be different </code></pre> ...that&#x27;s a non-starter. If they&#x27;re trying to replace or supplement JSON (same way `uv` has been replacing &#x2F; supplementing `pip`, and `deno` is doing the same with `node`), you&#x27;ve got to do the work of supporting the extant real-world use cases that are floating around but with a healthy layer of $BETTER sprinkled on top.<p><pre><code> $ echo &#x27;{ &quot;Hello&quot;: !number 3.14 }&#x27; | jq &#x27;.&#x27; jq: parse error: Invalid numeric literal at line 1, column 19 </code></pre> ...THAT&#x27;s the difference&#x2F;extension.<p>I&#x27;ve been explicitly trying to support `--json5` on some of my internal work tooling. Being very explicit that I&#x27;m not parsing `--json`, but instead using a slower (but more forgiving) `--json5` which would allow comments, trailing commas, whatever JSON5 claims to support.<p>This `--tson` feels like it&#x27;s solving two problems in disguise:<p>1) It wants to be `--json6` (eg: `pi: !number 3.14`)<p>2) It wants to use it&#x27;s own `--json6` (aka: `--tson`) to write &quot;json-ish schemas&quot; (eg: `foo: [text; 1..10]` for presumably a list of maximum of 10 elements?)<p>...JSON was a blessing because it existed naturally as an unambiguous &quot;lists, dicts, values&quot; representation that most programming languages treat as first-class citizens. Missing &quot;sets&quot; and things like &quot;date&quot; or &quot;boolean&quot; are certainly under-specified, but that&#x27;s the real-world impact of JSON as lowest common denominator.<p>SCHEMA&#x27;s don&#x27;t have nearly as much natural, unambiguous representations across many programming languages. The closest thing I can think of is straight up Java + Constructors (ie: a full programming language for object initialization but w&#x2F;o allowing interaction or behavior).<p><pre><code> CalendarEvent x = new CalendarEvent( Date start, Date end, Boolean all_day, List&lt;Invitee&lt;...&gt;&gt;, ...etc... ) </code></pre> ...where my mind has gone lately is doubling down on TypeScript&#x27;s `*.d.ts` as a &quot;naturally occurring, expressive schema language&quot;. It&#x27;s hella-more-complicated to parse&#x2F;validate than JSON, but there&#x27;s tons of tooling around it, and it&#x27;s relatively unambiguous that it can solve and express Real World(tm) engineering problems.
  • lokar51 minutes ago
    Seem to different from JSON to be an easy drop in, while still having the problems of json. I’d rather use something further away like cue.
    • pratyahava24 minutes ago
      cue? what is that? i remember only cue which holds audio tracks metadata.
  • minraws1 hour ago
    you can just add schema to json why add new syntax now, especially for json I dont think it makes sense I honestly believe the war is over there won&#x27;t be a xml to json moment unless we move to a new platform other than browsers which seem rather unlikely, json honestly is fine for something that&#x27;s somewhat human readable...
  • hmokiguess1 hour ago
    I think I&#x27;m gonna go back to XSLT
    • yourapostasy11 minutes ago
      I sometimes wonder if we as an industry should revisit XML for those use cases where painful JSON contortions are being used, now that LLM&#x27;s can plausibly support writing the syntax for XML-adjacent languages like XSLT without as steep a learning and sustainment curve. My natural inclination is to design to accommodate as complex a space as the business requirements project for, because representation data structures and languages are so incredibly painful to change late in a product&#x27;s maturity cycle.<p>So I&#x27;ve never rejected XML out of hand, but I&#x27;ve always been &quot;show me&quot; skeptical of calls for it and pushed for explanations on why the business requirements feel the justification to adopt XML. Sometimes I&#x27;ve seen it totally makes sense, but with the conceptual rigor it requires in those use cases, the skillset and expertise of the development team has to reach a higher than average bar. I&#x27;m cautiously hopeful LLM&#x27;s might help with lowering that bar, but time will tell.
    • pyuser58346 minutes ago
      Always tempted, but never enough.
  • robto1 hour ago
    Seems like it draws a lot of inspiration from EDN. Tagged literals, commas-as-whitespace (and optional), and anything-can-be-a-key are features I sorely miss when I have to go back to JSON.<p>Don&#x27;t know how I feel about optional quotes around strings, that seems like a mistake. And having an immutable set literal would be nice as well.
    • waweic1 hour ago
      Because I may not be the only one who was confused initially: I think EDN in this instance refers to the data serialization format (Extensible Data Notation) from the Clojure people, not to CBOR-EDN (Extended Diagnostic Notation), which also offers tagged literals and anything-can-be-a-key, IIRC.<p>Really unfortunate naming
  • azatom1 hour ago
    when will be xson invented, with support of xpathson and xsdson but strictly leaving out other xml features.. for future improvement?
  • myshapeprotocol2 hours ago
    Hash-pinned schemas are definitely the right direction for ensuring verifiable provenance across distributed systems. Great concept!
    • andrewjneumann1 hour ago
      Agree. It’s early stages, but I love the approach!
  • biggestlou13 minutes ago
    Sorry, but this tool is just never going to succeed being written in Java.
  • esafak1 hour ago
    If the author is here, the Github repo in <a href="https:&#x2F;&#x2F;litterat.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;litterat.io&#x2F;</a> should be <a href="https:&#x2F;&#x2F;github.com&#x2F;litterat" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;litterat</a>
  • flanked-evergl1 hour ago
    why can&#x27;t you use hash pinned schemas with existing json? Why do you need a new format for it?
    • IncreasePosts1 hour ago
      Here&#x27;s some json: []<p>How do you add schema info to that?
      • crote1 hour ago
        Like this:<p><pre><code> { &#x27;schema&#x27;: &#x27;c3ab8ff13720e8ad9047dd39466b3c8974e592c2fa383d4a3960714caef0c4f2&#x27;, &#x27;data&#x27;: [] }</code></pre>
        • phailhaus1 hour ago
          And there you go, just `[]` is no longer valid, so you need a new format.
          • ltbarcly31 hour ago
            If you need a schema for [] you have lost the plot.
            • hyperhello44 minutes ago
              Well, you could be annotating type that the array is for.
              • inigyou23 minutes ago
                It&#x27;s the schema&#x27;s root type, obviously.
  • tonyg1 hour ago
    Absolute slop. Interesting that the end result, the place where Claude ended up, is similar to a (human-authored, windmill-tilting) project of mine, <a href="https:&#x2F;&#x2F;preserves.dev&#x2F;" rel="nofollow">https:&#x2F;&#x2F;preserves.dev&#x2F;</a> . Though with a much prettier website and far, far, far more words.
    • eska42 minutes ago
      I unfortunately agree, this reads heavily AI generated. I was not able to follow the reasoning, e.g. management of backward and forward compatibility seems broken.
  • ltbarcly31 hour ago
    great another shitty JSON variant. now I&#x27;ll have 9 different json-like libraries in every project that I can&#x27;t get rid of.
  • thomasnowhere56 minutes ago
    [dead]