sprig and prose docs classic docs
Syntax› Title

Title

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

universe ClockworkVillage {
  describe { ... }
}

dimension place { describe { ... } }
dimension thing { describe { ... } }

relationship isNextTo { describe { ... } }
relationship sitsOn and isSatOnBy { describe { ... } }

concept Villager {
  describe { ... }

  relationships {
    sitsOn { Bench }
  }
}

place Well {
  describe { ... }

  thing WellRope {
    describe { ... }
  }
}

thing Water {
  describe { ... }
}

relates Well and Water {
  describe { ... }
}

place Pond {
  describe { ... }
}

place Bench {
  describe { ... }

  relationships {
    isNextTo { Pond }
  }
}

place CarpentersWorkshop {
  title { Carpenter's Workshop }

  describe {
    The workshop is where the carpenter repairs tools and builds new ones.
  }
}

What it is

The fuller wording of a name, when the name cannot carry it.

A concept name is built from a narrow set of characters, and real names are not. Carpenter's Workshop has an apostrophe and a space in it, so it cannot be a concept name — but it is what the place is actually called.

A title records that. It is an additional fact about the concept, never a replacement for it. The name stays CarpentersWorkshop everywhere a name is used: in paths, in relationships, in receipts. The title is only what to call it out loud.

That completes the village, and the language. Nine blocks.

Where it can live

Inside any scope that has a name of its own. One per scope, conventionally written first, above the describe.

How names find it

Nothing. Like a describe, a title holds text and resolves no references. Nothing points at a title, and a title points at nothing.

Its content is not a name and is never treated as one. Two concepts may carry the same title without colliding, because their names are still distinct.

How it breaks

  • SP002 DuplicateTitleError — A scope may have only one title.

Decided in

  • ADR010 TitleBlock — The title block. Accepted.
  • ADR014 Literals — Literals. Accepted.
  • ADR031 BracesInProse — Braces in prose. Proposed.