SpecSheriffIn progress
rule · _guidelines/spec/1.38 · s-5yvpn4zhuqmv5bq

A domain uses another domain's RecordTypes only from the sections it declares

Checkedconfirmed by its owner

A RecordType of one domain names a RecordType of another domain, in a field's type or as the RecordType it refines, only where the named RecordType stands in a section the first domain's header names in its consumes links. A RecordType named from elsewhere is reported, not refused.

Why

A domain's header then names every section of another domain whose RecordTypes the domain relies on at runtime, and that domain's index names it beside each one, so whoever changes such a RecordType sees which domains it reaches (§s-yggv9myedprnaa7). A RecordType of contracts is provided by no single domain (§s-7vm323mhry2enx3), so naming it makes a domain rely on no other. A RecordType named from elsewhere is reported rather than refused, since declaring the use may set the domains using one another in a cycle (§s-uw9n84edf7cbe9n), which only a change to the design removes; until then the work goes on with the dependency in view.

The links it makes

The links made to it

The decisions taken on it

2026-11-04 · textual
Problem

A data record of one domain could name one of another that its header's consumes links did not name, so the domain relied on the other at runtime with no header showing it.

Ruling

The owner: the domains are decoupled by data at runtime, the data records a domain provides being its interface; the check is kept and warns rather than refuses, and a link of any type still crosses a domain line (§s-hr7j7scmfkkjnws).

2026-11-05 · textual
Problem

The node named a kind of node "data record" and a node's place "address" or "id".

Ruling

A technical replacement following the owner's decisions of that day: a data record is a RecordType, and a node's address or id is its location.