Title: JSE – A JSON-based S-Expression format for structured AI outputs

Hi HN,

I’ve been experimenting with a small idea around structured outputs for AI systems and wanted to share an early spec to get feedback.

*JSE (JSON Structural Expression)* is a lightweight convention that allows *S-expression style logic to be encoded inside valid JSON*.

The motivation is simple:

Modern AI models can reliably generate JSON. However, JSON is usually treated purely as *data*, while many AI interactions actually need to express *structured intent or computation* (similar to Lisp expressions, DSLs, or ASTs).

Tool calls and MCP solve some of this, but they tend to be *API-specific protocols* rather than a *general structural representation*.

JSE tries to fill that gap with a minimal rule set.

---

### Core idea

In JSE:

* Strings starting with `$` are treated as *symbols* * JSON arrays or objects can represent *S-expressions* * The format remains *100% valid JSON* * Metadata can coexist with expressions * `$quote` allows raw data sections

Conceptually:

> Just as a *group* consists of a *set plus operations defined on it*, > *JSE is an S-expression system applied to JSON data.*

Example:

```json ["$add", 1, 2] ```

Or with metadata:

```json { "$call": "$search", "query": "JSON S-expression", "top_k": 5 } ```

A system that understands JSE can interpret these as structured operations, while systems that don’t can still treat them as ordinary JSON.

---

### Why this might be useful for AI

Many AI systems need to communicate things like:

* reasoning plans * tool pipelines * structured transformations * query languages * DSL-like instructions

Today these are usually implemented as:

* ad-hoc JSON schemas * tool-specific formats * embedded code strings

JSE attempts to provide a *uniform representation for structured intent* that is:

* deterministic * machine interpretable * easy for LLMs to generate * easy for humans to read

Importantly, *JSE does not aim to be a full Lisp or a Turing-complete system*. Each implementation can choose how much of the expression space it supports.

---

### Design constraints

The format tries to satisfy a few practical goals:

* Always valid JSON * Easy for LLMs to generate * Close to S-expression semantics * Extensible for metadata * Lightweight enough to embed in prompts or API responses

---

### Example use cases

Some areas where this might be useful:

AI orchestration systems Agent communication protocols Structured reasoning traces Prompt-embedded DSLs Cross-model communication formats

---

### Spec and repo

Early spec and examples are here:

https://github.com/MarchLiu/jse

The spec is intentionally designed so it can also be *embedded directly inside prompts*, allowing models to generate JSE structures consistently.

---

### Questions I’d love feedback on

* Is there prior art I should study? * Would this be useful compared to JSON Schema / tool calling? * Does the `$symbol` design feel reasonable? * Are there obvious edge cases in the semantics?

Curious to hear thoughts.

Bespoke languages, or things like this, are a hard sell in the age of Ai. Because there is no training data or real world usage, I have to put a bunch of stuff into my context just so they can work with it. This becomes even more unpalatable when you realize they will (1) have to dedicate attention to this, taking it away from productive tasks (2) will have trouble sticking to it, because it looks so much like other things it has trained into the weights

[dead]

[dead]