Nordhavn / specs / convene / surface / Line

convene / surfacedata

Line

Purpose

One line of a member's presented reading — the surface's word for what one place in the timeline looks like on a screen. Because the timeline below it has exactly two shapes, a line has exactly two: spoken, where a message opened and the line carries who said it and what they said, under the speaker's shown name, in the reader's own voice when they themselves said it; or awaited, where the reading has a visible hole — a message named as a parent that has not itself arrived. A line is presentation, not knowledge: it carries the shown name the reader resolves, not the wire's identifiers, and it never carries key material or sealed bytes.

Attributes

Spoken attributes

Awaited attributes

Invariants

Scenarios

A spoken line carries who said what

Given: kind "spoken", the MessageId "m-8001", speaker "Anne Bruun", words "The hearing moved to Thursday.", and voice "theirs" When: a Line is created Then: it is accepted as a spoken line carrying "The hearing moved to Thursday." from "Anne Bruun", in the voice "theirs"

An awaited line names the hole

Given: kind "awaited" and an awaiting MessageId "m-8000" When: a Line is created Then: it is accepted as an awaited line waiting for "m-8000"

An unknown shape is rejected

Given: kind "whispered", with no words and no awaiting id When: a Line is created Then: the creation is rejected because the kind is not a recognised line shape

spoken of by