Achei interessante!
Em qual contexto seria melhor usar o MOON?
Por exemplo, pelo que li, o TOON ajuda a otimizar a quantidade de tokens usados nos chats com inteligências artificiais.
Aparentemente o MOON é melhor para um humano ler, pois é bem semântico.
Talvez você consiga diminuir a quantidade de tokens, em comparação ao JSON, se omitir os "nomes" após a primeira definição.
Por exemplo, como já definiu os "tipos", bastaria "instanciar" o primeiro "nome":
# Usuario(id: int, nome: string, email: string);
# Produto(id: int, nome: string, preco: float, categorias: string[]);
# ItemPedido(produto: Produto, quantidade: int);
# Pedido(id: int, cliente: Usuario, itens: ItemPedido[], total: float, status: string);
Pedido(
9812,
(1, "Lucas", "[email protected]"),
[
(
(33, "Mouse RGB", 199.90, ["periférico", "hardware"]),
2
),
(
(51, "Teclado Mecânico", 499.00, ["hardware"]),
1
)
],
898.80,
"confirmado"
)