sprig and prose docs classic docs
Syntax› Describe

Describe

Stable — Stable features are ones that have earned their place in the core prose language.

universe ClockworkVillage {
  describe {
    A quiet village simulation where the focus is observation,
    relationships, and small moments.
  }
}

What it is

Meaning, in plain language. A describe block is where a named thing says what it is, in sentences a person reads rather than something a machine executes.

Anything can be described — the universe, and every concept, kind, relationship and pairing that comes after it. Experimentally, so can a single connection. Descriptions are the content of a universe. Everything else is structure holding them in place.

The village has a name and now it has a meaning. Nothing else about it has changed.

Where it can live

Inside any block, including the universe block. One per scope.

Experimentally, a describe can also sit in the block that follows a target in a relationships block, where it is about that one connection. Relationships shows how, under Each edge, separately.

How names find it

Nothing. A describe block holds text, and nothing inside it resolves to anything else in the universe.

That is a decision rather than an omission. Describe has no link form and no reference syntax, and prose makes no claim about how the text is rendered — it is kept exactly as written. A connection between two things is a relationship, not a mention inside a paragraph.

How it breaks

  • SP003 DuplicateDescribeError — A scope may have only one describe.
  • SP018 UnclosedDescribeError — A describe or title block never got its closing brace.

Decided in

  • ADR011 ExpectsBlock — Expects block. Proposed.
  • ADR015 MarkdownInDescribe — Markdown in describe. Accepted.
  • ADR016 UsingMarkdown — Using markdown. Accepted.
  • ADR017 LinksInDescribe — Links in describe. Accepted.
  • ADR018 TemporalDimensions — Temporal dimensions. Proposed.
  • ADR029 EdgeBlocks — Edge blocks. Accepted.
  • ADR030 DescribeInEdgeBlocks — Describe in edge blocks. Proposed.
  • ADR031 BracesInProse — Braces in prose. Proposed.