01must proveConfirmed | Creating a link requires an active workspace type and two existing compatible endpoints, rejects self-links and fills an omitted endpoint from the record route. | validation | service | test |
02must proveConfirmed | A link remains in force through its inclusive end date in the workspace calendar, or indefinitely when no end date exists. | calculation | service, database | test |
03must proveConfirmed | Overlapping date spans cannot occupy a duplicate pair, a cardinality-limited endpoint or the primary place of a record and type; unbounded ends and inclusive dates determine conflicts while adjacent spans are allowed. | validation | service, database | test |
04must proveConfirmed | Concurrent writers cannot both occupy a conflicting relationship place, and the losing write receives a conflict refusal. | invariant | service, database | test |
05must proveConfirmed | Only dated types accept calendar dates, an end cannot precede its start and only primary-enabled types accept primary links. | validation | service, database | test |
06must proveConfirmed | Type and endpoint identities remain fixed, while versioned replacements can change dates, primary designation, position and notes bounded to four thousand characters. | invariant | service | test |
07must proveConfirmed | Ending a dated link uses a supplied day or the workspace today and refuses already-ended, invalid or conflicting spans; ending an undated link is refused in favour of removal. | lifecycle | service | test |
08must proveConfirmed | Removing a dated link without an end date ends it today, removing a dated link with an end date deletes it as a correction, and undated links are deleted. | lifecycle | service | test |
09must proveConfirmed | Creation permits one thousand links per record and type on each side, counting current and ended links together, while merge can exceed that limit. | validation | service | test |
10must proveConfirmed | Link lists use the current endpoint label and opposite record name, default to in-force links, offer ended history when requested and isolate workspaces. | policy | service | test |
11must proveConfirmed | Relationship cards on custom, contact and organization pages expose permitted link actions and ended history, allowing standard users to maintain links while readers receive no actions. | permission | console, api | test |
12Confirmed | General relationships leave contact-to-organization affiliations under the separate CRM model. | policy | service | documented |
13must proveConfirmed | Update locks refuse edits and ending, any lock refuses removal, and deactivation does not prevent maintenance of existing unlocked links. | policy | service | observed |