Show HN: Dit – A new kind of container file for standardizing data
The project makes a bunch of big vague claims, like:<p>&gt; Someday, there will be no file extensions: every file will be a dit.<p>reading:
<a href="https:&#x2F;&#x2F;github.com&#x2F;isaiahshiner&#x2F;dit-cli&#x2F;blob&#x2F;master&#x2F;docs&#x2F;whats-the-point.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;isaiahshiner&#x2F;dit-cli&#x2F;blob&#x2F;master&#x2F;docs&#x2F;wha...</a>
...seems to imply you want to solve the problem where:<p><pre><code>  &quot;Name&quot;: &quot;John Doe&quot;
  
  vs.
  
  &quot;Name&quot;: {
      &quot;FirstName&quot;: &quot;John&quot;,
      &quot;LastName&quot;: &quot;Doe&quot;
  }
</code></pre>
represents the same data?<p>But for me it&#x27;s completely unclear if or how Dit solves this though.<p><a href="https:&#x2F;&#x2F;www.ditabase.io&#x2F;faq.html" rel="nofollow">https:&#x2F;&#x2F;www.ditabase.io&#x2F;faq.html</a> says:<p>&gt; Dit is not a format, it is a container. It&#x27;s trying to be a bridge between other formats, and that means it relies on them heavily. You can&#x27;t write data in dit format, only wrap data in a dit.<p>So it sounds like a schema language, an alternative to JSON-Schema, Avro etc?<p>But then it also bundles in a bunch of other things...<p>Apparently contradicting the above, the are &#x27;assigners&#x27; and a sort of query language which seem to create and return records in this format which you &quot;can&#x27;t write data in&quot;:<p><pre><code>  &#x2F;&#x2F; Assign an existing object
  myName.givenName = name;

  &#x2F;&#x2F; Use the &#x27;n&#x27; assigner inside a list
  myName.middleNames = [n(&#x27;Leopold&#x27;), n(&#x27;Koser&#x27;)];

  &#x2F;&#x2F; Assign the string directly
  myName.familyName.value = &#x27;Shiner&#x27;;

  dit query name.dit &#x27;@@print(myName)&#x27;
  &quot;Hi! My name is Isaiah Leopold Koser Shiner&quot;
</code></pre>
And then there are the validators and printers, as chunks of embedded python or javascript code.<p>But it&#x27;s still hard to see how any of this solves the &quot;John Doe&quot; problem?<p>If dit is meant to be a bridge between silos of incompatible data maybe it would be useful to show some examples of that use case.