Surface sheet · level 0

The directory

The directory resolves. Given a name, an address or a category somebody walked down to, it has to answer with exactly one row or with none, and every field in it exists to make that answer unambiguous.

What an entry is, and what it is not

Two rows for one organisation is the defect every other directory defect turns out to be.

An entry is the record of one listed thing. It is created once, by a steward or by a holder’s accepted submission, and it is never duplicated. An entry does not describe itself — that is the listing’s job — and it holds nothing about a person beyond the role an account carries.

What an entry is for is resolution. Given a name typed in a search box, a slug in an address bar or a category someone walked down to, the directory has to answer with exactly one row or none. Everything in the field list below exists to make that answer unambiguous; anything that does not help the answer belongs on the listing instead.

The eight fields an entry cannot open without

Fixed field list

FieldShapeSet byMay change
identifierwhole number, allocated in sequencethe directory, oncenever, and never reissued
registered namethe name as it stands on the register the portal draws ona stewardonly to follow the register
display nameshort text, no punctuation a slug cannot carrythe holderyes, with a slug decision
sluglower-case letters, digits and hyphensderived, then registeredyes, leaving the old one redirecting
primary categoryexactly one category identifierthe holder, confirmed by a moderatoryes, through the queue
post town and outward postcodetwo short fields, nothing finerthe holderyes
contact routeone address, reachablethe holderyes
stateone of the five listing statesmoves only through a recorded transitionyes, never silently

The address fields stop at the post town and the outward half of the postcode. That is enough to put a listed thing in a place and to group it regionally, and it is deliberately not enough to put anyone at a door. A finer field would be collected once and then asked for forever.

The single-writer rule, and why proposals are not edits

One account holds an entry and writes to it. Any other account — including a moderator — proposes. A proposal is a row in the revision queue carrying the field, the value before, the value after and the account that asked; it does not become the entry until a moderator accepts it.

Identifier and slug are kept apart for the same reason. The identifier is what the category tree, the index and the record all point at, so it has to be stable. The slug is what a reader types or copies, so it has to be legible, and legible things get renamed.

Not in the directory: free-text notes against an entry, uploaded documents, anything about a named individual, and any field whose only use is sorting entries by how much they paid.