title: Rationale

Adavanced than XML, simpler than JSON.

Design Goals

How is it human language agnositc?

gt does not have values like null, true, false which are specific to human languages. It rather relies on common symbols found on every keyboard.

Why no boolean type?

A traditional value of boolean is either true of false. A generalized standard like gt cannot include english words. 0 and 1 are understood throughout the world.

A schema is generally available between the sender and the receiver of the message. The message can be validated even though it is ambigous in gt.

Why no explicit null type?

One can either remove or comment a field with gt. Adding an explicit null type makes the standard a little heavy and adds 4 bytes when transferring data. nulll can be emulated by writing string as "", objects as {} and arrays as []. This decision was made to simplify the gt's format.

Why single quotes?

Double quotes add visual noise when reading the data.

Why the weird comment syntax?

To be honest, gt doesn't have comments similar to JSON. :'' is just a regular name/value pair with an empty name.

Will gt evolve?

No. It is versionless, so it can't evolve.

Why GT when bajillion other formats already exist?

XML is PTSD inducing. YAML and TOML are a little too heavy for my taste, but still better than XML. I am thankful for JSON but it has some few warts. GT is a result of removing those warts.

Why can't I access the root element?

GT is supposed to be removed and placed elsewhere all the time. When we use root element accessor it introduces bugs.

Things that were considered but didn't make it

{, } - for arrays. This made the description language elegant but also introduced a negative element in human readability.