@lapxo/topos 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,113 +2,26 @@
2
2
 
3
3
  # @lapxo/topos
4
4
 
5
- ![version 0.1.0](https://img.shields.io/badge/version-0.1.0-8c959f) ![license MIT](https://img.shields.io/badge/license-MIT-8c959f) ![node >=22.12](https://img.shields.io/badge/node-%3E%3D22.12-8c959f) ![dependencies 1](https://img.shields.io/badge/dependencies-1-8c959f) ![cases 12 hold](https://img.shields.io/badge/cases-12_hold-2da44e) ![verify agrees](https://img.shields.io/badge/verify-agrees-2da44e)
5
+ ![version 0.1.2](https://img.shields.io/badge/version-0.1.2-8c959f) ![license MIT](https://img.shields.io/badge/license-MIT-8c959f) ![node >=22.12](https://img.shields.io/badge/node-%3E%3D22.12-8c959f) ![dependencies 1](https://img.shields.io/badge/dependencies-1-8c959f) ![cases 12 hold](https://img.shields.io/badge/cases-12_hold-2da44e) ![verify agrees](https://img.shields.io/badge/verify-agrees-2da44e)
6
6
 
7
7
  One line for every fact.
8
8
 
9
- [bound's SDK: the wire, the forms, the contract and the shell you build a world with — a reader of any source or a renderer of any artefact, in an afternoon.](docs/what.md)
9
+ bound's SDK: the wire, the forms, the contract and the shell you build a world with — a reader of any source or a renderer of any artefact, in an afternoon. [in its own words](docs/what.md)
10
10
 
11
11
  ## Why one line
12
12
 
13
13
  Everything a system says about itself lives where nobody can check it: a config, a README, a CI log. topos is one line format for all of it — a signed line with a floor and a ceiling, that any head can fold and any second head can verify. Two implementations agree only on what passes between them, and what passes between them is a line. So the line is the one thing held still; everything else belongs to a world.
14
14
 
15
- <p align="center"><img src="docs/img/world.svg" alt="declares measurements, runs on node, reaches none, 2 regions, written in one file of 92 lines, packed as sha256:3252cbb877d9ca0c9ea990828c1490999de3d4853990d53d6bbd31861e6bb780, a place adopts it with uses/topos-measure and run by the node host" width="640"></p>
15
+ <p align="center"><img src="docs/img/fold.svg" alt="21.2..21.4 · free and radiator apart · conflict" width="640"></p>
16
+
17
+ Two meet at 21.2..21.4; radiator is apart: conflict.
16
18
 
17
19
  ## A world, built in front of you
18
20
 
19
- ```ts
20
- // topos-measure built in front of you from its own bytes: its lock, its regions and its vector, every case asked through the one contract, then the line a place adopts it with.
21
- import { intervals } from '@lapxo/obligations';
22
- import type { Interval } from '@lapxo/obligations';
23
- import { cell, encounter, observe, state } from '@lapxo/obligations/views/field';
24
- import { declarationOf, found, lang, listed, of, shell } from '@lapxo/topos/capsule';
25
- import type { Asked, Handed } from '@lapxo/topos/capsule';
26
- import { answer } from '@lapxo/topos/contract';
27
- import { PROTOCOL, canonical, fromLine, steps } from '@lapxo/topos/wire';
28
-
29
- const capsule = [
30
- `bound-lock/1 about="the domain this capsule serves: what several origins measured, each quantity read as one cell" at=policy:topos/capsule by=target form=alphabet measure=id role=writes scope=capsule/domain value=measurements`,
31
- `bound-lock/1 about="the runtime a host starts this capsule with, whose entry, regions and effects are the runtime's own lines" at=policy:topos/capsule by=target form=alphabet measure=id role=writes scope=capsule/runtime value=node`,
32
- `bound-lock/1 about="where this capsule's world keeps its values: the place's own files" at=policy:topos/capsule by=target form=alphabet measure=id role=writes scope=capsule/holds value=./`,
33
- `bound-lock/1 about="the held region" at=policy:topos/capsule by=target form=alphabet measure=reads role=render scope=region/held value=lang|form/prose/**|form/template/**|prose/*/measure/*|measure/**`,
34
- `bound-lock/1 about="the readings region" at=policy:topos/capsule by=target form=alphabet measure=reads role=render scope=region/readings value=lang|form/prose/**|prose/*/measure/*|measure/**`,
35
- `bound-lock/1 about="what this capsule reaches beyond the lines it is handed" at=policy:topos/capsule by=target form=alphabet measure=effects role=writes scope=capsule/effects value=none`,
36
- `bound-lock/1 about="the topos release this capsule is packed against, named by its digest" at=policy:topos/capsule by=target form=alphabet measure=digest role=writes scope=capsule/topos value=sha256:a87ffd5ab77a99b9e40cc720acfdf0ee7f36d156c72085a20db1232b0653c1dd`,
37
- ];
38
-
39
- const prose = (asked: Asked, key: string): string | undefined => ((line) => (line === undefined ? undefined : of(line, 'about')))(found(asked, `prose/${lang(asked)}/${key}`));
40
-
41
- const SPANS = intervals(-Infinity, Infinity);
42
- const span = (line: Handed): Interval | undefined => ((got) => (got.kind === 'fact' && got.value.bound.kind === 'interval' && got.value.bound.lo !== null && got.value.bound.hi !== null
43
- ? { lo: got.value.bound.lo, hi: got.value.bound.hi } : undefined))(fromLine(canonical(line), null));
44
- const say = (asked: Asked, key: string, fields: Readonly<Record<string, string | number>>): string => listed(asked, `form/template/${key}`).reduce((text, field) => text.split(`{${field}}`).join(String(fields[field] ?? '')), prose(asked, key) ?? '');
45
- const held = (asked: Asked): readonly string[] => {
46
- const read = asked.lines.filter((line) => steps(of(line, 'scope')).length === 3);
47
- const numbers = listed(asked, `form/prose/${lang(asked)}/numbers`);
48
- return [...new Set(read.map((line) => steps(of(line, 'scope'))[1] ?? ''))].map((quantity) => {
49
- const mine = read.filter((line) => steps(of(line, 'scope'))[1] === quantity);
50
- const met = mine.reduce((at, line) => ((one) => (one === undefined ? at : observe(at, { origin: steps(of(line, 'scope'))[2] ?? '', span: one })))(span(line)), cell<Interval>(quantity));
51
- const { origins, held: meet } = encounter(SPANS, met);
52
- return say(asked, `measure/${state(SPANS, met)}`, { quantity, origins: numbers[origins] ?? String(origins), lo: meet.lo, hi: meet.hi, unit: of(mine[0], 'measure') });
53
- });
54
- };
55
-
56
- const readings = (asked: Asked): readonly string[] => {
57
- const read = asked.lines.filter((line) => steps(of(line, 'scope')).length === 3);
58
- return read.length ? [`## ${prose(asked, 'measure/readings') ?? ''}`, '', prose(asked, 'measure/table') ?? '', '|---|---|---|',
59
- ...read.map((line) => ((at) => `| ${at[1] ?? ''} | ${at[2] ?? ''} | ${of(line, 'value')} ${of(line, 'measure')} |`)(steps(of(line, 'scope'))))] : [];
60
- };
61
-
62
- const render = shell({
63
- held: { reads: ['lang', 'form/prose/**', 'form/template/**', 'prose/*/measure/*', 'measure/**'], region: held },
64
- readings: { reads: ['lang', 'form/prose/**', 'prose/*/measure/*', 'measure/**'], region: readings },
65
- });
66
-
67
- const said = [
68
- `bound-lock/1 about=Readings at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/readings value=lock`,
69
- `bound-lock/1 about="| quantity | origin | reading |" at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/table value=lock`,
70
- `bound-lock/1 about="The {origins} origins that measured {quantity} meet: every one of their readings holds {lo}..{hi} {unit}." at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/FREE value=lock`,
71
- `bound-lock/1 about="The {origins} origins that measured {quantity} do not meet: no value in {unit} is held by all of their readings, and no average of them closes that." at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/CONFLICT value=lock`,
72
- `bound-lock/1 about="Only {origins} origin measured {quantity}: its reading holds nothing yet, until a second origin's reading meets it." at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/REQUIRED value=lock`,
73
- `bound-lock/1 about="The {origins} origins that measured {quantity} meet, but outside what the bounds on it allow." at=policy:topos-measure/example by=target form=alphabet measure=text role=writes scope=prose/en/measure/FORBIDDEN value=lock`,
74
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=form/template/measure/FREE value=origins|quantity|lo|hi|unit`,
75
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=form/template/measure/CONFLICT value=origins|quantity|unit`,
76
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=form/template/measure/REQUIRED value=origins|quantity`,
77
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=form/template/measure/FORBIDDEN value=origins|quantity`,
78
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=form/prose/en/numbers value=zero|one|two|three|four|five|six|seven|eight|nine|ten`,
79
- `bound-lock/1 at=policy:topos-measure/example by=target form=alphabet measure=id role=writes scope=lang value=en`,
80
- ];
81
- const met = [
82
- { origin: 'a', span: { lo: 19.8, hi: 20.2 } },
83
- { origin: 'b', span: { lo: 19.9, hi: 20.3 } },
84
- { origin: 'c', span: { lo: 19.7, hi: 20.1 } },
85
- ].map(({ origin, span: { lo, hi } }) => canonical({ at: 'policy:topos-measure/example', by: 'target', form: 'interval', measure: 'celsius', role: 'writes', scope: `measure/room/${origin}`, value: `${lo}..${hi}` }));
86
- const apart = `bound-lock/1 at=policy:topos-measure/example by=target form=interval measure=celsius role=writes scope=measure/room/d value=24..24.4`;
87
- const worlds: Readonly<Record<string, readonly string[]>> = { 'root:topos-measure': [...said, ...met, apart], 'agreed:topos-measure': [...said, ...met], 'alone:topos-measure': [...said, ...met.slice(0, 1)] };
88
- const cases = [
89
- { world: 'root:topos-measure', region: 'held', expected: ['The four origins that measured room do not meet: no value in celsius is held by all of their readings, and no average of them closes that.'] },
90
- { world: 'agreed:topos-measure', region: 'held', expected: ['The three origins that measured room meet: every one of their readings holds 19.9..20.1 celsius.'] },
91
- { world: 'alone:topos-measure', region: 'held', expected: [`Only one origin measured room: its reading holds nothing yet, until a second origin's reading meets it.`] },
92
- { world: 'root:topos-measure', region: 'readings', expected: ['## Readings', '', '| quantity | origin | reading |', '|---|---|---|', '| room | a | 19.8..20.2 celsius |', '| room | b | 19.9..20.3 celsius |', '| room | c | 19.7..20.1 celsius |', '| room | d | 24..24.4 celsius |'] },
93
- ];
94
-
95
- const declared = declarationOf(capsule);
96
- const ask = (world: string, region: string, reads: readonly string[]) =>
97
- answer({ render }, { protocol: PROTOCOL, verb: 'render', rootScope: '', files: [], lines: worlds[world] ?? [], region, at: 3, shape: 'README.md', name: 'topos-measure', reads }, '');
98
- for (const line of capsule) console.log(line);
99
- let [holds, shorts, refused] = [0, 0, 0];
100
- for (const { world, region, expected } of cases) {
101
- const reads = declared.regions[region] ?? [];
102
- const got = ask(world, region, reads);
103
- const same = JSON.stringify(got) === JSON.stringify({ protocol: PROTOCOL, kind: 'fact', lines: expected });
104
- [holds, shorts] = [holds + (same ? 1 : 0), shorts + reads.length];
105
- refused += reads.filter((one) => ask(world, region, reads.filter((other) => other !== one)).kind === 'refuse').length;
106
- console.log(`${same ? 'HELD ' : 'DIFFERS'} ${world} · ${region}`);
107
- for (const line of got.lines ?? [got.why ?? '']) console.log(line ? ` ${line}` : '');
108
- }
109
- console.log(`HELD ${holds}/${cases.length}`);
110
- console.log(`REFUSED ${refused}/${shorts}: each case asked again with one read its region declares taken away`);
111
- console.log(canonical({ at: 'policy:acme/capsules', by: 'target', form: 'alphabet', measure: 'id', role: 'writes', scope: 'uses/topos-measure', value: 'sha256:3252cbb877d9ca0c9ea990828c1490999de3d4853990d53d6bbd31861e6bb780' }));
21
+ <p align="center"><img src="docs/img/world.svg" alt="declares measurements, runs on node, reaches none, held reads lang|form/prose/**|form/template/**|prose/*/measure/*|measure/**, readings reads lang|form/prose/**|prose/*/measure/*|measure/**, against topos sha256:a87ffd5ab77a99b9e40cc720acfdf0ee7f36d156c72085a20db1232b0653c1dd, packed as sha256:3252cbb877d9ca0c9ea990828c1490999de3d4853990d53d6bbd31861e6bb780, a place adopts it with uses/topos-measure and run by the node host" width="640"></p>
22
+
23
+ ```bash
24
+ node examples/release/world.ts
112
25
  ```
113
26
 
114
27
  ```
@@ -119,26 +32,13 @@ bound-lock/1 about="the held region" at=policy:topos/capsule by=target form=alph
119
32
  bound-lock/1 about="the readings region" at=policy:topos/capsule by=target form=alphabet measure=reads role=render scope=region/readings value=lang|form/prose/**|prose/*/measure/*|measure/**
120
33
  bound-lock/1 about="what this capsule reaches beyond the lines it is handed" at=policy:topos/capsule by=target form=alphabet measure=effects role=writes scope=capsule/effects value=none
121
34
  bound-lock/1 about="the topos release this capsule is packed against, named by its digest" at=policy:topos/capsule by=target form=alphabet measure=digest role=writes scope=capsule/topos value=sha256:a87ffd5ab77a99b9e40cc720acfdf0ee7f36d156c72085a20db1232b0653c1dd
122
- HELD root:topos-measure · held
123
- The four origins that measured room do not meet: no value in celsius is held by all of their readings, and no average of them closes that.
124
- HELD agreed:topos-measure · held
125
- The three origins that measured room meet: every one of their readings holds 19.9..20.1 celsius.
126
- HELD alone:topos-measure · held
127
- Only one origin measured room: its reading holds nothing yet, until a second origin's reading meets it.
128
- HELD root:topos-measure · readings
129
- ## Readings
130
-
131
- | quantity | origin | reading |
132
- |---|---|---|
133
- | room | a | 19.8..20.2 celsius |
134
- | room | b | 19.9..20.3 celsius |
135
- | room | c | 19.7..20.1 celsius |
136
- | room | d | 24..24.4 celsius |
137
35
  HELD 4/4
138
36
  REFUSED 19/19: each case asked again with one read its region declares taken away
139
37
  bound-lock/1 at=policy:acme/capsules by=target form=alphabet measure=id role=writes scope=uses/topos-measure value=sha256:3252cbb877d9ca0c9ea990828c1490999de3d4853990d53d6bbd31861e6bb780
140
38
  ```
141
39
 
40
+ [The whole example](examples/release/world.ts)
41
+
142
42
  Three meet at 19.9..20.1: free.
143
43
 
144
44
  ## What it claims
@@ -148,30 +48,20 @@ Three meet at 19.9..20.1: free.
148
48
  - **It knows no world: it says nothing a world says, and its ceiling on a world's words, markup or figures written in its source reads 0.** · [receipt](receipts.bound)
149
49
  - **It writes no order of its own: cells, meets, joins and states come from the object, and its ceiling on an order written here reads 0.** · [receipt](receipts.bound)
150
50
 
51
+ ## A line
52
+
151
53
  <p align="center"><img src="docs/img/line.svg" alt="The line wire/line/fields, drawn field by field: 6 fields, each named by the wire" width="640"></p>
152
54
 
55
+ The line wire/line/fields, drawn field by field: 6 fields, each named by the wire.
56
+
153
57
  ```bash
154
58
  npm install @lapxo/topos
155
59
  ```
156
60
 
157
- ## Your first run
158
-
159
61
  With it installed, run roundtrip: a line is parsed, written again and compared with the bytes it came from.
160
62
 
161
- ```ts
162
- // A line read and written back to the same bytes, then an alphabet read and written back.
163
- import { alphabet, canonical, parse } from '@lapxo/topos/wire';
164
-
165
- const line = 'bound-lock/1 about="a \\"quoted\\" word,\\nthen a second line" at=witness:x by=owner form=interval measure=len role=reads scope=acme/users/email value=0..320';
166
- const read = parse(line);
167
- if (read.kind !== 'fact') throw new Error(read.why);
168
- const again = canonical(read.value.fields);
169
- console.log(read.value.fields['about']);
170
- console.log(again);
171
- console.log('same bytes', again === line);
172
- const words = 'not:draft|either\\|or';
173
- console.log(JSON.stringify(alphabet(words)));
174
- console.log(alphabet(alphabet(words)), 'same bytes', alphabet(alphabet(words)) === words);
63
+ ```bash
64
+ node examples/release/roundtrip.ts
175
65
  ```
176
66
 
177
67
  ```
@@ -183,23 +73,23 @@ same bytes true
183
73
  not:draft|either\|or same bytes true
184
74
  ```
185
75
 
186
- <p align="center"><img src="docs/img/refuses.svg" alt="Handed bound-lock/1 form=interval measure=len role=reads scope=x value=0..1..3, it refuses: `0..1..3` is no interval the wire reads: two ends, each decimal or *" width="640"></p>
76
+ [The whole example](examples/release/roundtrip.ts)
187
77
 
188
78
  ## What it refuses
189
79
 
80
+ <p align="center"><img src="docs/img/refuses.svg" alt="Handed bound-lock/1 form=interval measure=len role=reads scope=x value=0..1..3, it refuses: `0..1..3` is no interval the wire reads: two ends, each decimal or *" width="640"></p>
81
+
190
82
  Hand it `bound-lock/1 form=interval measure=len role=reads scope=x value=0..1..3` and it refuses: `0..1..3` is no interval the wire reads: two ends, each decimal or *.
191
83
 
192
84
  ## How to read it
193
85
 
194
86
  topos is read one subpath at a time, and each answers one question.
195
87
 
196
- <details><summary>The three subpaths and the question each answers</summary>
197
-
88
+ - **wire** · the line, the forms' encodings, the names — how is a fact written?
198
89
  - **contract** · what a world answers — render, receipt, observe, run — what does a world owe?
199
90
  - **readers** · the world-neutral readers of lines — what does a line say?
200
- - **wire** · the line, the forms' encodings, the names — how is a fact written?
201
91
 
202
- </details>
92
+ It rests on obligations. Nothing else.
203
93
 
204
94
  ## Check
205
95
 
package/TARGET.bound CHANGED
@@ -5,7 +5,6 @@ bound-lock/1 at=witness:topos-is-a-module by=owner epoch=1 form=alphabet measure
5
5
  bound-lock/1 at=witness:destination-read-the-world-now-reads-the-fold by=owner epoch=1 form=alphabet measure=status role=demands scope=audit/a-vector-cites-names shape=reader sig="ed25519:era1:TpzTTPqpDJ+YzAz3XARSRIw/HLQqZ6YhEclAimgnIIlSc92Yw8R/6Y7LH0k8D3cQuPfdfwNo8U12s7zdqCSqCg==" value=present
6
6
  bound-lock/1 about="a text view is a signed line view/<name> whose value is an ordered alphabet of regions; render(fold, regions) writes them as markdown in that order; anyone signs a new view in their own lock. bound holds one render and no format; topos holds no template, only the alphabet of regions a fold can render." at=witness:readme-as-a-named-template by=owner epoch=1 form=alphabet measure=status needs=samples/yes/ role=demands scope=audit/a-view-is-a-list-of-regions shape=decision sig="ed25519:era1:sje2U6YiMphoW7lu5lws2Te+gqJsD8XM91otJKjWHauQ3QKTb/BlAxvJl9zCfD8GwWhzlsMxdMtWOM/SffJxBg==" value=present
7
7
  bound-lock/1 about="a network act of the agent is a claim or REFUSE; viewing a leaf is a local render" at=policy:security/acts by=owner epoch=1 form=interval measure=acts-on-unnamed-hosts role=reads scope=audit/agent-acts-are-effects sig="ed25519:era1:0VugVQGZjBnFMXV9paUfTcu7nIpwvOulRvA+1UZcDqSZV3i3+FqNtjaDEkKy9srNXSPeE1LYc83+GBIJUVEABg==" value=0..0
8
- bound-lock/1 about="cells, meets, joins and states come from the object; the notation writes no order of its own" at=witness:a-notation-that-did-a-worlds-work by=owner epoch=1 form=interval measure=count role=reads scope=audit/algebra-is-imported sig="ed25519:era1:YZU9RGXJo9gKLjIKE5DNRaFL2oEDBYeUxr8rMq3B/SSkjHoYHfQeHFVtEC6eqL6Gp8z63Fz1wX7Zfxzcehl7DA==" value=0..0
9
8
  bound-lock/1 about="what a test compares against is read from a sample; zero and one are not values, they are identity and absence" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/capsule/index.ts role=demands scope=audit/assertion-is-a-sample shape=decision sig="ed25519:era1:HhW/rPctehDtfI2S1bTC4IfshV5K7s9xJMohJFPIeR34HsPp9Zo0BBpUPQnE7C3jJz5w5DH7P6XLRxiQrYjsAw==" value=present
10
9
  bound-lock/1 about="each block names the law or offer it fixes" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/capsule/index.ts role=demands scope=audit/block-names-its-law shape=decision sig="ed25519:era1:iI4yfQhTLJwYLIlKxgseEhgkCVjpCQp6vIaf91As62lrNosQixngvMEI4KBs3BeTTkCbVpq0lz6btPrSIqycCg==" value=present
11
10
  bound-lock/1 about="a second body across places — a parser, a serve, a descriptor, a form — counted when bound folds the places together" at=policy:capsule/one-body by=owner epoch=1 form=interval measure=bodies-written-twice role=reads scope=audit/bodies-written-twice sig="ed25519:era1:lcBQ55McHFe4acA/4ZFjrdH78JH7dU4deQMjHeu66uLKw+SEDLAYJ66DiMmHlITNTLKt+XAIgEzWj4H0A1CMDQ==" value=0..0
@@ -27,7 +26,7 @@ bound-lock/1 at=witness:a-count-named-for-what-it-counts by=owner epoch=1 form=i
27
26
  bound-lock/1 about="every export resolves in the packed tarball" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=package.json role=demands scope=audit/exports-resolve shape=decision sig="ed25519:era1:tP+mS/hWmL8me+HlohO+WDGTOlt8bdqtX2p6jkGfzcs8q9BoIBEg0TwCWNCd/sPpmdvoSRpKGGK7pRVujzStBg==" value=present
28
27
  bound-lock/1 at=witness:card-shape-lived-in-bound by=owner epoch=1 form=alphabet measure=status needs=src/wire/|src/readers/define.ts|vectors/|samples/yes/ role=demands scope=audit/format-is-closed shape=vector sig="ed25519:era1:g2II784Rw2Go4WT3fgKWxam1d3nA8xpoI8qw4B9hcA7DybvRdxfiiWkd55MIJAjdGVZcj6QJm9gqhTxhP09ZAA==" value=present
29
28
  bound-lock/1 at=witness:a-demand-whose-needs-had-left by=owner epoch=1 form=alphabet measure=status needs=src/wire/claimline.ts|vectors/forms-registry.json|test/forms.test.ts role=demands scope=audit/forms-are-locks-loaded-by-name shape=decision sig="ed25519:era1:1JuIKCXmMm3Wr4bPlkrXix8PtycRYm9o9NEjfGEf04YBxDOCIOPKuU8aly8+jhGTzNQVu678m/FOQX4gTxdZAg==" value=present
30
- bound-lock/1 about="a form carries points(seed, n): the sample every reading over forms uses; no generator lives in test/" at=policy:forms-carry-generators by=owner epoch=1 form=alphabet measure=status needs=src/forms/index.ts|vectors/forms.json role=demands scope=audit/forms-carry-generators shape=decision sig="ed25519:era1:43KGEJQA0QDsWZWQ2sYDKnghtFK31An9wdLsQZznJj6ZbUg1mF/IRs0H7pRfljk5yR5DMWkzT+kIjudi2xlVDA==" value=present
29
+ bound-lock/1 about="a form carries points(seed, n): the sample every reading over forms uses; no generator lives in test/" at=policy:forms/points by=owner epoch=1 form=alphabet measure=status needs=src/forms/index.ts|vectors/forms.json role=demands scope=audit/forms-carry-generators shape=decision sig="ed25519:era1:nuwhbPxebj7U/3c7LZK5nQWBgOS4zGUq8F+16/FjXvQJULcYeovY0n6+TB8oU6Mj3uRg7y+caea4YSrEthdGAw==" value=present
31
30
  bound-lock/1 about="a form mutated three ways (meet as join, order reversed, one law removed) makes violationsIn fire; a form no mutation exposes is one the checker cannot see" at=policy:forms/lattice by=owner epoch=1 form=alphabet measure=status needs=src/forms/index.ts|vectors/forms.json role=demands scope=audit/forms-fail-when-broken shape=decision sig="ed25519:era1:OqRhui6/xTKdt7SH9e+X99HP9Y80yfUl24Lr58wqtubb8KRbL3uIgTgYFsyVGDUlCqiCm0Tcmw8fODlF/Uk5Dg==" value=present
32
31
  bound-lock/1 about="every offered form is a lattice: meet and join obey the axioms on the points its own generator draws" at=policy:forms/lattice by=owner epoch=1 form=alphabet measure=status needs=src/forms/index.ts|vectors/forms.json role=demands scope=audit/forms-obey-lattice-axioms shape=decision sig="ed25519:era1:vUtBjyObaRs5d+xD7pqjYDihv8v3DSOXRbyqPiV9L+ltGRGDN0dHJvbRO1OFtUSTOunMdF8tb5s10VdWRf1JBQ==" value=present
33
32
  bound-lock/1 at=witness:a-need-that-names-a-leaf-that-left by=owner epoch=1 form=alphabet measure=status needs=samples/yes/* role=demands scope=audit/formulas-and-views-are-locks shape=decision sig="ed25519:era1:D2vCnGBvdpQ30z0zf+ckksHiSRphNGluKRgsMuIhvQgTaZH1pwNDLgzR08VqbrWlr0DYD7S/m9WkA+lFpu53Bg==" value=present
@@ -45,7 +44,6 @@ bound-lock/1 about="one module loads vectors and samples" at=witness:a-demand-th
45
44
  bound-lock/1 about="serve lives in topos/src/contract once; a second serve anywhere is bodies-written-twice — counted, it is 1" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/contract/index.ts role=demands scope=audit/one-serve shape=decision sig="ed25519:era1:uexhFuIQtAXL5NTdKyRMrr8vs95q6Y8QuG6IQ8t8+aTurEA05ct3FEAi6ypysiADuS0t4AmBh0i5zmLh6IHfAw==" value=present
46
45
  bound-lock/1 about="every leaf has a reader or a line" at=policy:place/orphans by=owner epoch=1 form=interval measure=orphan-samples role=reads scope=audit/orphans sig="ed25519:era1:Ft8DcgDhV0+etyrvizByDxsOk6b0cGvG4yxmB2YnpxWi5xlncW0DVqZ8ZZRHutwOwWRQoFl6TvUDNYoy9LVTDA==" value=0..0
47
46
  bound-lock/1 about="every line of the place resolves inside it" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/capsule/index.ts role=demands scope=audit/place-is-closed shape=decision sig="ed25519:era1:IVOKvxkjGeA5otF1XISGNkQdmwqGhnnphwmPijFyZctSMaWKYKUAjVHh8aJhbS3HvByrDjD6ZguqE5uHnaCeBg==" value=present
48
- bound-lock/1 about="topos reads the wire and never produces any world's output: no words, markup, figures or arrows; a helper that produces them lives in the world that uses it" at=witness:a-notation-that-did-a-worlds-work by=owner epoch=1 form=interval measure=count role=reads scope=audit/produces-no-text sig="ed25519:era1:pdUc/vNd2y/iATJ95/wcceHAjVAOTqBX2fvuEvPVI7OJTCO0ZX2WNYekSqn2XUhgrPXdWL+z8TfjhXQjDeoJBw==" value=0..0
49
47
  bound-lock/1 about="a reader in topos: zero; readers are capsules" at=policy:notation by=owner epoch=1 form=interval measure=count role=reads scope=audit/reader-modules sig="ed25519:era1:A7Jsv+mvlCOlAdfWyTyBplyDm7HhXAhxY/zZ+bXvn9AD4rOf1QecyxUaxo7kQX68kbKDvxnHydSeawteicZmBw==" value=0..0
50
48
  bound-lock/1 at=witness:synthetic-reader-floor by=owner epoch=1 form=alphabet measure=status needs=src/readers/define.ts|vectors/readers/pure.json|samples/yes/*|samples/no/* role=demands scope=audit/readers-are-pure-transforms sig="ed25519:era1:bju1/wmcD1VjiTCTNYJYq+bFYJXff7Na2g9dhy1x5GxenmhQUwbQ6ypk+M2+8m6kOcsbEOoyQRaVdRK/Sa4gDQ==" value=present
51
49
  bound-lock/1 at=witness:vacuity-walked-the-tree by=owner epoch=1 form=alphabet measure=status needs=src/readers/define.ts|vectors/readers/observe-once.json|samples/yes/* role=demands scope=audit/readers-observe-once shape=decision sig="ed25519:era1:/y4bsE95acU6Xfl/Tur4OxguMdGfDAcnE/a+RkKRDsQWNHQW7Wk72lqJDnxDTQswq71auTv/Djh4I0RlS9hIAA==" value=present
@@ -60,9 +58,9 @@ bound-lock/1 about="a test imports the package by its name" at=witness:a-demand-
60
58
  bound-lock/1 about="a test imports only what an offer carries" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/capsule/index.ts role=demands scope=audit/tests-import-offers shape=decision sig="ed25519:era1:hb561zBPFkccgeWgHzJ4u9r77ffXp6HWqaPmklREo4cptOmP6+w0rsmYBdAWLt1dL9dYcXEgFur/NfaGAWkjDQ==" value=present
61
59
  bound-lock/1 about="every view declares what it reads and what it writes (ViewDescriptor); a view with no descriptor is SHORT" at=witness:a-demand-that-named-a-sample-nobody-wrote by=owner epoch=1 form=alphabet measure=status needs=src/wire/descriptor.ts role=demands scope=audit/views-without-descriptor shape=decision sig="ed25519:era1:CkMnP7H3P4Etyx6lXMh+l8woatSaqRqBvEdL1ND9XvxgpSrSnviEVyxAxgycz4Jrg/6DIF6gNvrEmS1r8D5WAw==" value=present
62
60
  bound-lock/1 about="every field of the wire, its alphabet and its algorithm is a signed line in topos' own lock with an epoch: sig names an algorithm by digest that can be superseded; at carries only wire-level classes (origin, place, receipt, witness, policy) never an instrument's; needs is a region (coordinate prefix, resolution), never a path. A field the lock does not name is refused; a field whose epoch closed is read as history. The wire that reads a 2026 claim in 2076 does so by folding the lock of 2026, not by remembering it." at=witness:three-of-eleven-fields-name-this-era by=owner epoch=1 form=alphabet measure=status needs=src/wire/claimline.ts|vectors/wire/fields.json|samples/yes/|samples/no/ role=demands scope=audit/wire-fields-are-claims shape=vector sig="ed25519:era1:SVcGGvgV0ONPC2n/UdSKgKtW+6pIz/HhnkCVvCsUv8IiWEOsrQeq6HKfloz13yxlKUc14eLpWv8HEE/WjrgKBQ==" value=present
63
- bound-lock/1 about="a value is parsed once, in topos/wire: no pipe, equals, slash or at-sign split, no host order and no number read without its form anywhere else in the notation" at=witness:a-notation-that-did-a-worlds-work by=owner epoch=1 form=interval measure=count role=reads scope=audit/wire-parsed-once sig="ed25519:era1:fLL6nFA0maV5iY3blQrySw5Wy7ph9NoiF2yablSae96x4Fa7xaD3PpcD4j0eaZxYoqT5rIMxAh7xjzOTsni8Cw==" value=0..0
64
61
  bound-lock/1 about="the shape of line each act is: the judge reads which act a line is here and names none in its own code" at=witness:the-judge-named-acts-in-its-own-code by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/acts sig="ed25519:era1:dfHbb4XenfF2ZrwhIoPpMEaoVTg+5JlQKfT7p3ObJFoQB8+xg6OQmNdoG2upjl37YG9m7JQB+DjHqy50PZhwAw==" value="observe:role=writes|withdraw:value=withdraw|sign:reads,interval,hi|require:reads,interval,lo|join:widening,at=witness|refine:@res"
65
62
  bound-lock/1 at=witness:three-of-eleven-fields-name-this-era by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/at-classes sig="ed25519:era1:fTuZKzOnyV7SfVsPkMAdouVYecRwEK759qdytb787YZRfvdk2IfvauQ6sezooMhSCt6B+gZQglrxRddp63heBA==" value=origin|place|receipt|witness|policy
63
+ bound-lock/1 about="the badges the page of every world wears, in this order: each a value of the world, a count or a receipt, expanded at every world as the ships list is; a world that writes its own docs/badges row replaces it for itself alone" at=witness:one-badge-row-signed-once-per-world-with-its-name-in-the-about by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/badges/world sig="ed25519:era1:P4R+IhfNhUmzoqN5JRGrqBsHe4Nutcii+02oPi9pa8l1EQkPxFA5qeAcgAVF4WDEhBpEz4hsuRbhyX1GEtGLAQ==" value=version|license|engines|dependencies|cases|verify|doi
66
64
  bound-lock/1 about="the digest every value of the lock is taken with, and the era it belongs to" at=witness:an-era-named-by-a-digest-nobody-could-read by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/digest-algorithms sig="ed25519:era1:v716f/AadvS6hdtJCgHpb1oB5JixCFr6odNAee4rsUIjF44dd0rqFk1c08L9OlQLhoBuF/hwTiYwquCSHyvMCA==" value=sha256:era1
67
65
  bound-lock/1 about="the kinds of effect a reader or a capsule declares, named once here and never in the notation-s code" at=witness:sql-spelled-in-the-notation by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/effects sig="ed25519:era1:/9gcybN/2/M8P+2VbRNgG1KoJpO1bq4uZOpn4uKMUOfugL4/DrSIOSVPeKqQtg50gqME43IQQTMNwWQkSEGdCg==" value=none|network|sql
68
66
  bound-lock/1 about="the era lines are signed in: every line carries its era in its signature; an era that closes signs nothing new, and what stands under it is signed again by a quorum of the keys it admitted" at=witness:an-era-named-by-a-digest-nobody-could-read by=owner epoch=1 form=alphabet measure=id role=reads scope=audit/wire/era sig="ed25519:era1:h7R4tHEmrMkhTxDXqtb8qXt+0exu49xSg4V5zabDPeP2cKPFFoYFC5DQ7795zVVr/84/yfgjmBNOYwxlgxDpDw==" value=era1
@@ -120,12 +118,10 @@ bound-lock/1 at=witness:a-paper-cited-without-its-reference by=owner epoch=1 for
120
118
  bound-lock/1 at=witness:a-paper-cited-without-its-reference by=owner epoch=1 form=alphabet measure=version role=writes scope=cites/two-sided-constraints sig="ed25519:era1:qSEbCyOsIK9/BZekoJGuzFu/lgC5AlNyTOYDnp1TIw0H9nkpunX8raXwVxdAIR656oEJQ9o5EShd+U1Up+uMBQ==" value=1.0.0
121
119
  bound-lock/1 at=witness:a-paper-cited-without-its-reference by=owner epoch=1 form=alphabet measure=year role=writes scope=cites/two-sided-constraints sig="ed25519:era1:OxdgvDENDW4oz/gSlHU+eP7GNi7obHDNEV7koY6wAVTfW5J90lmk0QEAL18lWVK2QjMUpZZ4IhCfxn3O0BWCCQ==" value=2026
122
120
  bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/1-round-trips sig="ed25519:era1:YMAlIwf0TI/fe06miY531zPwQ9JwFsKdlgCDCCWZde0llQlGT+vobsfS7qjz+pOVSZKI/cDCv6gKBdChveIPAg==" value="corpus=vector/spec/*"
123
- bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/2-reads-once sig="ed25519:era1:JJABiZ1PiXFwmAGRzzBa9D/M5JKfCzFlXBAjVWnp54HZPkxuO+w9JTNMDMc46wjUX59DgGNjSv3elw4w3AULCw==" value="parsed=audit/wire-parsed-once"
124
- bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/3-knows-no-world sig="ed25519:era1:1PlCUToJCL13G5+26IIytF8IYKCwMKm/jU64X0GJ6xAGmlcDm+LrZHkXr6mfh/Bo79cibtW4oQird9H7OcCNCA==" value="text=audit/produces-no-text"
125
- bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/4-writes-no-order sig="ed25519:era1:BcR9irhSqPfNEI+z1Cxt3MS+Ep/fVbPteSGuUiCjn2bGbR5c1y0wy8OXtdzqGLc+qJ8EebN92u3KteBFH08VAw==" value="orders=audit/algebra-is-imported"
121
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/2-reads-once sig="ed25519:era1:J720FrLZ397YPFf8lnD4AiFF1yyQH4Tx3z5lXPVcbBD5qwkiu/Of9q9Md4QrFIQYhAXuaOZQ4jCQbIrzGVCCBQ==" value="parsed=source/*/src/*/*"
122
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/3-knows-no-world sig="ed25519:era1:ofqnMqgIoQzpq67pDbvBWDdmY29LY0c+loNUGMooQYpryTQfrAWPjuZDbLb2hSY5+Zern2GQjEUqmjBU10yWCQ==" value="text=source/text/**"
123
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=alphabet measure=id needs=receipts.bound role=writes scope=claims/4-writes-no-order sig="ed25519:era1:8RVOUZhREIDOGDVt1nsVoB3B6z83Jp/uj0JOkSNRYbegDqrKok/3AVZeyYoh8fkr7TROC5vxv2AGONy1s/n7Dg==" value="orders=source/spans/**"
126
124
  bound-lock/1 at=policy:no-runtime by=owner epoch=1 form=alphabet measure=id role=reads scope=comment/src/** sig="ed25519:era1:opptdL989ZVZrSkTpxehj/9UDV9vtVLA+unxbOHgES+J0p/eK2QJVTAAmqT9jD5f5pw44gcnDmNi3dRKnByvDA==" value=not:fs|path|process|Date|fetch|wasm|node|typescript
127
- bound-lock/1 at=policy:code/comments by=owner epoch=1 form=interval measure=per-file role=reads scope=comments/*/src/** sig="ed25519:era1:tWjT3FGWMf8z30XWk8NP6aBZma8QgoLyxrEEnYf7SKQ4EjGSi3irSDKnZlw4E4fVdKjRRYJhNTcUvzYNE75lBg==" value=0..3
128
- bound-lock/1 at=policy:code/concept by=owner epoch=1 form=interval measure=count role=reads scope=concept/*/src/** sig="ed25519:era1:A6Z3Ie9bysIQ+wFlxxe9Pf/1ivtMTf2fHZzILwp8i6R4xTVotdNBbgBdsf228RpWhNDsAoCG0rXNhlQj62bjAQ==" value=1..1
129
125
  bound-lock/1 at=policy:one-dep by=owner epoch=1 form=alphabet measure=id role=reads scope=dep/src/** sig="ed25519:era1:xNQtIOhl29ZGHRrHSY1Eqlv/botGCfoqT+JhWjw5D7cJ4VhfRjJ0zxhtUILphrhyaLW5DmMikslQZUj3v+/SBQ==" value=obligations
130
126
  bound-lock/1 at=witness:a-range-below-the-release-its-notation-was-packed-against by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=dependencies shape=package.json sig="ed25519:era1:XVvHsXGmaM4dkKYDsdBPfCi3CQQ7lpUWzi15eMD2fEDDmV2FVhaZsTE+T35EVXF6fRyKIkk1kDIIY/vVCXE6CA==" value=@lapxo/obligations@^0.3.5
131
127
  bound-lock/1 about="what building topos needs and a consumer never installs: the compiler that built the attested dist, pinned by the lockfile it renders" at=witness:a-build-that-named-no-compiler by=owner epoch=1 form=alphabet measure=id role=writes scope=devDependencies shape=package.json sig="ed25519:era1:8ElVGEhykiiBceSY5aC7oS+I8vlL7t/US9w57thr1xRcznmklRKVBIl8hVBvVtk08G0OgqV89L2ohIXbwOvmBw==" value=typescript@^5.9.3
@@ -149,11 +145,42 @@ bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alpha
149
145
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=exports/forms shape=package.json sig="ed25519:era1:cD3F8xun4tGJfbxEaZAtTaKWDyooaUYX7zLz8E+RBx6Xquw7Lg7L1sEvNKGqV3jk6Wo45YKCSvvj8sQkx2yvBg==" value=dist/forms/index
150
146
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=exports/readers shape=package.json sig="ed25519:era1:lMWRNbcFMTTTVHYOAmb07aSsdCgLYgjVXbUdff2vA3mqZMDI6oDN4N/eBW5kWWDGDnNLq1PNrwKnzsnl/ZYRAw==" value=dist/readers/index
151
147
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=exports/wire shape=package.json sig="ed25519:era1:D/M5g5TmlPAof0mVoo9dvsL6khgHyRY8UBhKRNr5q9+0vHh/d0XkHeWMlwk/2sKSqXzoevUelYuwQnfeqSlPBQ==" value=dist/wire/index
148
+ bound-lock/1 about="the states a fold figure colours, in the order it draws them: a claim alone, the claims that meet, the set one claim falls out of" at=witness:a-fold-that-named-no-colours-of-its-own by=owner epoch=1 form=alphabet measure=id role=writes scope=form/figure/fold sig="ed25519:era1:mfP1jJVR7mjkyR5OFeSDh3SSzNvd9jnHjSJm2X/g2gMRHb8THqnDSekZJneSTgYVfHaOgHb3cVMQ1XiFBwDcCA==" value=REQUIRED|FREE|CONFLICT
152
149
  bound-lock/1 about="the fields a figure of one line labels, in the order it draws them" at=witness:a-figure-drawn-from-what-a-place-ships by=owner epoch=1 form=alphabet measure=id role=writes scope=form/figure/line sig="ed25519:era1:eonwXkd2Vm8Zj4aNrRtphKWa2uXOVdeNAMilslJ1zVHHijgO+LkmBTBWS5VAS+O4lo51xOsd6FYMkHJQOGRLBw==" value=scope|role|measure|form|value|at
153
150
  bound-lock/1 about="a formula renders as text, as latex or as mathml; the notation writes text, and a law with no formula is left out of it and owed in PROGRAMS" at=witness:a-law-with-no-formula-to-write-it-in by=owner epoch=1 form=alphabet measure=id role=writes scope=form/formula sig="ed25519:era1:ffe4EmUQYWR4UDrb905hBPJhUwnE1sF2gg32hbpbKxkxCTRRJ9hASHHLlu3DPaiIfNxjaqXx5T2dT+msQEnxAQ==" value=text|latex|mathml
151
+ bound-lock/1 about="the most lines an example shows at a glance" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/page/example sig="ed25519:era1:7nf9xL7kOUvFwgSHWaJv0IdskSGxaIQo2ENKoKonSz4p//WpjDslNzUNAd8gA+v+U72jWPd4iDuI9rxta3p0Aw==" value=15
152
+ bound-lock/1 about="the resolution a readme shows its example at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/page/learn sig="ed25519:era1:xj3VZz85esgAM+TQStx5V7UfhMoMde66qajVO0kT5JlcHVevla81BwzFL5IU1iaueIs2l1RcrptVRBWgxxPHDg==" value=1
153
+ bound-lock/1 about="the resolution a page states each block whole at" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/page/statement sig="ed25519:era1:f1PKzkXrUoc+/kvyhjUfUK4NN/pJCsGMtq45ylC8Vf6m2JthkgMM3rt15fQtigXAf7VsiAf0acro0DC68ndtAA==" value=3
154
+ bound-lock/1 about="the resolution a page shows every line whole at, as the reference does" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/page/whole sig="ed25519:era1:bDh/9lVtIUAIdoAtDYglTYlY004OIiIoVg0TSu05iPiSXNFqvjnSdINJBXUjMEXH9/eOnbT/xk7QsPJwLpzHAA==" value=8
154
155
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/heading sig="ed25519:era1:TrdAuPXdGtfSL9MJmt9pyrgwMFi0cEp0vUBX1CnubNQCmFbhjc2HwH/1WlOpio/zQTMjnUmxrVwg5BBSMOCLBw==" value=capital
155
156
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/list sig="ed25519:era1:mYlahkjnX+UClUTQLrqQvsckuau1DQTMDI37BESjv0HVcO2U8vmKPKnhRJDIAVj9wPjZhvHm1sfjRFA8JHmaAw==" value=", | and "
156
157
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/numbers sig="ed25519:era1:OgIWtBxD2hY6jXeupFV1Fvj4D82toGpb100VaHw9OAevsBNuFY9EGpRMbaiV/dV6b7hu7yof/uUlq6u7BeMWBA==" value=no|one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve
158
+ bound-lock/1 about=cases at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/cases sig="ed25519:era1:wriykv+qzTpZTu85sVwpt7S6PXx5lo8NMLt1sI/76GV3QQ9OZJC35E8SKIBF/y0dIWZ3FvK3KWrLeBT7W2GnCg==" value=lock
159
+ bound-lock/1 about=dependencies at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/dependencies sig="ed25519:era1:+mW9uG1pi1SAZOFqeKOk372oYhoLUgU3T/Vop+WBY4BP8WZUF04pD/XeU6qtaP2LonG1PN8MagP98GfiCl23AA==" value=lock
160
+ bound-lock/1 about=node at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/engines sig="ed25519:era1:RY6aJWNp1WmtIaxLK9DuXQzYrQ1Suz6eXcXjmpWq37s+l5N/M0t9vTt/5YfSngBYtnpkJ60Y0G6kx3JKtYINAA==" value=lock
161
+ bound-lock/1 about="{count} hold" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/held sig="ed25519:era1:0zAsQRuJ/mcAwx7T3E42pM1a4LEPvZQNhdSgs5oWFsEuCFUyXr7FHaImBtOpAYOAsQZDEk14kWgqfkiRM62vCQ==" value=lock
162
+ bound-lock/1 about=license at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/license sig="ed25519:era1:zm8qXZOAHfSg/1cL1wP8x14nYlbDCV91O2T9CUDiLOOtptP39UbsdYLtehUwSaWQAmqzL3KxmhTJKjcw+nEWDw==" value=lock
163
+ bound-lock/1 about=verify at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/verify sig="ed25519:era1:PL5DMQQTdwMn9RDC5BOGfwhvmEMn0t5sBLhrIEB2H66vkN6LzWH1m4eh6L4qx0aDGEzEIgemPnc+LSeEGKP1BQ==" value=lock
164
+ bound-lock/1 about=version at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/badge/version sig="ed25519:era1:bbAU7WleYqy6PhYg09m0z0SvXoEmWm5Fby3Ydz99Voqy5D+FdQrk9wIeFDg7W/ed2KwqLOQcJiNnxW0FkpjABA==" value=lock
165
+ bound-lock/1 about="Cite it as {name}." at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/cff/name sig="ed25519:era1:kOOEDCspTiobFuLc3IfAAvos46g/bekFKBCE/W36Q61n5eOOCphVcgC0TQGC8QGjct64SlB0MXTDMkKICUymAw==" value=lock
166
+ bound-lock/1 about="{glyph} `{check}`" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/check/command sig="ed25519:era1:FL8YuUhVKLQd5x33IghH7V+BAoACoaYYAX2iuVGbxNVDTzA9H0rgT2yJc5deMnzwVcvfsDR77X5ZpeRI7kHGCg==" value=lock
167
+ bound-lock/1 about=Check at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/check/heading sig="ed25519:era1:uzFBVkThgWELbZCE5ANxtwuGL6S59dyBaFkJjO/B0A1BRALjHH5Y5K5ySYxae4AJRaE5PSKi/HxLxbKmL+F3Ag==" value=lock
168
+ bound-lock/1 about="{glyph} {count} cases hold" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/check/held sig="ed25519:era1:yD7yC+Y51jUUcTkNVuuf5WGxg3E608a24ViXoVYygttNCAgt4o5msTPrLVqh1R/3H6/8FwB4JOq49GFq0OZfDw==" value=lock
169
+ bound-lock/1 about="Clone, `{check}`. A leaf that differs from what its lines render is the contribution: send it with the lines it was handed.\nNothing else is asked. Lines land through the fold, never by hand; a page and the lock disagree, the lock is right." at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/contributing sig="ed25519:era1:QzGdQibvQZvhPDEjF++G60dyqnYqKlSf04ok4pZJoeVXvroDwxm3WsMKiE3beGBfO3hYjpRPI8qTE+/bwGU4Bw==" value=lock
170
+ bound-lock/1 about=Contributing at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/guide/heading sig="ed25519:era1:loC47aad+f7vJYg6Vkd16FdarxKfX5LP/ZazveZI9MdyRQZZN4yTZiyzAgDHRSB0JbfBXgp6oafBJrFprGQ6CA==" value=lock
171
+ bound-lock/1 about="the check command, which is owed" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/guide/owed sig="ed25519:era1:kSLSW0I61XmdQ7KTqQyyMG+47yGdWsvO9OxZMJrJeAbaBeFh+PRE0/FRu66Dqnmkx6ge78VH4vmHFQbybIg7AA==" value=lock
172
+ bound-lock/1 about="{version}, as its lock holds it" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/notes sig="ed25519:era1:aOMt1w0Ho8wi3o674ti26tQBVRSX5tAlOeL6VdIm9vZ2scvDqDghZdXNg/kOu3UWb4wTa7d9Fn+970e0q5rrAQ==" value=lock
173
+ bound-lock/1 about="publish the version once, by the trusted publisher" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/publish sig="ed25519:era1:iczjNw6igu80vSkByJ9zG4fhBOPJPZCW3OZXkmn/vFisvzcwjJ5wDoM9eD9yrWylDEReU4hElBpROrof9BJaCA==" value=lock
174
+ bound-lock/1 about="{name}@{version} is published" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/published sig="ed25519:era1:F08L8V+cAKtb6VftwKbtMmS3E1AjRZrHxmyUXn9yTNn8O9tPeAT6O37tgGglSSefsy6/E5udbp5ERIhS1vNmCg==" value=lock
175
+ bound-lock/1 about="release the version with its tarball, once" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/release sig="ed25519:era1:wUDrv3Sao/+N5N46DTAswmCLzZ24Bd1Lg4V67xHlL0E9pd9so8NArDecqO1ngwOhJduH0MDvohOyKPQUC9t3Bg==" value=lock
176
+ bound-lock/1 about="{version} is released" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/released sig="ed25519:era1:jSkEx96WdAwdEPEd3TZCe7yVsY/48RHAAz0JQR0DPwcAqhAmIFeUWLWn4kHw79By1VlDcx96TiSb/fXtzAu4Bg==" value=lock
177
+ bound-lock/1 about="tag the version the manifest names, once" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/tag sig="ed25519:era1:qvkyLvmrbFOuO/bNX8WvKmGcDlv0OIyw81BuUE07vzdQ13QW0ASZ8lwgXbSKKTLl4CpLM8rStTEPn2Nf+TuxAg==" value=lock
178
+ bound-lock/1 about="{version} is tagged" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pipeline/tagged sig="ed25519:era1:HcrEYuRoTW+bUAd5FMKd7hG2vveNCTmvZ1joKT5H+mtZbXdpock2VfxkduQaC89xdSO2RrHPRO/GD3G46CAdBA==" value=lock
179
+ bound-lock/1 about=Pointers at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/pointers/heading sig="ed25519:era1:/0JzuGJNz6HGp0GV7jCbjJC0/39IaZcwpv0lWr25vCgtUg3J/vNhG5TY0rs92QGb7ZG3JG75E2mSqkfa1wVoBw==" value=lock
180
+ bound-lock/1 about=Reference at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/regions/heading sig="ed25519:era1:jZyNcnE39raLsdD2BMEHxvP8fV1Yfk9Neqp8/2G/kTbEy3SIv3WV6YanyVCY88p1sofKDlfs8oCik4SHD2e/Aw==" value=lock
181
+ bound-lock/1 about="{count} regions, each read off the lines its descriptor declares and nothing else; it reaches {effects} beyond them." at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/regions/lead sig="ed25519:era1:pSUX9xRmZUxbvT4xUBeJ0jceGpjlL/ieTKlUwsNCnEzKu6HAWeOIGaUQwXc46/eFb3M9JRXG1QxV5i7wPQZ5Dw==" value=lock
182
+ bound-lock/1 about="its leaf" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/regions/leaf sig="ed25519:era1:o1FiTEfPgkf93LzJYDNrqwkjYVjeHYFIr7xHt55niqC6AUdybdlLKiQgiIfeDm8Q+OlbySU5/9Ijz0Bih3wECg==" value=lock
183
+ bound-lock/1 about="| region | reads | writes |" at=witness:a-page-word-copied-into-every-world by=owner epoch=1 form=alphabet measure=text role=writes scope=form/prose/en/page/regions/table sig="ed25519:era1:nucRZVSKywH5ulBGHRwxJo9JffCc1XI7Af1Gu1bwjMFLZGpG2TWAS+GKYCXf3V5ZMuAGMvcEt7Sarq/oH/zADQ==" value=lock
157
184
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/sentence sig="ed25519:era1:4OPffYwxjvVLTVP9UcWovK5OO9vWPZt2wbdPD6mJnTK+mCzk6CdnuN+X9CmWsuCJsKM0so6QYfohS8H0DCyoCg==" value=capital|period
158
185
  bound-lock/1 about="where a line of a block is cut into its steps, when a region is read below its full resolution" at=witness:a-resolution-cut-at-a-literal by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/separator sig="ed25519:era1:sjY8wQWHUA16lshUPNGlQ2I5XkbJQiKvEQt6QOEotHAnO+YIQQqKBmtlFnoo1yfxe9DmbRbFV3HcD/TtHmI6Bw==" value=" · "
159
186
  bound-lock/1 at=witness:a-state-said-as-two-booleans by=owner epoch=1 form=alphabet measure=id role=writes scope=form/prose/en/state/CONFLICT sig="ed25519:era1:c9nk+0QNXJeC+cZR7y67vGQqdVCG5zQAZAA62vQGCQneR01bBsEvM4CwmxTaEDkrN3HOFyr9rFGXjb62Z3omAQ==" value="its origins are apart"
@@ -165,15 +192,101 @@ bound-lock/1 about="the prefix node gives a host module" at=witness:a-runtime-on
165
192
  bound-lock/1 about="the file node starts a capsule from" at=witness:a-runtime-only-the-fixtures-held by=owner epoch=1 form=alphabet measure=id role=writes scope=form/runtime/node/entry sig="ed25519:era1:a1/KZeltu7foBTOLzJcBZpEasWl+auLAvxGY9opa3XvDZHRzoFVC33gk6jWgbsG/2YgO9+ACOnVvIikzSB3iBw==" value=src/index.ts
166
193
  bound-lock/1 about="the file that names a capsule of node as a package" at=witness:a-runtime-only-the-fixtures-held by=owner epoch=1 form=alphabet measure=id role=writes scope=form/runtime/node/manifest sig="ed25519:era1:J98W6o/yg3y1kxUS6hbSKGXjEgoV4aNQsed1PcvstZaBXxEU/IznwjnlsaaHJOqOQq3mGYxznCbZoB1l2deIDQ==" value=package.json
167
194
  bound-lock/1 about="where a capsule of node keeps its regions, one file each" at=witness:a-runtime-only-the-fixtures-held by=owner epoch=1 form=alphabet measure=id role=writes scope=form/runtime/node/regions sig="ed25519:era1:ikZihvFVAeyIUA4dBIMWwd27i7T5zj/EkFkiQstOQVwrkRuHYoE36VgUfM44ZHYFSHmGyeqwejE+O8qNCezWDQ==" value=src/regions/
195
+ bound-lock/1 about="the command node runs an example with, its file in place of {at}" at=witness:a-readme-that-dumped-its-example by=owner epoch=1 form=alphabet measure=id role=writes scope=form/runtime/node/run sig="ed25519:era1:ZZBQzeAjEaAEIhuD4l651R8VOo0siW/hVOwnNDy74gznSietQRqrYlWrtLHOu4cRxeBj71QNh4E42hGqsMFtAA==" value="node {at}"
168
196
  bound-lock/1 about="what node runs of a capsule" at=witness:a-runtime-only-the-fixtures-held by=owner epoch=1 form=alphabet measure=id role=writes scope=form/runtime/node/source sig="ed25519:era1:F2VMmoU031Jate07SV4Jy85scht3T40Uf74befysurVmeAgW3eT40KycxjPMaKYjcrcxe3jCqbisJw8tNtPYAA==" value=src/**
197
+ bound-lock/1 about="where a figure sits on its page" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/align/figure sig="ed25519:era1:FifcYi/8558uKGkIO6ALeZ3jCfVTC3GBCv5i4DmHibnRDgDqq9pbRmg6b7S/jUD1KRgajH0uAWNdHOUh4AtYAA==" value=center
198
+ bound-lock/1 about="the geometry of a mark: apart" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/bond/apart sig="ed25519:era1:hq7ZgbPabBu22bj/ehM8Pq/NRhCUFHH14Zy2ycdck6PUf+cdBK5Qri9NRA9+JewoePZJDrG3X8gy6EEfFL1wBA==" value=6
199
+ bound-lock/1 about="where the arcs of the bond stand across its mark, as a share of its width" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/bond/axis sig="ed25519:era1:ZgSpYO+mfSnSUfSpVKyibPXin9ejCs8xSO5ukHN33Q8SJud19CG/Ho+0fh0kAGIzlsGm47r/a7eDl4lt0eUwCw==" value=0.5
200
+ bound-lock/1 about="the geometry of a mark: bottom" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/bond/bottom sig="ed25519:era1:m0mfcP4fwLr6ii6RRMuSjMsYYzHRaQtBX14v6T6yO7wTU5D2xDxlgweCgVHSK1Fvey074WimN3gg+TfWsXFLBA==" value=46.42
201
+ bound-lock/1 about="the geometry of a mark: r" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/bond/r sig="ed25519:era1:h2sIjR8KePHNiv7lKEstFkZxwEZjxInJ0+ajBRZxuVf+lNWW0p2jKn9J4EuVkz6H3vwa2DFuzUp3plfTgotaCg==" value=17
202
+ bound-lock/1 about="the geometry of a mark: top" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/bond/top sig="ed25519:era1:aUOpQjdo8uDBb/WqQs2HOqf5n/zuem9yv0q87Rz9GCOkrWUuTAHLwG+Ya1mLAgeIeYpvcfBra92Gn1jcNZgsDQ==" value=17.58
203
+ bound-lock/1 about="the colour of a set one claim falls out of" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/CONFLICT sig="ed25519:era1:XVHkVDjPihi65GFj3cywmUOwzJlEdu/h6YRIdSa0jKmK5375aJVIjT+m54MO2QMj2mL2+ktLkmp15B5nGomCAA==" value=#8250df
204
+ bound-lock/1 about="the colour of what is refused" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/FORBIDDEN sig="ed25519:era1:DmHycep5lVvBoAR2GeM0zeBNq69kfumSD+ZOR4eTEyIBYqH1wxNVKMDD17AO6yeheuut+R7Hueju0xcznNAaAA==" value=#cf222e
205
+ bound-lock/1 about="the colour of a cell whose origins meet" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/FREE sig="ed25519:era1:VwcjNe/ugeqMoAGTtpl5rnY5cWiZCLfrH6qKq8h2MPDuxKYsunPDehrHRo02rNE6VJB/D28nMH5hcX4BTW/cCQ==" value=#2da44e
206
+ bound-lock/1 about="the colour of a claim alone" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/REQUIRED sig="ed25519:era1:ZNjFnf9vZ2f/lkPw1viC5Xmep2lZUoldnD78JpCnZaqiUJ7O/y5iKMKRxCqeI1IcpIfeu7MRpFzW6V4vghb9CA==" value=#8c959f
207
+ bound-lock/1 about="the colour text is written in" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/text sig="ed25519:era1:ZXtB/AUOLh0dxs13bhNuwejUbylabgJEMdkOEzmHADPayXSuBYyy3qJNcAlA3G3D+Jn8cQFaQSOWhr6SJD3ZDw==" value=#59636e
208
+ bound-lock/1 about="the colour text is written in on a dark page" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/text-dark sig="ed25519:era1:8vChBUBWvb8G0UZNe8HIko4eLiXLR+uQ5f4nX/lhTG4TWJTPqRXVd+xRVGBZwrL14boa/E64k2Yj5QhT/JdFAA==" value=#9198a1
209
+ bound-lock/1 about="the colour text is written in on a filled node" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/colour/text-on sig="ed25519:era1:tdz5seFNI4jAYvEBN0eNUexyADeJwIRKfvM0qi35dP109pEps/Ope2XXO9GeOTwQluYwno1mPS6huDIajLHbDA==" value=#ffffff
210
+ bound-lock/1 about="the spacing and timing of a fold: bar" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/bar sig="ed25519:era1:NFIjG9b/w6IFcZVAn2Pm4wniJMNdJVAQCscPBJDyY68MEf3/xZsURzT8QgC6WB/AzzgkNtCvgTiJmd5ez0O1DQ==" value=18
211
+ bound-lock/1 about="the spacing and timing of a fold: fall" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/fall sig="ed25519:era1:sCEZs/aMK71D5UN4Ets8d79cUcmb/X40wflV1A1uWSywrG0MPNdhxtK9h5+1HmLHS9DpQsdA9/je44tUkeb7Ag==" value=1.6
212
+ bound-lock/1 about="the spacing and timing of a fold: gap" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/gap sig="ed25519:era1:SRKe0dSS143e2SAkw76OnfLBvCT3hUjOWZKPDOlrEh+9LkzFuccPQK1VrGL/zEUfIdZAQYqGSaHmLI6qW3WMBA==" value=16
213
+ bound-lock/1 about="the spacing and timing of a fold: margin" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/margin sig="ed25519:era1:9/VccTAG+0ntP9nmJReilp8AjsQwtzAEY6i2OWmE4qyaSOTXgAcq1abt0zpmig3AFxb0efK8nqDugcxKI4ieDA==" value=40
214
+ bound-lock/1 about="the spacing and timing of a fold: meet" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/meet sig="ed25519:era1:Bseo2O9Qub9xkKOWK2RSxYzau93ZdZWOUIBZAN4keHtz7x+fyKHIioDBBEZmOH88CwgqYWubP8Tm92D6B9/QDw==" value=1.2
215
+ bound-lock/1 about="the spacing and timing of a fold: pad" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/pad sig="ed25519:era1:XTdXIFXzhx9ab9ZiW8BkXT5sMgBrGyjrKUvERYLJQs/TugEEEm3gLNgSkWj940I0n2xlDKk6wqHh9NHehqSfCQ==" value=1
216
+ bound-lock/1 about="the spacing and timing of a fold: radius" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/radius sig="ed25519:era1:j3Ew0ytfmc3xTsJRG2ZBfKvhHgz22s1V9+ocvVolPZ3/oJxc45jkiGUa0xRatfPDgv4wXK32T9ERUaLPf8DLAg==" value=4
217
+ bound-lock/1 about="the spacing and timing of a fold: row" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/row sig="ed25519:era1:d0OnQrtbYyqLa7G2XXrWkSnaPvBB6slHlpKC3rZM2UYatt1KVKjFNj5SXK7Y4wwmYrJZK1jRG4P8AhlbbO9hCA==" value=28
218
+ bound-lock/1 about="the spacing and timing of a fold: say" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/say sig="ed25519:era1:uhISd2sIL38eHYN5Vni9igF/eXVCd8hOD3z5J+qAjpdtS3nahFam1cTVvb/br3t2186JsbjOxk1rqkjcdFM2Cg==" value=24
219
+ bound-lock/1 about="the spacing and timing of a fold: set" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/set sig="ed25519:era1:cdygiiuwdvZXiCRk7MgmKnp+1Uzxz8ci+LM+w2mAAVYS1cnvglk4PrGceeOuC/PX61Tq6IdZgOGTHPTu976BAA==" value=2.4
220
+ bound-lock/1 about="the spacing and timing of a fold: slide" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/slide sig="ed25519:era1:9fRIlg6sVLaFDxSiLiA8DCRa100IWLpSA7T9yTaRR22t6pdFW9mCnR1vf1kEEryLIomMS5HOFihb0l3DQC3NAA==" value=48
221
+ bound-lock/1 about="the spacing and timing of a fold: speak" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/speak sig="ed25519:era1:3Oeusuj+fbK5CXVloDs4BnsiQNqS6hMpcHnG0+XcQZrjeVIbl/zG7rLtmN5TXbJ1NTip6tZ2xLJdVnfNtrrABg==" value=1.4
222
+ bound-lock/1 about="the spacing and timing of a fold: top" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/top sig="ed25519:era1:gW964V7YghEHHfE0nIGPzt6BpD+bjy8vjTwI5oLBQekFXFzk73onRW3yMVTx2WkqyH+PnJbSV5rq0nAdcD7MBg==" value=8
223
+ bound-lock/1 about="the spacing and timing of a fold: turn" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/fold/turn sig="ed25519:era1:giQoKWCHYf/5qdWPP3jfVs/De3rF0aiuESmBvXODqTXeuZ6QL+f/I5QQcw1v0Pz936mL/25BtGCYOyyGezXXDg==" value=0.4
224
+ bound-lock/1 about="the font lines of the wire are drawn in" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/font/code sig="ed25519:era1:Km8tYoqgLbPE4c/mv/9CASgYC4/G0MZdb5KDJMF0gsMohinxBg6NSCtmSEu+Tdur4SH6A+LVQaXJctykVsFyCQ==" value=ui-monospace,SFMono-Regular,Menlo,monospace
225
+ bound-lock/1 about="the font words are drawn in" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/font/text sig="ed25519:era1:kzvfuTIpWWZMcPCDZ2wyEbndZcB3c3u3OXQK4ZXyOgzMH+1L4vQE/dm2QtHLqtLCxucRCmg8INqDtfKbC+PhBA==" value="ui-sans-serif,-apple-system,\"Segoe UI\",Helvetica,Arial,sans-serif"
226
+ bound-lock/1 about="the mark of a set one claim falls out of" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/glyph/CONFLICT sig="ed25519:era1:v3LP/jrZk1xdHdN0LrFZu7tQtYgWMYxwghpMYlPYzzfdSM+lfrQm+LiofDYd8x5sxFB7GgaXvELqEEQ39LQtAQ==" value=⋔
227
+ bound-lock/1 about="the mark of what is refused" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/glyph/FORBIDDEN sig="ed25519:era1:B7tjHYd6Nat18EKvV5QfBcRcZFkjO+wNInLPz+20EMUjoWU8HjRcR7fnXldFSgvbDXx/0miA0/Evc7CI2PcTCw==" value=✕
228
+ bound-lock/1 about="the mark of a cell whose origins meet" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/glyph/FREE sig="ed25519:era1:E5zWlhQaPdtYUYMqAo8TXllOGnI2oBL4rHqCddAbAnlJKkX9bPoV/BXZBx4KsMoaAKI/yWNDQd9wCaP0dZEuDw==" value=●
229
+ bound-lock/1 about="the mark of a claim alone" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/glyph/REQUIRED sig="ed25519:era1:4sY3SYB+CdVln33NOvwdcYq2YKwGt27xxk99gm+Eo3sIo0G2hQ/MoUU2lkPXZAMe79GVnkhZ+MMw4yWYXz6FCw==" value=○
230
+ bound-lock/1 about="the spaces a JSON page indents each level by" at=witness:a-json-indent-spelled-in-code by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/json/indent sig="ed25519:era1:qY8vCN2OAMOSsPqLFLqqXTr8C+sJ7mNywK58kTr102HhMII6UmiBzdH7q+x0X2un389+S7wJoP7rS3kWGLw9Dg==" value=2
231
+ bound-lock/1 about="the spacing of a line drawn field by field: first" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/line/first sig="ed25519:era1:eGiEbt+BSTMN5RyWF1E4VBnF6KO4USrWQPgePWqwu5I9wlvpfmkUp+VxWKxkwbWvgJsfugHXSW+tvMidKENwBg==" value=30
232
+ bound-lock/1 about="the spacing of a line drawn field by field: label" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/line/label sig="ed25519:era1:r74/O2ojj1c1h+4DGkeSt3wmEIL0ssY1ewKglIIZSXLfDpv3KZfHdJMFg89/CEWsbd3uzRHhXn0sVi157PndDA==" value=104
233
+ bound-lock/1 about="the spacing of a line drawn field by field: row" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/line/row sig="ed25519:era1:yFCpI8iF7wBKkIjlyHPbN8YgdIPg9TJ7adONnz3cGK40YW1P1K/CrTeTq3i1vQ+QuEMozL25fVS1zA5vnR3CDA==" value=26
234
+ bound-lock/1 about="the spacing of a line drawn field by field: top" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/line/top sig="ed25519:era1:9xZHzeggOASwIxCpvMmX+lYYgar9C6ttC68jg9jAD8ApBnBFmXk/ZQggi4ETBVYLaRVy4JltWm/SzsYcHnbEAw==" value=20
235
+ bound-lock/1 about="the spacing of a line drawn field by field: value" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/line/value sig="ed25519:era1:rQQf71XbVq2Wx4mMh/lUDeBdgiLDJgd4gYJUUyZubpbY1GkzGbwogv3KQyuIjWxwAnoYo7IRgi5ghB5BnXUYCw==" value=116
236
+ bound-lock/1 about="the spacing and timing of ranges: axis" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/axis sig="ed25519:era1:gfwuZ+qm5IS7RGWDAgXNv29jiCaucia4UdZD2tIb6A8FMK437BKBThAth26MbqXlzlhp5HFnCh4cvRSxHxzUBw==" value=6
237
+ bound-lock/1 about="the spacing and timing of ranges: bar" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/bar sig="ed25519:era1:fcjVpIG0E9HnXNZA0wApCz798k0qCLDAbGy1NMTaubZDMwu5jczliSd78GmOzhX6xOQIcF9+zlXOSC+C/NQRCw==" value=18
238
+ bound-lock/1 about="the spacing and timing of ranges: base" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/base sig="ed25519:era1:eqncDmLudm3e/W3efTRcznAdZ27115GnKK8lAfFaHsMrsXsc/sMZF+NlmkHw3F/w5Us1ZxBmuWIQbwPkYFxzCw==" value=14
239
+ bound-lock/1 about="the spacing and timing of ranges: beat" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/beat sig="ed25519:era1:1qCxZoIl4+FLRCeduYwvRx4cmauDnP7W1b20qsP1ALxxhuMqoUPT8T5qufHFfrPRuVghV7Jnn/+pk7NTO+lQCw==" value=1.2
240
+ bound-lock/1 about="the spacing and timing of ranges: label" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/label sig="ed25519:era1:CmytaaE9LnP5O2GKkLg0gCV02R8OCSnZ1tnU7pfvoMt1QzYZAtX85FomV/b+98H3TXHhuW3PDqqowyeaIDUnCA==" value=14
241
+ bound-lock/1 about="the spacing and timing of ranges: left" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/left sig="ed25519:era1:VktMSrYm1ChmTVLGvf1NoNYoKTbyl7tM4eHa3Psi1GOuZCnWH/G484u/dbIfd7Eh0pRLFtANONholbLesy/3CQ==" value=96
242
+ bound-lock/1 about="the spacing and timing of ranges: pad" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/pad sig="ed25519:era1:ebtGMQ0YjbY3K10xI9RJZWeE1DuRMPD2ZW8jcI126laoisKNQY7Z/By4OSCOXzXgoyNw1X8GhoUfyKmAGuWFDQ==" value=1
243
+ bound-lock/1 about="the spacing and timing of ranges: pole" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/pole sig="ed25519:era1:8QMjztE3j/YgeFuTNVjpokiVGDHPjZWvbf2CCiGgX776I8Cm9ENrg4YaZ1QGNniSS5KqKhF+nO18E+tM/LvNBg==" value=42
244
+ bound-lock/1 about="the spacing and timing of ranges: poles" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/poles sig="ed25519:era1:z/kWi5eS6cCoiW8gmUVD0YeO+cvKtM1LKKJglNafyBwAdOdwW9xeKH9If5u2eTdXNi9mG5nOEXJYdqj4JlmVAw==" value=52
245
+ bound-lock/1 about="the spacing and timing of ranges: radius" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/radius sig="ed25519:era1:MhttVlpdQfr+8118dSkUtGEN47f50hyuL8mXAj+WCnozPMWmuNaJ7tJcBjbJW68nkie51Anz7A/AGOrpZCF+CA==" value=4
246
+ bound-lock/1 about="the spacing and timing of ranges: right" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/right sig="ed25519:era1:iMStFl3vtja+EFE57uBnA6S2CUhiKNMI+dFXmt8QIdeOXzEmFVH72i6xUPmBSaJ2l8chTcMQ6QbEDQ6ZsHbuBQ==" value=24
247
+ bound-lock/1 about="the spacing and timing of ranges: row" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/row sig="ed25519:era1:t9j1rKhAoHAyswcTKq1Lsy8zI7R0B5lm7Xx8wjeOdLRjsQxHLML5IqbE+/5Y6q+ccki5aWG3XHw4hWl7mGxUDg==" value=34
248
+ bound-lock/1 about="the spacing and timing of ranges: tail" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/tail sig="ed25519:era1:2chNhiut6H7eIpZ2US78rcxBpH3LyyixLoc8Mb1haUFFjIyMR6NJLMrCilIxelV9oLHyWpbtcsYInnoZZhAVBA==" value=34
249
+ bound-lock/1 about="the spacing and timing of ranges: tick" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/tick sig="ed25519:era1:nezA55oZZaxjF6UI9uDZyPgGjpsUUc/kj3hFdAKuOtRP31T8Trn2apJyjsSPIholQsWLOKt8nMwBeXQRJrQkDg==" value=5
250
+ bound-lock/1 about="the spacing and timing of ranges: top" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/top sig="ed25519:era1:ASc13JPphlQzKzGoj26LSOkOMLbssNzPBfFGObbJkaI9TDnaOzUxPjmJsraGV1CQAmzlaZNIWHwPwJaErpG7CA==" value=18
251
+ bound-lock/1 about="the spacing and timing of ranges: touch" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/touch sig="ed25519:era1:GHTv/+aEOnZcb9TYQAFlJttUy2k7+qNl/zR2+Q7yNleOsTDMpNse6uHAG/xj32VfWiknHf8NDV6USEFttnaYBQ==" value=6
252
+ bound-lock/1 about="the spacing and timing of ranges: value" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/ranges/value sig="ed25519:era1:uDGiZsNxjyCeaw6jGmU877Z8CVItQ78xzWNPU6Fdue6lNImmk3/wVhb7NyOoI9Wn+wBwMKlq8J3+koMuNJz7Bg==" value=22
253
+ bound-lock/1 about="the spacing of a refusal: asked" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/refuses/asked sig="ed25519:era1:zszmlAodmslZ5QqzyCzizMIxjkoxFkielskqS4N1kUBDgsJMs2uOMnIquhIIpl8/+4+XPyL3F7HhIRR19PsIBQ==" value=32
254
+ bound-lock/1 about="the spacing of a refusal: glyph" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/refuses/glyph sig="ed25519:era1:YRtCeNFRE8kKP1BCaQeB/kscazxjZfONcnID/Es6m1OgK9x5DD4zrZs9mUH5t4CA7zUn72Sbh3+0/8bJbbsgCw==" value=20
255
+ bound-lock/1 about="the spacing of a refusal: height" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/refuses/height sig="ed25519:era1:eTDg0zEakHIz5/UtMNZHUbc6wzAVYRvyJGLRdefRzwKrxtQ20QpSLrrScpsHyWkUBTd1w2gNpYNX1rd8BV/oAQ==" value=88
256
+ bound-lock/1 about="the spacing of a refusal: text" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/refuses/text sig="ed25519:era1:ObPPTa07GqWdfZ9bBFwFrxfSUNWlnigKUpHw8xGgUBIfC0Ct5tP12dvy5/e52lH6USBZJIH4xoP4/bbxU8vNAw==" value=44
257
+ bound-lock/1 about="the spacing of a refusal: why" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/refuses/why sig="ed25519:era1:xKvKx6HX6aUhky4gRad8/8agebW3Qxt5u3bFOTTSJiErwBYpbdQ14NpMXvk9ilVPdqHusSB92h0CI1sJZmXUBQ==" value=66
258
+ bound-lock/1 about="the size lines of the wire are drawn at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/size/code sig="ed25519:era1:t27pFvxRbDbTYqwsh3VKlxCTJnThecRSc+4u9pjH9UQ3vXNGk8QwInYYYTuuiBEdqEtFqkfJvDWcIkRSQeo4Dg==" value=13px
259
+ bound-lock/1 about="the size a stage of a world is drawn at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/size/small sig="ed25519:era1:qq+ABRvEBbb3QKU8+8RhzjxU/oJdCTf9R9iRGQWnZmm6VYdAVrnZrrYSN0O+bxQ+i8GoraLXB0F9EBhrx22HAA==" value=12px
260
+ bound-lock/1 about="the size words are drawn at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/size/text sig="ed25519:era1:EztCwbUCJAOEzFh48+ZjJdjFmgZxjjbsDJe/ssEdLey7AFOJk7JOJkr4pRkM7/BkNncTITNUbdEh/85FoMrHDQ==" value=14px
261
+ bound-lock/1 about="the cap a stroke of a mark ends in" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/stroke/cap sig="ed25519:era1:znPJN5hoagmrsZ9VNtIYeY2MnlApgowliXHcHtIZZ21GL4Tn6gWDEB0ViGHPVUfGQWeuv4x8mcTROc7W6eY3Dw==" value=round
262
+ bound-lock/1 about="the dash a touch is drawn with" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/stroke/dash sig="ed25519:era1:WqfD5B9ZcLJGcKh9JAzSukKPexejq8eVBY4UXLCjuvrcInuSFlUVhNExMqnl7wF37pLjdkd9nZ/e1VURhmrKBQ==" value="3 3"
263
+ bound-lock/1 about="the stroke of a mark" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/stroke/mark sig="ed25519:era1:4GOBki8XNmMhQE84jOr6Efr0rh0OCH2jVgj2hohvjsjPbokiVlXpSShwpH8KwHhFavbt/QuViM+k9ENhXznwDg==" value=4
264
+ bound-lock/1 about="the stroke of an axis and its ticks" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/stroke/rule sig="ed25519:era1:uYW84n3EI7W3GJCluW7gbJ4tOjbhtqgfY6WeMrl6UHpm8dX9ra3oRilIiyS2bnkraBfVvO3AV2eZ2i77KToTDg==" value=1
265
+ bound-lock/1 about="the gap before a state table's glyph" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/table/gap/glyph sig="ed25519:era1:3JwGbqJY9FbeKLi2F0a1nBrMNAKPoFlFoizYgzADsa/7yU864BBherTyxcoGV+wPZIn2MJxts3uaXMaduoUmBQ==" value=2
266
+ bound-lock/1 about="the gap before a state table's state" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/table/gap/state sig="ed25519:era1:Ok0cC6ADDWDzilGErIIc89JHHyQu8pSIyymznYvc+khptni751d2e8udzts0x+ewy+Po848EL4GHTjomB0NiCg==" value=6
267
+ bound-lock/1 about="the weight a label or a pole is drawn at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/weight/strong sig="ed25519:era1:FFw4lClXeUKGZUs2GlMgIped/mIG59EQO6YHZs9XaUTCugzARLAOWi7VuLf0t/u1qUka73wADj31H0rh0mqmDQ==" value=600
268
+ bound-lock/1 about="the width a figure is drawn at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/width/figure sig="ed25519:era1:N/lYNhQZZEu0e0mD/A9vIEdtjKhonAW1cvj4983eLm1GOmKm9MLbj3QZKSuHSsRO4QaB90GyKSeM3fGOIrOWBQ==" value=640
269
+ bound-lock/1 about="the width a place shows its logo at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/width/logo sig="ed25519:era1:fnKH+a+Wgixl1e5AqFikVxme5tbgjeLFqeVzs678YlihCzLQ9lS3tIpBs6o+0VHxyYfHU7A5cxwGYC3Na9ZyBQ==" value=96
270
+ bound-lock/1 about="the width a place draws its mark at" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/width/mark sig="ed25519:era1:63RFPBl8hmaAZAxUEj/XqH/hJIQwNAp006Stokbf6b3bxOV7Lb8ZHDp9h8pqnc3gpYXivawE7iFVOIrHeXmsCA==" value=64
271
+ bound-lock/1 about="where the joins of the world figure stand across it, as a share of its width" at=witness:a-number-that-was-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/axis sig="ed25519:era1:LUjSJhfSoD/UU5Vhqq9HfTsOPlcjSBM3RD7yVAQm+k08seOSQsDWR3195ugMgHqdgxJD7/hpdnrHU7yVUkxJDw==" value=0.5
272
+ bound-lock/1 about="the spacing of a world: box" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/box sig="ed25519:era1:9ghL4mstOT5muy0yMR7jnnkn7ovqWAi1efppLfbbbmmFrWfkVtFOMawKmhsGBTxU1KTklIiK/xH3n6t68vVIBA==" value=36
273
+ bound-lock/1 about="the spacing of a world: char" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/char sig="ed25519:era1:Me0HBQzdrhTCbHXz2AAZMZpl4Xa85N1zdcyXoolSlDbxLmqQR5Xc/lZdBLP38LZEl5b1wT3tWFQMY/UgbwfvDA==" value=7.2
274
+ bound-lock/1 about="the spacing of a world: first" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/first sig="ed25519:era1:TVflsNJZuPlz9Ndx6QizPMjjTSTe/HOe79vU0qZv03qzkXqHyxmIPYbJYh4SrQISTKn3wf2qpozE8WNK1f6jDg==" value=30
275
+ bound-lock/1 about="the spacing of a world: join" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/join sig="ed25519:era1:oIVBz4P+rSnUhNGwKo/iYlxyh28drFGiGp9qmTS5UK0z8llafOVLBTLpOYHS1s0g4vGHT7AKaI9D+MjyN3NMCQ==" value=12
276
+ bound-lock/1 about="the spacing of a world: left" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/left sig="ed25519:era1:h1IyI1wK4ZchOnyi8b3pIx0XDukmjelHEmWfeF4bm6Zy71EEXBLCtIQ50Xpg7FW37PWNE5W2qAuojIia57ffDA==" value=20
277
+ bound-lock/1 about="the spacing of a world: margin" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/margin sig="ed25519:era1:nticxohYatf3QAtUMaxGl2pHZYqhezv6LhrDRPW069NHlv+/QAMI3OgZuaXXNQhFru0ZKGNsXPfhahxX6ZSqCQ==" value=72
278
+ bound-lock/1 about="the spacing of a world: pitch" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/pitch sig="ed25519:era1:UK6W4B9cCYXwgXzOa/Vw6+IVkas4fb0LQrlVg6Z9dTqWihXlFHZ0ndn0t6xUPSfRIpYdoc2xdvhbzMW99kPgAg==" value=56
279
+ bound-lock/1 about="the spacing of a world: radius" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/radius sig="ed25519:era1:D9YQvQgsoUtGwcclMkOVsbY5w6NjC55Dvtc34L8pmkRhwCXC1xvgV67y6jmVtHIbXLP4qYXCB+YBGoP2poIFDw==" value=6
280
+ bound-lock/1 about="the spacing of a world: text" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/text sig="ed25519:era1:B+3Q26+D/t4T3ztv5eYOkJWIrHKSGq9fmq4HrnJLLBWO1DnBPdwxSuQalCGNPYy9Nl59aMW8yRKl6u5aOogfCw==" value=36
281
+ bound-lock/1 about="the spacing of a world: top" at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=form/style/world/top sig="ed25519:era1:5psNhCfMlTyGJ4Aj89ZKett9YczChXczp0ztw2wF1kIMAeuky6tbnekJrek94Dl16GsUAU7cvGuAEZ4H4Z+xDQ==" value=8
169
282
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/badge/held sig="ed25519:era1:v1Rx4vU+766plEJACu8G3mDyMB+XpVY3SztZWpW3RH8nG/eVjaeJ5QTDaM+EFTwKDNxmV7paNKsZisCJ1FSoAg==" value=count
170
283
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/apart sig="ed25519:era1:5yfWksj4z/KZk6n53JG7o9WmctCNf0gKL4xoPp00db7drF+RhcKZbuJNwzCPJKkgrZSr9dR5KUDXDloQCjicDg==" value=count|apart
171
284
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/bond sig="ed25519:era1:Sd+CmbTXl2AMzmc9hcFpxbLrnjYd8UITgb/udW2oRfp1JzL82cHF+eVwhi++08p95mReAJcnlJfmfs9UU74YBQ==" value=count
172
- bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/claim sig="ed25519:era1:b1XN3j4n/b2Fyi1s8DbOGlVIeYQmcZpPiV8+gx1q7+VdAGSaj0u9o5SiHBB7xLMbj1LnSQ9cc1O1vOnNjCdRCg==" value=who|lo|hi
173
- bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/held sig="ed25519:era1:12OJ4PdICc6OhigjRD87az9lbwvN4WZIuw0h3MSZECs+eA/MZEXVw0dcKDTyv5hprW4EDsbhhY7HxzAqKzoJCw==" value=lo|hi
174
- bound-lock/1 at=witness:a-caption-that-named-no-outlier by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/meet sig="ed25519:era1:b95uVA9kEOQ3oy/Kd23Ttzgs9CeKecZnwKeHQDvfqERWSDb7WV5ALSaNsKyBdVev+gxEdwjA0BKtSwkcncKeAA==" value=count|lo|hi|state
285
+ bound-lock/1 at=witness:a-fold-whose-claims-said-nothing by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/claim sig="ed25519:era1:YulWRJwGTs2P69uIzCXgZ1ZD6uRdv3r520d99mTzGpZcbjyrBlQa+od9StMa713SL2Uo9amdtEEYzk1B2vBADQ==" value=who|lo|hi
286
+ bound-lock/1 at=witness:a-fold-whose-claims-said-nothing by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/held sig="ed25519:era1:yBSUqOtFRQbZAwg0oih21KWe2S917wkawplVUnvk+tkEYFSxAEv2ai9cz4/Rfft7JBgFmKMWyST/Ze58sc98Cg==" value=lo|hi
175
287
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/origins sig="ed25519:era1:/IqfdJMw5QfOQwHx1OPde53Xp23y/BCgprIN4rPbFyfbT2hbPcge5otvkhBk99g/mc6iEJPQ0fxvE7o1ylCOBg==" value=count|claims|held
176
288
  bound-lock/1 at=witness:a-caption-that-named-no-outlier by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/outlier sig="ed25519:era1:ujajfIgFrpnG0z8RpuJbEMDzNUbhh1Ev7CpjtXIyhmX9jPHbGrCmoiIjU3kB6Aooe0ip/3/6O1VbHfBerEMGAA==" value=count|lo|hi|who|state
289
+ bound-lock/1 at=witness:a-caption-key-the-tree-refuses by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cell/together sig="ed25519:era1:by97oUa0BTK27xkCxOO4GTOwdRubMIybcWzkvVERc8aX4fLpgcOlNzjkU9BG69qYsTKts4CQfXYYiUzrbMWsCA==" value=count|lo|hi|state
177
290
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cff/name sig="ed25519:era1:ppsBySdDQBKZuX1RNxYEY2w1VBKHVYrmpf3OPZZWyPAgucSXrflrYpxKtPXbn1IYQPTV+chyFjZEH4bvn99XBg==" value=name
178
291
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/cff/paper sig="ed25519:era1:o0jUFHujumdeUDVTQjyx/WV0IufVWz+MbJMJ8l2KpZyazug9jaR+TwVJYam8LOMkV6TxEVMW/nuQVPgACN+cBQ==" value=title
179
292
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/check/command sig="ed25519:era1:fFLYjCRAIbzdIOX14/AJGrxe/P6dJwj29uVhWH3FPvl9LQOFjTAF1U3iQFZMaUpExsLl/20qC3tuNiO7fxCUAA==" value=glyph|check
@@ -186,7 +299,9 @@ bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 fo
186
299
  bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/claims/3-knows-no-world sig="ed25519:era1:ZKEISDew/FD03LylF+Sg/1a5OafKfZJpCNVFO6Jq/XO/5hq/gq1/3pWKaJPGjUS0zes8ZsNvPAZy829c/bJsAA==" value=text
187
300
  bound-lock/1 at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/claims/4-writes-no-order sig="ed25519:era1:Oik+dyv9vur97wmfDGY2NebvEY13iN04pWJ5FYAzd+BtV6ulFLrdJByrTJFLHJLwFCM6yMqAJigeb1pcWwtFDQ==" value=orders
188
301
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/contributing sig="ed25519:era1:lMujoAKSdYw1cO8gTFInP1PGnAH192cd8c3cTpOofrHtyCMaFfiqtf7LtxEOiNyB8Cidn2NvWlPtvXenLs0xAA==" value=check|open
189
- bound-lock/1 at=witness:a-fold-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/fold/reading sig="ed25519:era1:xFqE08rZqgBZs7N1pSbYFS8712999V7OnkDQ0InG6NiZlBx/7OVvoTA0rrXxMAX4Y1E7uoEcLfh8u6Ke6RwlDg==" value=at|reading
302
+ bound-lock/1 at=witness:a-fold-that-drew-no-meet by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/fold/apart sig="ed25519:era1:Bci4JlARs8w8OCNAS2fNLbyOKAo7/seLjugBXShZmieruNtpvMl/IBZeSg1cSKot9jZwdzdspp8tg4Z6QOqJAQ==" value=who|state
303
+ bound-lock/1 at=witness:a-fold-that-drew-no-meet by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/fold/together sig="ed25519:era1:yj704u+jNdsse4l6UIyo71qV93j6Wbz4SpuMePvfnjWET8MtRIHtKd02CGXhf5RqdfwSFZOd0rl0CSlZvDUPCg==" value=lo|hi|state
304
+ bound-lock/1 at=witness:a-readme-that-dumped-its-example by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/learn/source sig="ed25519:era1:HGSvsig5deBxZdarq6HU+XBx7pq21pWsbD0hW2R2N1sBHSJe7GSe9sEN16g4HuD3GoVxlNAmxrQz3VkRddnWDg==" value=at
190
305
  bound-lock/1 at=witness:a-line-no-figure-had-drawn by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/line sig="ed25519:era1:Lit/Wp8gMJVDoRPqD2sJbPZ9fOr81+rxRY5WVZ9a1YpN0SNSf0sOVulXxIigbrqBA4sY2V+s+e61muhtknNuCA==" value=scope|count
191
306
  bound-lock/1 at=witness:a-refusal-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/refuses sig="ed25519:era1:7m1Mccq9bPltZjHgyl7YTH3+PV07Sczy8kK8+Gb4r5ex13sdfgaSKSI24X/lJKgZmwJyMTjYWgKXyi5CtqLpAg==" value=input|why
192
307
  bound-lock/1 at=witness:a-world-drawn-without-the-line-that-adopts-it by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/adopted sig="ed25519:era1:Fo2bYRL9arfrIdMxn4Blu1UDCtdcgRRcWHUUw5elGF6rJXCESYwnvWouP/og3DbfAQHy6G5+AMlHWWonBYLcAA==" value=scope
@@ -194,9 +309,10 @@ bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alph
194
309
  bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/declares sig="ed25519:era1:F6mWztwBNaHcLE0kRcHjC1oMJUHxgJNcGXo+Sx+rQcv9LwQZqyKcAxoBH5sh/FEKpGoa/b8n0x4PB2axWb3ZAw==" value=domain|runtime|effects
195
310
  bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/host sig="ed25519:era1:IDwhf6rBFvZlhDABnom1Gu1kI0YtZAry5wTcI85ya+HQYr052O1PgxY/ke9GfKnxXE5rK9eoA7RsTzaweetjBw==" value=runtime
196
311
  bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/pinned sig="ed25519:era1:uSb9c50KYI36oPoH1H28F1bRntHvDxjIzf2gxHeod+Fb2PeZgqTYjJ5SCeUSHg0qIvChS1wKUglWmHRHYPOrBw==" value=place
312
+ bound-lock/1 at=witness:a-world-said-by-the-file-it-sits-in by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/region sig="ed25519:era1:os5OBg47uk9mWA8UmUhmRBzXOyUzOvHgDhI8FMyn+4KRH5W3HX/j+m543hOSZ7D+AWyvQNnDfnkGsLI220x3Aw==" value=name|reads
197
313
  bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/regions sig="ed25519:era1:sQ9rAsHJN6I0ocPvwp4e9q4Gybmk363QZiB/jnU66FxR2fXXTWQHoOlrSJVwNo5I8vaKy09ZJvPk+Lzzw7WeDg==" value=count|longest
314
+ bound-lock/1 at=witness:a-world-said-by-the-file-it-sits-in by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/topos sig="ed25519:era1:2jHmr9THcPZXr3/ySz+kf0ew7M7tzXwbkIlRUPCSAdD/nFd6RbuN+xzo7XnZJ71YO/+Kcs0No8PD1bnx5T5TDQ==" value=digest
198
315
  bound-lock/1 at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/vectors sig="ed25519:era1:sWwzJcSteKhOMqgwpvc4cXmzl2KxF/92cQRigj/ZSw5DFubR7hkjeagrWbgZjGsLa9pBwjx9JiWE3uV4EsMsDA==" value=count
199
- bound-lock/1 at=witness:a-world-drawn-from-its-example by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/figure/world/written sig="ed25519:era1:FCawJ3LhW+IWvTGUUoG2DssS5ZrZO/63otMeRrStxhtaiLpFxuUhgLORFkOLhoiMHDJp8+aJVQiKzHcArwtTAw==" value=count|lines
200
316
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/first-use/lead sig="ed25519:era1:1s/qNm2skaQmJnPtmavIiFBE1h5/7GbbY3QL4D0GfTZjeOF3lljudyMKEhL8hP1VHmsj9P2eLBQlu9nssejbDQ==" value=name
201
317
  bound-lock/1 at=witness:a-state-said-as-two-booleans by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/learn/source sig="ed25519:era1:ncUEdDxlvyoBlIrtNEekB/UXOJUuR9V/JJL11WD4cJOi2mhXBmNBVeMcD4iPI8LvO40mkDZU00062RqRVAcfDQ==" value=at|place
202
318
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/open/conjecture sig="ed25519:era1:srBmYqDaL7nb8YFTce0HBcNm0Yc31BqQpIbh+YI4Vwhh6cHXfYv8x3/4ylmyEw1oGtgaDEZONJpQRLn94qM3Aw==" value=title|brief|breaks
@@ -206,6 +322,7 @@ bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabe
206
322
  bound-lock/1 at=witness:a-limitation-nobody-typed by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/open/open sig="ed25519:era1:ioRtYj3UXfYTkX7EPIDq7hEvNwgwgs5OwIYlfy4R7IRky48JMViKxNgQHENyXg3yA0/dc5cBvPa1/3tzsM8wAA==" value=scope|reading
207
323
  bound-lock/1 at=witness:a-ceiling-read-under-a-word-the-tree-refuses by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/open/outside sig="ed25519:era1:bzG5O+9vUg31Jhqhh1rjd1fUz0Ydj9bje7rR7p+cfaNzXFz0WGRfgwZpyDgJqQrjA8LrOJVoJ5RATX1W8F7PAA==" value=scope|reading
208
324
  bound-lock/1 at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/open/unpaid sig="ed25519:era1:W+VPaI9/Br3jI9obWXTfo1Luql1Dbh+FGwyaeHQMB71Ei1IcWH6cBL4QLsXJyjljeSk55YGIkNr9WStapIi3Bw==" value=scope|reading
325
+ bound-lock/1 at=witness:a-hole-spelled-in-code by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/page/media sig="ed25519:era1:bcEt0Bzkbsm5UWUq5+vt0In3PQbhoiHdr0TL3pkTGqI1lxXNEQc+8cwff8S/Qrlb/G2h12nuZtXrOsNMUlSrDg==" value=digest
209
326
  bound-lock/1 at=witness:the-forge-spoke-prose-written-in-the-capsule by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/pipeline/notes sig="ed25519:era1:K6Q9jZXD1QUUHhdEe5Q1FgbFuk6yLJtmy7lCc2esCfocSueFnrqgCcOPJrySeFS1NHjPmSnfUwN9B+/807beBQ==" value=version
210
327
  bound-lock/1 at=witness:the-forge-spoke-prose-written-in-the-capsule by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/pipeline/published sig="ed25519:era1:ICspnl69yvpwZdCKS+EIHfBk6k6LNjClOamUf3bwDurmO9IzNtWg2dMI8OLz+2A7nDo05xPg4c/AtkLUXm+GAQ==" value=name|version
211
328
  bound-lock/1 at=witness:the-forge-spoke-prose-written-in-the-capsule by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/pipeline/released sig="ed25519:era1:EYyyWILPJtdNyAUrsPF7907a+Sj8scEThT9i3AIrfkyW6IlaNbS8cuDTDfKABY7Ign+lBsmU6qN4ZdrnDT94BA==" value=version
@@ -221,18 +338,20 @@ bound-lock/1 at=witness:an-sdk-reference-drawn-as-a-theory by=owner epoch=1 form
221
338
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/regions/lead sig="ed25519:era1:63gl3AQ8+Uk2stFoPvXmjGPcGWNhWxgyZ/SFiR70qw2Sp12iPPldCA7fuNfwy9kq07W/OWqB6eswJ2u20Fo2CA==" value=count|effects
222
339
  bound-lock/1 at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/rested/place sig="ed25519:era1:a+fLc6b+oeWISfZ40JmoHDyNDRwVuNnnsulVOoxU3oXEkEnNfTn39fq0ZgosxYvXS6veJ16wCKCmknb1Sy8OCg==" value=place|repository
223
340
  bound-lock/1 at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/rested/what sig="ed25519:era1:zjMZYNEfV3LzYA1joeP/rpeKIl4XsE0AS5ayylbG7UMkv0TSt1RlA0RmoV6ey9iZP/Q7zrBZvR1VPbdib23TDg==" value=repository|what
341
+ bound-lock/1 at=witness:a-rest-drawn-against-its-edge by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/rests/on sig="ed25519:era1:GuU1eR9R0MjOGvsRWWlwU5yQecHaxRmlZjYIYQtY+Nk47nQ2QGxSfpK980hGTu4yBGGcb+Irokkxj/kAWGr7Ag==" value=names
342
+ bound-lock/1 at=witness:a-hole-spelled-in-code by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/runtime/node/run sig="ed25519:era1:fRhFDPYEgamJz6julilWT3zucPaT/4A+dY/TtV5tsCJnzD1i1cfhzIhEPFYap1FmoNDw5WmLmnG5mIuh6HzTAg==" value=at
224
343
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what sig="ed25519:era1:3CU2EwIPVStU37giXWkUbCtE8aCQLuAiCla4CZhL1OBX4JqSxPbLjjBPtTEOhjOZe0VrRaTK6qyaKua4qFETAw==" value=places
225
344
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what-holds/axiom sig="ed25519:era1:JacfGjjklWxDuh3rs8EAwFLIcYSZeKvV6FGhx+HwEjGOhH0kWJHM9oir98XdXq/hJXHPtW8QXz48RKNycVCcAQ==" value=sentence|name|rests
226
345
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what-holds/lead sig="ed25519:era1:7CmpfhADlDfM2rdA9Efkk04eq1yZXwkNBvghfNkcX6PSbknKGdQZ9CqZ5jsu+NX0SKQadAX3e+UTDKa0kt0lCA==" value=count|spelled
227
346
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what-holds/measured sig="ed25519:era1:44JY520WrKOZlDk+vCCHrZs8IHVuoHuqIBvkCWOCZLLPZbaYXl+KiLKJRV6bs7jc2Zdqjtr6lQP6wZ9jNMITAg==" value=sentence|measured
228
347
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what-holds/other sig="ed25519:era1:iFz+4LoXesMNs38uoqaZigJNxDQN4n77ImqVt/h24yAWzngojCRQA52aL7W++MHvcuGZUi+kaONQK4OjfY9ICw==" value=name|about
229
348
  bound-lock/1 at=witness:a-page-that-knew-its-world by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/what-holds/others sig="ed25519:era1:pTRwSihtptJdiaKj5wZW9gENlqpSgG8pFGb/OTJ7ev4b3qQXiQKFmme58sgS/B36rxGoMZ32X6kPNp1sRdM7DQ==" value=count
349
+ bound-lock/1 at=witness:a-blob-the-wire-never-named by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/blob sig="ed25519:era1:U0X2ZHyWuAQ+JQLL+FkPPywdxx7P3zGcE8zYnBgHj2E6q0Af1iPWSvWaSlmwdfoGAtIB4MkABjnP0F3ac3WaBw==" value=hash
230
350
  bound-lock/1 at=policy:wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/canonical sig="ed25519:era1:pxGSEeCO0nrJ/fnvNM2XCsm4eNzvTu1lLy1yFbX/gh1wjQMWkhRB/dvQv9M3S/01vHWurOk9iKCFxsqO2SBBAQ==" value=hash
231
351
  bound-lock/1 at=policy:wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/encoding sig="ed25519:era1:X1aDg1htI/1cAW3ZVV2emHPpNpTSnIUJUH6uX21+pLTdU35pZ6x6HXXoFnUoeNv4Eckx+qm7GEKA7F91Rzy5Ag==" value=encoding
232
352
  bound-lock/1 at=policy:wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/header sig="ed25519:era1:APRBKIFZ+EEQdIDJBwjvU8xezc7kmMgQ7LUQcv8d22dW0AtvE9Njajq4lZryBV2XTc/VzEqi2w1ysJ/HkwHVCQ==" value=header
233
353
  bound-lock/1 at=policy:wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/lead sig="ed25519:era1:E8bCXRiIcMq7Sfl2RgiPTLMzpSogaPrSyi3W81jypL0BuvyPmsvGEsBVOqDJGqNngIfod6YQerl5gcXLiLhlAw==" value=header|encoding
234
354
  bound-lock/1 at=policy:wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=form/template/wire/order sig="ed25519:era1:BUOXUPRVN0TCsHI29UAdbSeu//VXR4ksvA4WNVd37rFIfVrnuIR2HrCz7yZ0IyJA4o7X3rHcKkUaIM/ehiflAA==" value=encoding
235
- bound-lock/1 at=policy:code/hazards by=owner epoch=1 form=interval measure=count role=reads scope=hazard/**/src/** sig="ed25519:era1:YYAsnenyecangj5A9rqSltAWP1LgtBq9Uhhkcs1ysKMbbCMvoNs0t0oxCEAjNro3aO2JE0E81lxkU9TmWTUoCA==" value=0..0
236
355
  bound-lock/1 about="topos/src/forms: id + params + parse/emit/show over an obligations lattice (intervals, subsets, chain, order, product) — never a meet or join of its own" at=policy:forms/import-their-lattice by=owner epoch=1 form=alphabet measure=id role=reads scope=identifier/**/src/forms/** sig="ed25519:era1:ONFxVNyJEAyjPhW1RoQyb8T1bMJA4DCAEM8nRqYGsLk1GgrnPONLv6/pG8qK3m+pjNug9K+lwRHtmMCfCknWBg==" value=not:meet|join
237
356
  bound-lock/1 about="the same, over identifiers: a function named after a world is a world" at=witness:the-citation-render-landed-in-topos by=owner epoch=1 form=alphabet measure=id role=reads scope=identifier/src/** sig="ed25519:era1:dmWKKD3qysX9Yuf+u+XwWIQQLvRPuty6fW0RKBrNvIVPwrVTbdAEWu0yKAQU1kqSADWrFFut6ePsp/sjdFr4CQ==" value=not:npm|github|cff|citation|doi|zenodo|shields|badge|tsconfig|workflow|readme|markdown|svg|mermaid|latex|license|stripe|postgres|openapi|mcp|react|godot|fs|path|process|Date|fetch|wasm|node|typescript
238
357
  bound-lock/1 at=witness:an-alphabet-written-in-the-hosts-order by=owner epoch=1 form=alphabet measure=id role=reads scope=identifier/src/forms/** sig="ed25519:era1:QJH2tosBUbgMU1a6foYmL11JCOiPwPHCbFSw+n5zWg6ss7UiUgkoT4hLx+kuGn5oKyxvYzCFnDmFbjHns3BiAg==" value=not:meet|join|alphabets
@@ -241,7 +360,7 @@ bound-lock/1 about="how a consumer installs the place" at=witness:a-topos-that-w
241
360
  bound-lock/1 about="the key this lock admits to keep what a fold folded: whoever runs the fold writes it, and the line says which key that was" at=policy:keys by=owner epoch=1 form=alphabet measure=class role=reads scope=keys/bound sig="ed25519:era1:sJKHOyJ/f8hwb1gg8WHDCGfQAXRpig9LIW2Fu6IvTD4AUpliGK3ua14udahDMwvultImwWHVD7BEK8ZVbEJdAA==" value=fold
242
361
  bound-lock/1 about="the key that keeps what a fold folded also names who rendered each region a view renders: rendered/<view>/<region>, the capsule digest that answered or the instrument's extension, landed by the fold at every render and never in a place's receipts; and resolved/<dep>, the digest of each release the host lays, hashed at the lay" at=witness:a-region-rendered-by-the-carried-order-unnamed by=owner epoch=1 form=alphabet measure=coverage role=reads scope=keys/bound sig="ed25519:era1:MWsE3+Hx4oTrerpMmu8JfgzhJ0ACLKCreZ85AUkcm3YRW4Wr5UG/OIHPY8IcdWou7wHHbbRAmDo/gi01aNdlAA==" value=fold/*|render/*|beat/*|rendered/*|resolved/*
243
362
  bound-lock/1 about="lane A signs the notation, the frame and the capsules: topos and every topos place, and nothing else" at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=alphabet measure=class role=reads scope=keys/lane-A sig="ed25519:era1:jKg16YQS27PWMNAX8eH+P5/FDh8sAis23W4agDALGrBIduX+0UnRU+VS4DoWzEuC8kRhnw5QIy7WYM3HfDIFAA==" value=agent
244
- bound-lock/1 at=witness:leaf-was-the-old-word by=owner epoch=1 form=alphabet measure=coverage role=reads scope=keys/lane-A sig="ed25519:era1:XlZuQhTGIun5X7F13d5F6hFgHoFL5C2aa+2U15ba0KSEFH0Ci5T7a0fg8BXmEq4niAV7/mYHIJLnY5ct9UhQCw==" value=topos/**|topos-frame/**|topos-doc/**|topos-laws/**|topos-notation/**|topos-node/**|topos-github/**|topos-json/**|topos-bound/**|topos-typescript-tree/**|region/topos/**|region/topos-frame/**|region/topos-doc/**|region/topos-laws/**|region/topos-notation/**|region/topos-node/**|region/topos-github/**|region/topos-json/**|region/topos-bound/**|region/topos-typescript-tree/**
363
+ bound-lock/1 at=witness:a-demo-world-its-lane-could-not-sign by=owner epoch=1 form=alphabet measure=coverage role=reads scope=keys/lane-A sig="ed25519:era1:uC3uTPproo8qgSD3LXEQQgWzUj8jvhJO/74tSVLrNqUosG5jt73eRnJoV5UT5h+cfa/3Qf5mrPsWlq8eD9oXBA==" value=topos/**|topos-frame/**|topos-doc/**|topos-laws/**|topos-notation/**|topos-node/**|topos-github/**|topos-json/**|topos-bound/**|topos-typescript-tree/**|region/topos/**|region/topos-frame/**|region/topos-doc/**|region/topos-laws/**|region/topos-notation/**|region/topos-node/**|region/topos-github/**|region/topos-json/**|region/topos-bound/**|region/topos-typescript-tree/**|topos-measure/**|region/topos-measure/**
245
364
  bound-lock/1 at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=alphabet measure=public-key role=reads scope=keys/lane-A sig="ed25519:era1:TTgYg6Gl4bMaAvO+t7BD2iyiaLXNf9kbj5v+DOJ9v+IFf8aO8oySDgt0IfIaD5ub8V7Zdh5QoNOblDQg24NZDA==" value="MCowBQYDK2VwAyEALpdMdPO3OeXyp6PQcisnTjB9mdeSUiUZCCkRiFK0lys="
246
365
  bound-lock/1 at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=interval measure=resolution role=reads scope=keys/lane-A sig="ed25519:era1:hJ8PMn3uFViIby31zIjvrGZDsT0JqdHD5ucaU9ScR2SLBasVRYvP0Y/u516ZnSt0PukZ1JzpHaCkWVQc/tZ/Cg==" value=1..16
247
366
  bound-lock/1 about="lane B signs the verb: bound's sources, and nothing else" at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=alphabet measure=class role=reads scope=keys/lane-B sig="ed25519:era1:vqhdk7gfKGKI63cCmn22y+PNCLZZpBHce3lgMF0M4nInWB6+BGJi6CqlSrJfpfhWtDoVOb43FxOyeS4JN7ikAQ==" value=agent
@@ -254,7 +373,7 @@ bound-lock/1 at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=alphab
254
373
  bound-lock/1 at=witness:lane-keys-made-by-the-owner by=owner epoch=1 form=interval measure=resolution role=reads scope=keys/lane-C sig="ed25519:era1:3RtBDQPRwRIk+7rFLoDHV1JCIRU6qrAXjD7/COPD52S4F0BoCJJfgnkq/5JX8ic66S84oWCxH0M5u+QqV1yxBA==" value=1..16
255
374
  bound-lock/1 at=witness:lane-d-made-by-the-owner by=owner epoch=1 form=alphabet measure=class role=reads scope=keys/lane-D sig="ed25519:era1:1sBwDLjVl1gPQT8rrqFp8+//zR3qawe/UcXA44eN6absORG89NaffyPEGKoXFgU/ApCFLlOeXZsz8sJQdPosCg==" value=agent
256
375
  bound-lock/1 about="lane D covers two worlds beside the instrument: topos-frame and topos-bound, their regions, pins and prose" at=policy:keys/lane-D/two-worlds by=owner epoch=1 form=alphabet measure=coverage role=reads scope=keys/lane-D sig="ed25519:era1:m+NWvuTMHkon98D4JgWUdLt0xUNQv5aein2/7c9/9TQWVFFRuQz/6XS7wo1h+Xrepu88M0iTsqCaU/MP+YlUDg==" value=bound/src/observe/**|bound/src/host/**|bound/src/render/**|region/bound/**|topos-frame/**|topos-bound/**|region/topos-frame/**|region/topos-bound/**
257
- bound-lock/1 about="lane D's window widened to 380 for the base: receipts at a resolution through the view that ships them at @0 and @1, the agnosticism test over the measurements world, and laying the base's releases by digest as they are re-pinned; 188 kept as the start so every line this key already signed stays inside its window" at=policy:keys/lane-D/the-base by=owner epoch=1 form=interval measure=epoch role=reads scope=keys/lane-D sig="ed25519:era1:L54LGzMp25+BU5RNJEtUoph3oEYopbjMjcN/7UKttx2gfnX/AGMdCmhgLvP+lk03DWXeRMtnfKD1nROplRl5AA==" value=188..380
376
+ bound-lock/1 about="lane D's window widened to 480 for the phase the worlds go up: the five frame laws and the frame blob that carries them, the host's lazy resolver over sources lines, the two hand-overs, the releases of topos-frame and topos-bound, and the SAME word on every blob until bound's birth; 188 kept as the start so every line this key already signed stays inside its window" at=policy:keys/lane-D/the-worlds-go-up by=owner epoch=1 form=interval measure=epoch role=reads scope=keys/lane-D sig="ed25519:era1:fH4EaX2mksep95E0WcNLcbduBHOupPrTBy5+ix58oOiDGjy/HV/ch5kXeb/68rMVR6WAUaeSmPn46bwfUDY+AQ==" value=188..480
258
377
  bound-lock/1 at=witness:lane-d-made-by-the-owner by=owner epoch=1 form=alphabet measure=public-key role=reads scope=keys/lane-D sig="ed25519:era1:XhOFA4HLptW67Ec004vZWIdEewqBATFA77uFbFuQgYN/jIssscX0mpVDwwlQcGR3xkI21+W2Den52MalUvDoBg==" value="MCowBQYDK2VwAyEA3gUzYi3KEhQuzmh+o+rgjNyZZrjRRqQ+stwpr91JFcQ="
259
378
  bound-lock/1 at=witness:lane-d-made-by-the-owner by=owner epoch=1 form=interval measure=resolution role=reads scope=keys/lane-D sig="ed25519:era1:7/XBEl8yw/dTQ20SEafL6mNOElhI841jwoaYw4FV0EPuokz3Rh4XP4s9ht/h5kWOG2adLgkQB0AMY4DHDWzMAw==" value=1..16
260
379
  bound-lock/1 at=policy:keys/lane-E/second-head by=owner epoch=1 form=alphabet measure=class role=reads scope=keys/lane-E sig="ed25519:era1:CC38SOMzLGGZ1dqfb4UHDABv2H3aCz6D6ryQBPlyJbocnaJIv91hvUHMyRhjXpeFUIpooCteeWzFogawgs0cBQ==" value=agent
@@ -284,8 +403,6 @@ bound-lock/1 about="a leaf a view writes: the reading a package carries with it,
284
403
  bound-lock/1 about="the reference of a place, rendered from its lines" at=witness:rendered-leaves-read-as-sources by=owner epoch=1 form=alphabet measure=role role=reads scope=leaf-role/reference.md sig="ed25519:era1:77Pi7+KStRDkAxjAR88+cNJRNFc+V1IR0rg6MaYVUrsrjQvXdItw1z18EB2a6vyIxjV9L8SFl5CbpZD8hN7dCw==" value=derived
285
404
  bound-lock/1 about="MIT License\n\nCopyright (c) 2026 Lapxo\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE." at=policy:license by=owner epoch=1 form=alphabet measure=id role=demands scope=license sig="ed25519:era1:0je12aL0Yb7P5amtrjLcQ4ZtCtqFtITpk6W6NwisY6eM7oQpetPq+jP5Fq3mcHTfBSaUejupASjjHM92lG2fDA==" value=MIT
286
405
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=license shape=package.json sig="ed25519:era1:jS1xkAsOqJFARWgab/FI1V7K3Fz2TxGJDsX0LZvWBdNTGT5TLphgbKYf99UwCBw/6hF+bWL+9K/XPveUz+mqBA==" value=MIT
287
- bound-lock/1 at=policy:code/lines by=owner epoch=1 form=interval measure=count role=reads scope=lines/*/src/**/* sig="ed25519:era1:9xwdvhcH+97vYHKIl3djToIiFAYJqigkJ3DYg/Rmr96GzxIHtEZvDM/IzXzo5aV7Rfwla6XEE45J+mhj268NCA==" value=0..500
288
- bound-lock/1 at=policy:code/orders by=owner epoch=1 form=alphabet measure=id role=reads scope=literal/**/src/** sig="ed25519:era1:9dn1pYf+Q1k2R7DoCdr8yukMqU67Hj8e0V+DNG00xyYEOR8pNTteJaPwwkfTagZS9EalkSOsHo7rzLmu8QnQDQ==" value="not:NEVER|ALWAYS|MUST|do not"
289
406
  bound-lock/1 about="topos is notation: wire, forms, classes, alphabets, views, the contract and the capsule shell; a name of a world in its source is a capsule that went to the wrong place" at=witness:the-citation-render-landed-in-topos by=owner epoch=1 form=alphabet measure=id role=reads scope=literal/src/** sig="ed25519:era1:9jFLPmRy04HM2kwRQGmIx8HTVvSR3z+bWGVwm4q13uPSNHOCP5punDY+AN81ewnCGPTQqYfoZwvJonw0X1Z1Aw==" value=not:npm|github|gitlab|cff|citation|doi|zenodo|shields|badge|tsconfig|package|workflow|readme|markdown|svg|mermaid|latex|license|html|css|stripe|postgres|sql|openapi|mcp|react|godot|fs|path|process|Date|fetch|wasm|node|typescript
290
407
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=name shape=package.json sig="ed25519:era1:oYUqzJKwyYQDAxzcFxi+1/9Cwz46WHMTlkrtzviFTFirneThyWL3icfVCiyNnr+hR8cG0xp+Swd25LWDj1miAA==" value=@lapxo/topos
291
408
  bound-lock/1 about="the members of the object the notation writes, in two pairs: its value, the floor ⊥ and the ceiling ⊤, both read and never stored, and its relations, the origins O that spoke on it and the order of rest ⊑ it stands in" at=witness:an-object-that-stored-its-poles by=owner epoch=1 form=alphabet measure=id role=writes scope=notation/cell sig="ed25519:era1:rFgIT69ZZBJHW16wEJ0tJm1FTiX7lXeVxVuBOEymlW/qu+cCKBzfyoxdXI9jztEvScmyfkpGIlJHLiA8sASgAg==" value=floor:⊥|ceiling:⊤|origins:O|rest:⊑
@@ -317,22 +434,11 @@ bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alpha
317
434
  bound-lock/1 about="the notes a release carries: the message of the commit it releases, where the birth writes the release's name and verify's attest of its receipts, which never ride inside the folder they name" at=witness:an-attest-that-could-not-ride-in-the-folder-it-attests by=owner epoch=1 form=alphabet measure=id role=writes scope=pipeline/release/notes sig="ed25519:era1:0puFOu+xKVAtSdhKsSHp3RVWaIqHATHCAMy4AfRTm0q7Z5jk0vbktFMGE3c6QdERTgbZuh/TxA8Ep6SQgmG2Aw==" value="$(git log -1 --format=%B)"
318
435
  bound-lock/1 about="what prints the version the place releases" at=witness:a-forge-that-read-its-steps-from-outside-its-pipeline by=owner epoch=1 form=alphabet measure=id role=writes scope=pipeline/version sig="ed25519:era1:CB+3ymR8HJ54upAKCzDYXlq17LqLB/Tyyj4bwm7nLnTidHNXdnAsZJUg+tboQj2CFQE+NM5W3StNHSZvMe6iBw==" value="node -p \"require('./package.json').version\""
319
436
  bound-lock/1 about="their claims do not meet" at=witness:a-fold-whose-claims-said-nothing by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/apart sig="ed25519:era1:Zd77liD3gb54aSA3FGcr899Eb2eYSL1kdqRVNOZXP2m5GnI0UK6Tt/mUiKfvZ2cOSlD+gRQGy89w1O5q23gvBw==" value=lock
320
- bound-lock/1 about=cases at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/cases sig="ed25519:era1:D8y48IHTMOSCG3J74Y2RGNdJ9Qp2PTOhfk0kB9ug+5TXCTJn+h+n2uetI9ooU0KKiMT5YpItdsFleR1Mc5JMBQ==" value=lock
321
- bound-lock/1 about=dependencies at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/dependencies sig="ed25519:era1:fI6GTBWHNzKSMcFCx9KJCtQKejuef8AezIUSVWvRGtkC90LNMfdAXLC4GpCUBiDAOyLKqCWlC5hgImeChp0dBw==" value=lock
322
- bound-lock/1 about=node at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/engines sig="ed25519:era1:DYLzZ0cdxgykRolCfwKuTvar6sjwwnzbx83oDm4earlOK5xd7o8hLbKsom40uIpPY9xmm+BfqGlFlRszh/uFDg==" value=lock
323
- bound-lock/1 about="{count} hold" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/held sig="ed25519:era1:OhwwtuYBlkYowBPPCE74G5D9tz2idjWkcQMlFEvJExQFK3AIi93Ajv52D566LZ3SmymYDQ3mGqz6RwiQ3e0CAg==" value=lock
324
- bound-lock/1 about=license at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/license sig="ed25519:era1:ErKi91v5ia2gPClAYPdFKPCFbiZjeOPwbyYVAtJuaWPxZHoGmuWhghLiG7c3ICsZh4DoHujA0Hj2SEZJAebQBg==" value=lock
325
- bound-lock/1 about=verify at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/verify sig="ed25519:era1:8hzJ/fSU/0zg3t0UZ3XAuI2uMkomE8kehP99bJ6CukHj/ao9Gu/e4t1v7EwgreogIKNYScNfd4xp5BXKuEnLDw==" value=lock
326
- bound-lock/1 about=version at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/badge/version sig="ed25519:era1:UYluKb8568dHP9pOY2xCyyqv9Hwj2Z8wFvfDt/Pt/ZchyOjvpMexzkIOWKNx61tZTAr5yz/XT25c72MCm1zwBw==" value=lock
327
437
  bound-lock/1 about="{who} claims {lo} to {hi}" at=witness:a-fold-whose-claims-said-nothing by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cell/claim sig="ed25519:era1:iwJUX4BsbBg1Xbpy+ydNOnqLz32QH0ILcg0nciDy/XjyuKYwT7uHdmMxLWY1XyF7o5wBOfsGG/EivX+amPFfAw==" value=lock
328
438
  bound-lock/1 about="what they hold together runs from a floor of {lo} to a ceiling of {hi}" at=witness:a-fold-whose-claims-said-nothing by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cell/held sig="ed25519:era1:wkAurY8WhI39csMw38tkdvG72qLm5g1o/5DvyucuiNXBpec9/pND77NQ5nES3mNcvxBu/uR31eLrAInRV8LmDQ==" value=lock
329
- bound-lock/1 about="{count} meet at {lo}..{hi}: {state}" at=witness:a-caption-that-named-no-outlier by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cell/meet sig="ed25519:era1:dkXu5gvyLbxLDrwy23os5SHvXbkbIxs04YEWBUjwok0JeQOsARVK66fZNSkn4XUv28GsZExv8nHfm2rmv4qwBA==" value=lock
330
439
  bound-lock/1 about="{count} meet at {lo}..{hi}; {who} is apart: {state}" at=witness:a-caption-that-named-no-outlier by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cell/outlier sig="ed25519:era1:bOgL0qjBDb6NoE+xQKExCSpnv0LcOomXIyFaKv4NpgHmitynx9y3AwoOVlMJIAN3M7pdbvxgCkBN0jjtrRbiAA==" value=lock
331
- bound-lock/1 about="Cite it as {name}." at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cff/name sig="ed25519:era1:2nvA7fyD3mGrP0mfkWkIZh58LkPKPEzWIjNBc2ZPm3qcCqXtkiFPbu/VnEP6nJ5GxxkKXnsvSVSfaqVgfVVICQ==" value=lock
332
- bound-lock/1 about="{glyph} `{check}`" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/check/command sig="ed25519:era1:GS174Dw35xMqUa7Zj8ZoyaNCt0P0gsHBGS9NWD2NxZ7BchZAedqV4i4ww+bA6VUl5QCWbGpemGY60makUY8uAQ==" value=lock
440
+ bound-lock/1 about="{count} meet at {lo}..{hi}: {state}" at=witness:a-caption-key-the-tree-refuses by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/cell/together sig="ed25519:era1:AbwnuvkR8rk8OUMuEwnmblNzpNUH1ZPKwUvBwBIPojIoiUVlVfPakhL9hMWIR607Obs9e4vu/8Dirh+EbUgCDw==" value=lock
333
441
  bound-lock/1 about="they run with bound: `{fold}` {about}" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/check/fold sig="ed25519:era1:3U0r0uzOLO2nuvjSr9d1tlrbmi+lfdV0pFdsCTejmXGiixVepawkJfLxTIVeWGptxrluOmlOUxFQ0wPeGN/PBQ==" value=lock
334
- bound-lock/1 about=Check at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/check/heading sig="ed25519:era1:bttbVPB3hkZ2IBwkMMZYqjoxIdFwH0quiDLsIYkd3LZEycHc1RYt4PfHQ0FvZPe0dsyy4lNLJ1yizzccqZk7Dw==" value=lock
335
- bound-lock/1 about="{glyph} {count} cases hold" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/check/held sig="ed25519:era1:KA9bihXwJlgz0TbLta0377u9d2BRVpT6Bn/KGDcBZmJlwzXDPf/VCCqnUEw93aUUncCoDf+kdTh4PYrR8uYBDg==" value=lock
336
442
  bound-lock/1 about="{glyph} [repository]({repository})" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/check/repository sig="ed25519:era1:Qju9CG1YvBuaT3O+URJEV4Sct8DAmVbLtBkwC7HuUCAflzF3i/8NB7A1fllF/jMsq4q8ncyYpL6ZJcAsgwYmBQ==" value=lock
337
443
  bound-lock/1 about="It round-trips: every line of its {corpus} wire corpora parses and writes back the same bytes" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/claims/1-round-trips sig="ed25519:era1:OfdzRhdEY7tk2eG7MIewGmlnNdlzz4+Q1TFmeJYQWtyTvU/knn7R6lGfxwIAnoOym0kQqYVeDKTbHHoj7vSzCA==" value=lock
338
444
  bound-lock/1 about="It reads once: a value is read in its wire, by its form, and its ceiling on reading one anywhere else reads {parsed}" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/claims/2-reads-once sig="ed25519:era1:UrBj/3gFZagvaqHhh/+nUd6amxnDmc29rO1kcL14Nk0WQRI1xPFprlTp8aQ49xxf0J6Ma/Bq+F5u6iCgSoOEDQ==" value=lock
@@ -340,28 +446,28 @@ bound-lock/1 about="It knows no world: it says nothing a world says, and its cei
340
446
  bound-lock/1 about="It writes no order of its own: cells, meets, joins and states come from the object, and its ceiling on an order written here reads {orders}" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/claims/4-writes-no-order sig="ed25519:era1:TcS9XwocbZsAPY8SbzGNHMJfSnIW+SWVp+9OdQnb+DPZVie6Ub7xijs7JjjSMuLAXL0cbcC2dYlKr48XxNKKAQ==" value=lock
341
447
  bound-lock/1 about="What it claims" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/claims/heading sig="ed25519:era1:O0z1qx5tG4swhwe4jnG1qcw7awf2L6FlnKnin3zJDZa4jXMDKM86+DHgUlajiNM3LExFoZddsanIrYGwvmQPCA==" value=lock
342
448
  bound-lock/1 about=receipt at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/claims/receipt sig="ed25519:era1:6z3hMReuU8hwuwc0Xh3sFvt3Sw+a00cTolRBtgL7sjwyxQF9VPsiyHxmODUZUXQU0qt+CZRZENlFi+JyhcE5DQ==" value=lock
343
- bound-lock/1 about="Clone, `{check}`. A leaf that differs from what its lines render is the contribution: send it with the lines it was handed.\nNothing else is asked. Lines land through the fold, never by hand; a page and the lock disagree, the lock is right." at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/contributing sig="ed25519:era1:mCnHx+EgLkyNWdi1onSnIRQoRD7PYBwJa575a7F939XPnNKDOlSOvvRoztA7z+JXLEkaMPLXS9q7Zxe3HnAQBA==" value=lock
344
- bound-lock/1 about="What it rests on" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/door/rests sig="ed25519:era1:MLCeZfrNDakij1QtNc+2mRslejcrtTeRhuG1mRKYmUlT3/jZIafnvM+K0dMVFJsy9C8QI0bl39W5o7z8G9SNCg==" value=lock
345
449
  bound-lock/1 about="bound's SDK: the wire, the forms, the contract and the shell you build a world with — a reader of any source or a renderer of any artefact, in an afternoon." at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/door/what sig="ed25519:era1:mfhUEAHowTUH8kiJwCUgkxfaNjkSLDID5n1HQTauA1PZznAVu/1fwIRPCQi8ow56o9PXLmD5gkl5nhBWFhatCw==" value=lock
346
450
  bound-lock/1 about="in its own words" at=witness:a-door-whose-link-was-its-whole-sentence by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/door/words sig="ed25519:era1:6dsxFwyCLflOyG1BZVY14yyGeBdws/H5hEfGJ7C8qo8ylEH3etZ8GnVXBnqx1Eqb6fOJ/4mQaL1KXFRQkR1EDw==" value=lock
347
- bound-lock/1 about="read at @{at}: {reading}" at=witness:a-fold-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/fold/reading sig="ed25519:era1:UEHu/xyLRZgIUI9lKfmIpJelhE7f4PpnCLBd7VDlLxF7G3FHhpQjapnhNnUsojI/sSVTK4Ggp52pHIAo+94WDA==" value=lock
451
+ bound-lock/1 about="{who} apart · {state}" at=witness:a-fold-that-drew-no-meet by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/fold/apart sig="ed25519:era1:ihjwaD5IJp504n5paTg/YjCdg0AV/k24OqCWB56bd+5SXZlJ+Hd+V4iaGwXp+crBKMuzV47D+nSJEp3bTAoTCg==" value=lock
452
+ bound-lock/1 about="{lo}..{hi} · {state}" at=witness:a-fold-that-drew-no-meet by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/fold/together sig="ed25519:era1:fawHujfXipLUG2Mh2BWk4PGCEwuq60iR2GKS0Q5xZovfDMCoK7Kyph9kCW1PUUw5JRPJ14kmvnsLhFbgK4poAQ==" value=lock
453
+ bound-lock/1 about="[The whole example]({at})" at=witness:a-readme-that-dumped-its-example by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/learn/source sig="ed25519:era1:3jC76QTefNyGt9aBf92dnyf2fg4FTSIgm02SgdWzKHIiJQ440+xaoKuhciI3bY/Jr0SHkxulZ78gm03HBddyBg==" value=lock
348
454
  bound-lock/1 about="The line {scope}, drawn field by field: {count} fields, each named by the wire" at=witness:a-line-no-figure-had-drawn by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/line sig="ed25519:era1:sPqV0quqk+d0g6BtFdhm1thGJqqGdmppTLuMQIaXJHpn8ffh2S39D7EQmMsnG+N6LQJ7heuDCLZwEYuBeJHHDw==" value=lock
455
+ bound-lock/1 about="A line" at=witness:a-figure-that-floated-under-no-heading by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/line/heading sig="ed25519:era1:Tt/tdPYInwI5PrDrgDXHNGCxpelKbEXpkeQq3abyn8ebwLMHmZ0NRnaZx87oGT6qToI7y6gzmXdvaPmDzOU6Cw==" value=lock
349
456
  bound-lock/1 about="Handed {input}, it refuses: {why}" at=witness:a-refusal-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/refuses sig="ed25519:era1:5NjjXQrN3r+8xC6pWT9Xa1QsPBbuFCe4hOxtBto9nLh6LKM7MyL/dzUkVvileYWiSSfqoOINaNrlC6QFCmLlDw==" value=lock
457
+ bound-lock/1 about="What it refuses" at=witness:a-figure-that-floated-under-no-heading by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/refuses/heading sig="ed25519:era1:4w1aOV/smYK4L2afuWfOXbEYqVla+dyQhn63FvfwH1LkghIQ5NIXguohoEWnmOv0rDSVDKH2c4g/jdzDDOMDAw==" value=lock
350
458
  bound-lock/1 about="a place adopts it with {scope}" at=witness:a-world-drawn-without-the-line-that-adopts-it by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/adopted sig="ed25519:era1:xkNsX6g4vq4QGwAHkJREb5D0nuebsevq/+WVknANsx5M8acmkWzgbrcEVcigkk6CvCJOCgEH46uo+aPF9IMZCg==" value=lock
351
459
  bound-lock/1 about="packed as {digest}" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/blob sig="ed25519:era1:SI0dKqe76D7wLQqqNI/tq6WkLJD9fZJUfCJprHlzZGotagpFYjuFp7WvKsPOIv8O0GcGqKU7fYArsUCqGNKFBA==" value=lock
352
460
  bound-lock/1 about="declares {domain}, runs on {runtime}, reaches {effects}" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/declares sig="ed25519:era1:cjPSLbxfZ/58ZDr3iNjp5cUv9oalSZMPAv0aJ9FyrMaIZv928rNUvseO5qPO+l4HqVCy/Vco1NCFI5ESpv1PCA==" value=lock
461
+ bound-lock/1 about="A world, built in front of you" at=witness:a-figure-that-floated-under-no-heading by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/heading sig="ed25519:era1:FtguMCZb8esJOXwuO//Fry744s86QP8zXL9NcPHtP9Z7kaGDP1LraXwConXTG1JXifKcO043r/d1iFe/Dg+kBQ==" value=lock
353
462
  bound-lock/1 about="run by the {runtime} host" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/host sig="ed25519:era1:FiISWghpSFk9hVorMYg7+4Yyd4fqE5UuakY5NHatNp2bhAaND4jxSTyACVgfsUc1A9OqnvtbjiHFJtTEv+MhCg==" value=lock
354
463
  bound-lock/1 about="pinned by {place}" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/pinned sig="ed25519:era1:/7TdtPOZ8xx1iJbLC9ETbaCPkS0Xc8rkSATt4/MVENvZrjjRfo5GIokKE11z2cdS7TeNJSIFRPrAO84WmZ2/CQ==" value=lock
464
+ bound-lock/1 about="{name} reads {reads}" at=witness:a-world-said-by-the-file-it-sits-in by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/region sig="ed25519:era1:bTt5v0juDWIhgBcEecvvd/7ueWi0vDnwp/SzWg/n4ZJ9h72ldvGaZL4qvldZ0ZrQqMyxU1IFsxQzEhgmy4ZxBA==" value=lock
355
465
  bound-lock/1 about="{count} regions, the longest of them {longest} lines" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/regions sig="ed25519:era1:cDQi258xDX2EDt+gbMjHqYTqIyYZTRlMDsee9gxT7kTu6I9iCzpor2806IDwRXBJ4UjNf0K+WuJdrV45B6hqDg==" value=lock
466
+ bound-lock/1 about="against topos {digest}" at=witness:a-world-said-by-the-file-it-sits-in by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/topos sig="ed25519:era1:Fm+7EP9NEX1R+FMn8qilStHmXU5f9xzlfQuzasWrF52wPERN5SzAZ3WRaHxLZ4Yer43UYIf6TMLe7yJkMN3XBQ==" value=lock
356
467
  bound-lock/1 about="{count} vector files, each held from the blob" at=witness:a-world-its-readme-never-drew by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/vectors sig="ed25519:era1:vnk3Zu3RQbVitTkIpEmiv8dXkZbeXEYEWBukjtdnwk6df377ByTUv7isjA6Y3pZjXmwn2Zdd/yxfF9UKU+/gBw==" value=lock
357
- bound-lock/1 about="{count} regions, written in one file of {lines} lines" at=witness:a-world-drawn-from-its-example by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/figure/world/written sig="ed25519:era1:xLEFjBcvc0/ssiChbleZaKU7mye1IOjm+UsTeaD6eJMG8h4fiMGwwI+U6q87UoMsUJgYxyJZoeJzaWDwWrKzBw==" value=lock
358
- bound-lock/1 about="Your first run" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/first-use/heading sig="ed25519:era1:TUzNSONmuCOxuGKOgyUYBNUGW36wqv7d8z2Qkc3Gq4PXf5esN09SRU41fbnJCzyFoAK/zkzx+Qh2pKGoA4VXDQ==" value=lock
359
468
  bound-lock/1 about="With it installed, run {name}: a line is parsed, written again and compared with the bytes it came from." at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/first-use/lead sig="ed25519:era1:kb7mqqY11ogyTp72i2pPaNLwJDnJ3z/QldUiHiuUl0W0l3EgdAIcf/yw33luDdFH5x2uhH9ilxzS4ryFo6tbDA==" value=lock
360
- bound-lock/1 about=Contributing at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/guide/heading sig="ed25519:era1:hyAf1w4leq+zN3WrxuC4kWWRBmvMT6QOhHJGPG2O0X2myUmJ4whvvwKDOwcbWYYzL0UaymzjuOSOiiGS/ZQVDQ==" value=lock
361
- bound-lock/1 about="the check command, which is owed" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/guide/owed sig="ed25519:era1:lf3memU4zVN7fyw0cuGRovmM4B1GOSJ0Pxfrjbnz04NJbGhYT136luUAA4ySuRgz91xgJ3O7BOOJhlqN5SKpDg==" value=lock
362
469
  bound-lock/1 about="Everything a system says about itself lives where nobody can check it: a config, a README, a CI log. topos is one line format for all of it — a signed line with a floor and a ceiling, that any head can fold and any second head can verify. Two implementations agree only on what passes between them, and what passes between them is a line. So the line is the one thing held still; everything else belongs to a world." at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/idea sig="ed25519:era1:6kiJbIVrF/EHU+r8sLe44j5oKH3On75fWQ3scn2QmGWVJVpGANjihtcJO3EEHGbRpY9pJOIkdfYByGm4iSRSAA==" value=lock
363
470
  bound-lock/1 about="Why one line" at=witness:a-heading-that-still-said-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/idea/heading sig="ed25519:era1:312hlz3+Mk3nKezTg5xCRrgLEyCw8UJv9RWMv7HXSRNXPs8yJ/3zUoDb9O+11n+rASPpcIp8Fp/W53KsMgeqCA==" value=lock
364
- bound-lock/1 about="A world, built in front of you" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/learn/heading sig="ed25519:era1:/+NOzcNAdkuoA5txnHldYu8rgZ6BexrpvW84KIv/IwNVmjKaiqlaBqyhXzCHvRNxb6G5yCnM6gutM7CMXEcpBA==" value=lock
365
471
  bound-lock/1 about="**{title}** — {brief}. *Breaks if {breaks}.*" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/open/conjecture sig="ed25519:era1:NcuZxo8fxMEF5/ZShDQP6sSjhU2GoTBQiCyIP17Y0pYNRHJNADbZqA2RYVQnHSA43X6ukiEpQMio7puUInZqCQ==" value=lock
366
472
  bound-lock/1 about="What is open" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/open/heading sig="ed25519:era1:nrlZ2/2+PgtHPsXLA6XWY67Afp8qlK2+0gy8O+tSTwFshVQLf/TywYGTiZAp8R8WOOkBSt1RUbG1L3bazDmZDg==" value=lock
367
473
  bound-lock/1 about="{count} cells are still open: the fold holds more than one state for each." at=witness:a-limitation-nobody-typed by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/open/judged sig="ed25519:era1:wEf7q2NiaDHK8sHWMzMykbzer8YDn3/2PZwZkHB/MYcQvMyrWe8ramwdoNZm/QaSStiBPa7s0IMdiDXnP8nUBA==" value=lock
@@ -376,26 +482,22 @@ bound-lock/1 about="release the version with its tarball, once" at=witness:a-top
376
482
  bound-lock/1 about="{version} is released" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/pipeline/released sig="ed25519:era1:5IOlZwP7gdXf+70m0xQJjiU+xzCRQUmpyKMSySb7mMb/bBxfPZzAM/ii6dWQ2cDYmZR6Ff2igLccZE8zsqR7BA==" value=lock
377
483
  bound-lock/1 about="tag the version the manifest names, once" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/pipeline/tag sig="ed25519:era1:7UFSGgiuY6oajhUq4rx5IoSPZqG645zTOfJ6haPqVLqBoIhsq7I+LCiRp6G9s/DRil/J/XEzZ3FWw3Lqc96aBA==" value=lock
378
484
  bound-lock/1 about="{version} is tagged" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/pipeline/tagged sig="ed25519:era1:TwD4X9oBE6y3pExzTXjDxO5CK4HWAe5MWrBU+2rT2rn6CEspP3ey7cX0vdWu+jScBtbCXNcj303ttody6mstDg==" value=lock
379
- bound-lock/1 about=Pointers at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/pointers/heading sig="ed25519:era1:DhLWHJ8pyZl0cvZCZ9HSMVQmejP1frjsnLQHOx445ag4c+AArCO2YFl1RM3wz9iHpduEr282V9+qSZzJp2IhCg==" value=lock
380
485
  bound-lock/1 about="Learn from an example: {pages}" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/pointers/learn sig="ed25519:era1:34aQ7Y4Hj8uJsKo4pDalF95XEVEHQ/lHHlx0lTIKNyj8n/8p2+BPpvYPzhy5cwXHhnL7iQP0aesakFDmzKsLDg==" value=lock
381
486
  bound-lock/1 about="How to read it" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/reading/heading sig="ed25519:era1:oYeaKiVEXPCS0By04oeRmYiIDYfE5XW6sRfgS/JrQXTjKMhM8BSp+QeZ1eUaEFAgby0optsPQTWdR4MtAAbJBw==" value=lock
382
487
  bound-lock/1 about="topos is read one subpath at a time, and each answers one question." at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/reading/lead sig="ed25519:era1:hqLPnHpPtYZCc1AyOQXLO2ZodHeTtdjXoeNJrrFcDQzFEdOZC6Ae6Xq+Z4eu2zjyyFH0iqSGV972on8WSyi2DA==" value=lock
383
- bound-lock/1 about="The {count} subpaths and the question each answers" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/reading/summary sig="ed25519:era1:QRYkQMfZ+MRmQ/S/yTM5fNMPSM8ALY4cjzqsOHVCRHBw43FtmKjte+MdXX/sjMcBBkh3W8itIjE2hhZCTTDwDw==" value=lock
384
488
  bound-lock/1 about="**{name}** · {answer}" at=witness:an-sdk-that-called-itself-a-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/reading/view sig="ed25519:era1:eZ7yGH/YvL4ZeRK1HBaZ68hFDYE98bp9TvZgkq2Ye6TCVFtPB1AVdrw5P2Sk9h/s08xX2U6psW7gJ5fOxsGOCw==" value=lock
385
489
  bound-lock/1 about="Hand it `{input}` and it refuses: {why}." at=witness:a-refusal-shown-only-by-its-law by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/refuses/case sig="ed25519:era1:JqIVwADHm7SInphsaFS00voNRdDgeoMZLvgo+mYzAvq+cDJW0tkeUByyNc2C9sv8x9rrbsjaijH3jjEqpgtwCw==" value=lock
386
490
  bound-lock/1 about="What would break it" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/refuses/full sig="ed25519:era1:iWt+Vikkhpqzx84cCTYMl2jiMUm6kRTVZBH9I+iUVn0efx6Ee9JbuLCf9pk4qNt5AnwYV7k0vsWiGywGPTykCA==" value=lock
387
- bound-lock/1 about="What it refuses" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/refuses/heading sig="ed25519:era1:793kzcntci2g4PxC+7PGPbAPiosUCWeVTzfYUFylgk9cR4rdaAWh00vunyl4eON2iYpEnGTpFAScWofVuXYxDQ==" value=lock
388
491
  bound-lock/1 about="Hand {law} what would break it and it refuses; [the falsifier]({at}) is kept beside the law." at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/refuses/lead sig="ed25519:era1:P8SHSsiUl5XhOZmNldGVwUU31pppqOERiVmy6gi2ISyCZTYXuyV4A+PujbSkryhJbIvYkVSi1jr0qSPwR/rLAA==" value=lock
389
- bound-lock/1 about=Reference at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/heading sig="ed25519:era1:BGTXn6nyc9Tq1/sORs3L6IabHaY7mtopL7Y8ElQ6UMaLIh5F5lGhIHsMiAeDT7hQ7JVIGdyuHYYI94aMBqYLBg==" value=lock
390
492
  bound-lock/1 about="{count} laws, each a line of the lock with the sample that shows it and the module that decides it." at=witness:an-sdk-reference-drawn-as-a-theory by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/laws sig="ed25519:era1:Q07Q/bry6aZTrSLh0Za+oo7/ycPEJTfv2lNcCMHQFL+huNH2Gp3796L2v48xcM1ZcTk2JYcEuVeF+vZkrDzGDQ==" value=lock
391
493
  bound-lock/1 about="| law | what it says |" at=witness:an-sdk-reference-drawn-as-a-theory by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/laws-table sig="ed25519:era1:8BnHuG3YyzGiyR62okcElar60ovSpKHlDWEn9wAAiNjBzwoPaNIOfZUkjlbKfkR6Fz2HWNhmCdjt+SZrOZRkBQ==" value=lock
392
- bound-lock/1 about="{count} regions, each read off the lines its descriptor declares and nothing else; it reaches {effects} beyond them." at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/lead sig="ed25519:era1:XC9NNW0ZDX95HxrYHCPIRgaUg3d/hUllBnDjc5FxXkC89fXv8oIEjZGP5+gHsVrCEPZj+LLAx8+Ca6Y1fZYSAA==" value=lock
393
- bound-lock/1 about="its leaf" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/leaf sig="ed25519:era1:V5elWURoFRhfyfAJu0TZyi2Ys7BotB9WcjDpfuO/ZmMI1E+xuD3syzZEyVXUnXlbO/8TEahumQzXl8xUaq32Dg==" value=lock
394
- bound-lock/1 about="| region | reads | writes |" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/regions/table sig="ed25519:era1:pvge00lvFI5zjQlLDpuJrG4PGS/Qe+NgT8q827Eq3DbA0Kxo63Gs1bnjbRnTm0jADwASujiYgnVJDF2HK+K9Cw==" value=lock
395
494
  bound-lock/1 about="What rests on it" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/rested/heading sig="ed25519:era1:VTp/NZwQGHB/WxVsft7hbioIUW2SyX/ufdDu11YHNdZjIBFKfhLJSTOE2aqd9SFRqx/orO+qShVa0qlOLkI/Bg==" value=lock
396
495
  bound-lock/1 about=[{place}]({repository}) at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/rested/place sig="ed25519:era1:YqQbOSKxt39OYnRO8dulHQorb/FWO8JQvc3QZXRRV3mKlFr/L3mbcoCET37+EyzJPmlToxloK7QyOqw61KyEAQ==" value=lock
397
496
  bound-lock/1 about="[what it is]({repository}/blob/HEAD/{what})" at=witness:a-notation-whose-door-was-not-the-one-shape by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/rested/what sig="ed25519:era1:a8JSOFnSYC4AjwQTqD7DE4xYerSSy+lMmhMBPmWTP6B5geQEgOSAphG7ILTfjmodw3wfNknhrGETAxeBzN0aAA==" value=lock
497
+ bound-lock/1 about="It rests on {names}. Nothing else." at=witness:a-rest-drawn-against-its-edge by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/rests/on sig="ed25519:era1:/4jmEFXpBb1aNHOLbV0ZPamsUYBUSfoZjYQyC5hSYEiLT19AUb4MdIXxRe829tSyAdHoI+UeB4H9O1b8bwMfBA==" value=lock
398
498
  bound-lock/1 about="bound's SDK: the wire, the forms, the contract and the shell you build a world with — a reader of any source or a renderer of any artefact, in an afternoon" at=witness:a-manifest-that-still-said-notation by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/what sig="ed25519:era1:7oYYQZGT6L6Qgk8+9CmmyUqjlRYQtBnHhUr0iXwsg3XsRuFQD18hgqmGt4AJQG5LMnmfcFgSS9rGpbnwt5A9BQ==" value=lock
499
+ bound-lock/1 about="A world travels as a blob: its own lock and its build, the entry and one module per region, split as ES modules and packed as one tar, gzipped and named by the {hash} digest of its bytes. The entry names only where the world lies; the host reads the lock once and loads each region by its name and its role." at=witness:a-blob-the-wire-never-named by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/blob sig="ed25519:era1:5kGCHd4yKOhZeIhsr7Y4m6XywCuLnp65sI4sTBq8kPWSfo2yrCINd7TjOsMiUlfKEd8DhseUOiCBRpTl2EQQCg==" value=lock
500
+ bound-lock/1 about="A world's blob" at=witness:a-blob-the-wire-never-named by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/blob/heading sig="ed25519:era1:HcXyVDonwJzVEOtb2Ifgayfx/ly7X2M3C5vWeEY+/oHzFRFK5ilzLwquwEPfvg0JI/AmrhfkDZsXn1gU1VSACQ==" value=lock
399
501
  bound-lock/1 about="The canonical line is the header, then every field in the byte order of its key, one space apart, each value quoted only where it must be. Parsing a canonical line and writing it again gives back the same bytes. The digest of a line is the {hash} of those bytes, and a signature travels beside the bytes it signs, never inside them." at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/canonical sig="ed25519:era1:Pv8+Q5d8TN4k6l9xc74aGKk8z8NgK+0Cd0v9coz1jKKhchrFlgpaw/2snV/zOE0mtcFZDfERIh3A2kcFmbqJDA==" value=lock
400
502
  bound-lock/1 about="Canonical and parse" at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/canonical/heading sig="ed25519:era1:tSznYP+AvcMKDRFpisBdqH4NBE2Cnvw4xUl2JyWhDEOSPbg+wlhaLjzwIB3jJrcvNA26p1VQ6T5idAJfOpUXCg==" value=lock
401
503
  bound-lock/1 about="The corpus" at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/corpus/heading sig="ed25519:era1:9xqcqZx5BOlIXYzeDREvKIK0GUR5RBhY5TFUBuoFQYxfHOpXnEjqDFspK19z6QHkmU508db8vrvGlB5gKhGRBA==" value=lock
@@ -416,7 +518,7 @@ bound-lock/1 about="A value that holds a space, an equals sign, a double quote,
416
518
  bound-lock/1 about=Quoting at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/quoting/heading sig="ed25519:era1:Xyxrb6tUIiRyDe7DfOMtl6tZcxoxWVV0HXvDPF8Q9A7q0yRx9ChxVL+vm9EweobwFpwNYi7wCr3XHFrecaSYCA==" value=lock
417
519
  bound-lock/1 about="The reference" at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/reference/heading sig="ed25519:era1:4dkPQetQ+v6yAsvd1cWK0MM+mRttiijim5xkQNTXhNGJzmtCILSrEI9Aqv2Q9cP2SykGgqWd7Luv4/ZvVjOOBQ==" value=lock
418
520
  bound-lock/1 about="| function | as the language reads it |" at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/reference/table sig="ed25519:era1:9oIc1u0tucCwFjrrany+PpjTFYSf3M7IQeouwxxOKDst/kdSTgZ7e/m64BEc2r396k6dIwte5WfC1z4WXTGdDA==" value=lock
419
- bound-lock/1 about="The kernel never looks inside a value; each value has its own grammar, one function each in `topos/wire`. An alphabet is members apart by `|`, with `\\|` and `\\\\` escaped, `not:` before them to forbid and `none` for no member at all. Fields are `key=value` members of an alphabet, parted at the first `=`. A scope is steps apart by `/`, every step kept. A region is `name@resolution`, its resolution digits or `*`. Each function reads its text and writes it back canonical, and what it writes reads back the same." at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/values sig="ed25519:era1:xNgg2UFFbII1fAmicrypRJHqOYW8i+39IZswRwJdNA1UmJyiqTcn+BU4U2GgDSkI2jEsiZJ+Jd+8IB11kac+BQ==" value=lock
521
+ bound-lock/1 about="The kernel never looks inside a value; each value has its own grammar, one function each in `topos/wire`. An alphabet is members apart by `|`, with `\\|` and `\\\\` escaped, `not:` before them to forbid and `none` for no member at all. Fields are `key=value` members of an alphabet, parted at the first `=`. A scope is steps apart by `/`, every step kept. A region is `name@resolution`, its resolution digits or `*`. A requirement is `name@range`, parted at its last `@`, so a scoped name keeps its own. Each function reads its text and writes it back canonical, and what it writes reads back the same." at=witness:a-requirement-the-manifests-parsed-by-hand by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/values sig="ed25519:era1:Y6aVosVw+glyJLHelx26icP5oajX3lnRNpS0NIq2NKTThrt9HoYe0Eac5SbwFJLJcad8Y6XcCQ6i8Lk8SsTDDg==" value=lock
420
522
  bound-lock/1 about="Inside a value" at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/values/heading sig="ed25519:era1:qOsggWAvyyH/7sX5tgoC8CRf/3tqJOUieFQMlv+wEgGLMp6Wg1tyay04w2qho/MJccfG3I5ywXDliwN3/TtnBw==" value=lock
421
523
  bound-lock/1 about="the published place's first line: its lock begins here at epoch one, judged by a bound not yet on npm; a token publishes once, and every publish after it is the trusted publisher's" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=status role=writes scope=publish/bootstrap sig="ed25519:era1:7rcOJIygVblrbvnmv0YB8Jub7A/eRCCE7/tNCbiyy9g8WLdj+LpBXVfXEgHkuBraB6Xs6bEkzkQsFQikPtShAQ==" value=topos
422
524
  bound-lock/1 about="the version this place carries is on the registry: it rests on published/topos/0.1.0, the FACT npm view lands, and stands owed until that is paid" at=witness:a-publish-that-failed-and-read-green by=owner condition=published/0.1.0 epoch=1 form=alphabet measure=status role=demands scope=published/0.1.0 sig="ed25519:era1:sT/dGo2Sd61meQTRYg4vu8MCKVaKvmomul/NXKCB0AGKMctf/T+xnYQJc388RQWdFLKqfCYMvapjTL6L+ayeAg==" value=present
@@ -512,6 +614,7 @@ bound-lock/1 about="what a demand costs to pay and what paying it lands" at=poli
512
614
  bound-lock/1 about="the obligatory as its definition says it, with the four states and the parts it is made of" at=witness:the-door-said-nothing-of-what-it-owed by=owner epoch=1 form=alphabet measure=text role=writes scope=region/the-object sig="ed25519:era1:y+siLz2OuJikdgMMrF4ZCxC09/HeCNXwQb5V/P5AwyJO+PlIWPWe0TtzB4nSGNcnfvHYlnUnMBKbID8LshPZBA==" value=lock
513
615
  bound-lock/1 about="the paper: the owner's words on what it proves, then the reference a reader copies, its authors, year, title, version, publisher and address" at=witness:a-paper-cited-without-its-reference by=owner epoch=1 form=alphabet measure=text role=writes scope=region/the-paper sig="ed25519:era1:yVUPf/QoETF3SARmCznKjbRDfEm5NPyrs3M4NGM9PdNp8jB7C+VXhKTVL/Zq+rk0wUWDTS1LM5nikLTQ+UDpDA==" value=lock
514
616
  bound-lock/1 about="four real calls and what each of them answers" at=policy:region/thirty-seconds by=owner epoch=1 form=alphabet measure=text role=writes scope=region/thirty-seconds sig="ed25519:era1:M1VLqIDzoeDMxG0CdmjtQSj3jxrpgYdj3z+Cp2FezbszSEoxXb74McOmrWHeXwDu5ad9SZrcv/gePHy2qFVqBg==" value=prose
617
+ bound-lock/1 about="the demo world's place: what several origins measured, each quantity read as one cell, released as the blob its digest names" at=witness:a-demo-world-with-no-place by=owner epoch=1 form=alphabet measure=coordinates role=writes scope=region/topos-measure sig="ed25519:era1:i6A/80w/NC4QajbmmTXu1uFoD4vVWGGJ2w79kNPngYrz51kattIkK/htlYpV8oYTyTwps0xnz+BJShWZXD7bBQ==" value=topos-measure/**
515
618
  bound-lock/1 about="the place a reader of the typescript tree moves to when the tree splits by the kind of source each reader reads: its own capsule, lock and vectors" at=witness:a-capsule-of-eight-hundred-and-five-lines by=owner epoch=1 form=alphabet measure=coordinates role=writes scope=region/topos-typescript-artifacts sig="ed25519:era1:li/pflnQovWQLYC1wzRDQo6czPa9bEKn8bbgjUUJWvrsv3XlIfgLUCU18QD/w8rzs2LVw2kDCchZF/9qg6JVCQ==" value=topos-typescript-artifacts/**
516
619
  bound-lock/1 about="the place a reader of the typescript tree moves to when the tree splits by the kind of source each reader reads: its own capsule, lock and vectors" at=witness:a-capsule-of-eight-hundred-and-five-lines by=owner epoch=1 form=alphabet measure=coordinates role=writes scope=region/topos-typescript-concepts sig="ed25519:era1:pVHWjs6y0KzaqihZkLI/zIzHhSSWnxiz/ZHNabMIkLigxCNH+TOa7LM8elLFCHqLj9gu3vtL5P1YYnoV8S4dBQ==" value=topos-typescript-concepts/**
517
620
  bound-lock/1 about="the place a reader of the typescript tree moves to when the tree splits by the kind of source each reader reads: its own capsule, lock and vectors" at=witness:a-capsule-of-eight-hundred-and-five-lines by=owner epoch=1 form=alphabet measure=coordinates role=writes scope=region/topos-typescript-packages sig="ed25519:era1:HGcPiXNX0rH2Ji0CBZgHxWHvpWya8nwzDulJS5z5Oqf37/RSBVgD2ST2wJ9gE9hkbOp1/ygj38NMLE0lYl91DQ==" value=topos-typescript-packages/**
@@ -527,24 +630,38 @@ bound-lock/1 at=witness:a-notation-whose-samples-no-page-read by=owner epoch=1 f
527
630
  bound-lock/1 at=witness:a-notation-whose-samples-no-page-read by=owner epoch=1 form=alphabet measure=id role=writes scope=samples/yes sig="ed25519:era1:eO3kGZ+j/a3SRb1DnaP2HQHymquLhF/4oOgcOGcXCkShqMQ1pTjYLz+amUO0tj+d9DLGnSRwEpoxkLOpGAaEBg==" value=samples/yes
528
631
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=scripts/build shape=package.json sig="ed25519:era1:g6LO3iXKa2r30n7xPS9VcNU/PV00nQiXQNeR8GFsAD/7xD2A3DsB8YT+XIxVqn4Cphwh7AFTnRyerCIoh3VSDQ==" value="tsc --build"
529
632
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=sideEffects shape=package.json sig="ed25519:era1:S7xAW/8mFy+mgZqZ4zuw2WrUtucel/4Bq1kaWMk2H0wtVh6oVbS85ZVuHNp88XPK6VmqewF2aK/8Iyzc8R1/AQ==" value=false
633
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/authority/** sig="ed25519:era1:7Th07ooJ3ivOm7BROUuPauoLiwA96Ys5JadQUeSEQ2893r/TL4+Nfuy0GOgZVmjB+i2b+5l8TshR+Nu4djRFCg==" value=0..0
634
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/capsule/** sig="ed25519:era1:10tIzKUINA9wTIXLQoWcRUb4WXUUrz9JFNfAfpk7HZCyH6NOOHz/1+VrRd5AiNbovbjecT2DoKFPd/dfhKfnAA==" value=0..0
635
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/classes/** sig="ed25519:era1:Uq9egBnQwjTvFAbuU/fhftDwLsuh9c/FQSt19dHk80C8GyQIkddHfAVd3pa+9aatsGBec9NWihYu+eoWxNfcAQ==" value=0..0
636
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/contract/** sig="ed25519:era1:J/kR3SV1gU/mPVDWxyFBTNX7lun8FKJZgjYBT3gSvzvZEE++wCO6ubeuAsOsECRyIvj+rJrbfZa8W5OiPNNZBQ==" value=0..0
637
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/forms/** sig="ed25519:era1:UU0B4rBU/agqCuSjz9Ug5r/KtITbVMMzog2jDKl3nA7PKTT0lU2z0TLBgpgAbiSsFgpKJGpjx4P4msnQlitDAw==" value=0..0
638
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/form-splits/src/readers/** sig="ed25519:era1:mxAGmcfJnVYidDE8PMqA607y5EzqSF+jAvRcp88hHtOXDzG1Da2R9p1AyWa12T1WkUJ3HJ7aYMLDK10nnDlCCA==" value=0..0
639
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/authority/** sig="ed25519:era1:JZVLmrJxkTQ9Wc0uCcFGdfpuJSYa2pRMXn9KF0W2tYPtyaUbrBcfL6On+FGap7o/UX5aq5IJph1nVLryOPwgCw==" value=0..0
640
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/capsule/** sig="ed25519:era1:gv95c9xpRq3jD+vhmlJF5VWns/BMIkZFiKfgs0elcsMwEv3b3vLGrPTlqz6D8W0WEYgj8lDgj/hODm1dFC5jBw==" value=0..0
641
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/classes/** sig="ed25519:era1:ctmXgH/KN5O/iEOeIvbgil7YAmGBxqsnS4aYtvAV1WCBtpgj2d3yDrxLw+SpYyeZMjx8pSu058F6cj6+wt+UDw==" value=0..0
642
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/contract/** sig="ed25519:era1:F7Fyno0NOggVLYaID/qv8J9epCJQoKOnGArzJv9iydnTg2xo+n3Uke6gKxAV8bzOqdqflEA0UlLfxJ/F7Sl4CQ==" value=0..0
643
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/forms/** sig="ed25519:era1:1S0zzf4Irglv3+ay43U9nszuRU18OF6QIv/j6si37q6Ngh4LI/118yMrWXBeN0pIQDQ/3goWhS/TMm5KGbmxAQ==" value=0..0
644
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/parsed/src/readers/** sig="ed25519:era1:u34JAu/lIpW84NtOYM8ra+Mtx1eh+SX8zEV+Y5giGsa9tQXrzeBFluvX1SykURz6wiY+hZrJ/gi11m9S8/0TCQ==" value=0..0
645
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/spans/src/** sig="ed25519:era1:+k45l9YTJHxHCMLAyMKbO911RjhUa3uiH0+QQqD+ehvanEAp04Gnra9bM73rLtHShEL7iqaq52zCf9G5pwfRCg==" value=0..0
646
+ bound-lock/1 at=witness:a-claim-read-by-a-reader-that-left by=owner epoch=1 form=interval measure=count role=reads scope=source/text/src/** sig="ed25519:era1:g1V/7pt4e0Q7t92y8JIP3rR4EJxkrCe3jqFDWJRwF5PheGrAZkOmoh2iLtTnIKJ3nSLK/vM9STEkFpslyIaICQ==" value=0..0
530
647
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id role=writes scope=sources/badges sig="ed25519:era1:46JzBJgPV+zFYjxyoDLKBUIbMPcx3/59O7Zy/WT2oiY46csW0V4Koths0ADcgwpkGT/bqY/dxiYZ8Kt0PRAeBg==" value=https://img.shields.io/badge
531
648
  bound-lock/1 about="where the notation's digest resolves: the releases of the published topos, whose digest each world's uses/topos names and every world packs against" at=policy:topos/sources by=owner epoch=1 form=alphabet measure=id role=writes scope=sources/topos sig="ed25519:era1:tQXQ6ZHqRQSkNnGoDs75gSWLEG6SF28t5TDJZSKOi/AULm37dWtlkDKhbxCaDhiTZ4bFgvArZCaTqABLB8+MDA==" value=https://github.com/lapxo/topos/releases
532
- bound-lock/1 about="the ratchet: topos's code holds no more lines than the source reader read at its birth, and each release holds no more; the ceiling is re-signed only downward, release by release, never widened" at=witness:a-ceiling-lowered-by-its-heads by=owner epoch=1 form=interval measure=count role=reads scope=src/lines sig="ed25519:era1:tpvIFe2nWFzSk0H2a9uDfWxV44fzpggy/KUJ/zrGF6el7jvv3HrfYomaw2rTvMNwf6rKYxbciKGDYnNBiSh7BA==" value=0..1645
649
+ bound-lock/1 about="topos's code, at most the lines this release carries: the grammar a requirement is read by joins it, and a refusal type nothing read leaves it" at=witness:a-requirement-the-manifests-parsed-by-hand by=owner epoch=1 form=interval measure=count role=reads scope=src/lines sig="ed25519:era1:wYH8A5CxJJMWI+y9vypNtWECJgU7FL/pkpGwDl7K89eHRKbopmYgR6S6Fy01I4ecmsDQUE04FLB/BBhuJT6UCA==" value=0..1649
533
650
  bound-lock/1 about="the render each state carries, signed once: its colour and its glyph, in the order the definition names the renders, and the colour text is written in, light, dark and on a filled node; every figure, graph and badge reads it here" at=witness:a-text-colour-on-a-filled-node-written-in-the-capsule by=owner epoch=1 form=alphabet measure=id role=writes scope=theme sig="ed25519:era1:IKLKPwG8M4JfRL+Rc7/jflZW64f7j9Thl+ojfcuXEJUF2jtPp7OzTHqmW2BmWltr1il2+lQN76aCW+OKWLOUCQ==" value=green:2da44e:●|grey:8c959f:○|red:cf222e:✕|fork:8250df:⋔|text:59636e|text-dark:9198a1|text-on:ffffff
534
651
  bound-lock/1 about="the module system a consumer loads: the one the algebra is published in" at=witness:a-form-no-block-could-reach-in-a-commonjs-build by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=type shape=package.json sig="ed25519:era1:nl0SD8Py4NekJu5WqfewcZe8pvx5NQIEkZZ282/MfjNe6HrHvUISaGd667+g+4d3pg3yAH7UrRSKDtgHWPY0Cw==" value=module
535
652
  bound-lock/1 about="what topos uses of obligations is a range; which release answers it is a resolved/ receipt the lockfile renders from, never a line" at=witness:a-range-older-than-the-release-it-was-packed-against by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/obligations sig="ed25519:era1:gS+2s+RiVAXeSuIOrPz+qUpuJKZOow1Df8Q0s4ULE5EQnzVSQ0f/ptvCBIqtsLcbQSqhOlJ3RNqPi0aasTVbDA==" value=^0.3.5
536
653
  bound-lock/1 about="the capsule this place's lock and capsules are read by, each count a count" at=witness:a-capsule-bundling-a-topos-nobody-released by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-bound sig="ed25519:era1:EXOB9i2rdoo5HEPEzeKSL/HOzJRIliGiAbOpXfcPUxRVAubCc+q+5siPGAqeKcEU64l2XvRGONWdSPYGeTimCQ==" value=sha256:8742250a27d7848a731c72f2f6296a3527ff68e0b5232c6afd44e0d2b666ee92
537
- bound-lock/1 at=witness:a-figure-drawn-from-what-a-place-ships by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-doc sig="ed25519:era1:UN8W1TXC8TFCnmoScOg1jbTRorf7WBVOUQKIdwEGsOjHBuBfKdJgmxL550hDlBATrll9b/8xWVtThaRuiJhLCg==" value=sha256:af04c9130ecc9d723d3795e1fbf75cf8ce79e545a48747b68e95180219e53725
654
+ bound-lock/1 at=witness:a-world-that-typed-its-own-look by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-doc sig="ed25519:era1:2hKYSVdIVoWUaQSLdbWmvTHyRmrmzxMhYUlgJWElliAJP4lbIheOz5p6GZE7dJ7nxRbgTcDSilrddmuq1NkFDw==" value=sha256:3af35f8a7ccdd752196de70640b28d8ceb79d16f5c845bf2fe3884bf8cb9ac31
538
655
  bound-lock/1 about="the capsule this place's pipelines are rendered by, each command its place's own line" at=witness:laws-that-read-a-text-no-reader-emits by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-github sig="ed25519:era1:w49tVEdfrLpJ+oYtRpkvf9f2DL/CdN8QVViqFQhhEhxptzM9hL3ckIfOcmtsE3p+xhWIW1n4fM0H0dhl1X0eBg==" value=sha256:11024bce063738c1d375a7033d99e90245bc8497e59626234c5dc73b4623e6e8
539
- bound-lock/1 about="the capsule this place's manifest and build are rendered by" at=witness:a-capsule-bundling-a-topos-nobody-released by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-node sig="ed25519:era1:jB3vwEgK/ZHPT0mmgpy82uZ74fCxuZ6zKfGw7TLVZsZhPOAKl29ZfxOgUICjFt7uXcpaZT8XXSzho1Lzyw4PDw==" value=sha256:384a74b07eb8c7235e584b2801dbda1d78acd7ef6dac933ab05400a40658c55b
656
+ bound-lock/1 at=witness:a-manifest-that-spelled-its-own-indent by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-node sig="ed25519:era1:gSmU+iVNVZVMC7fxIpBK0+By1CmzoGFkmsMaThyMvnJIP8CdCKcDadyFGnnpCDy9XvEGYLHA++awTyY+mJVnCg==" value=sha256:64e7858876be9cdd3687cdd224e797531d6576fdcb4fb6b2207c6c2b2be6ff7d
540
657
  bound-lock/1 about="the capsule this place's code is read through, each measure combined as it declares" at=witness:a-capsule-bundling-a-topos-nobody-released by=owner epoch=1 form=alphabet measure=id role=writes scope=uses/topos-typescript-tree sig="ed25519:era1:N6JpWdiE8/k3tD8FYP7bvuMJhlbN5GU8L3c/W0eL5DktKJlK5Dud/q6BBj/EzOU85g1wxi/F9juHU2yhkO0kCQ==" value=sha256:9d9b44b8ef299b946b823a1767367b64ef6b333c1566f8ea3ae74da4f3f3ce13
541
658
  bound-lock/1 about="coverage-honours-withdraws: a key's coverage is its standing lines, withdraws honoured; a withdrawn coverage covers nothing signed after it, and the old reach is never counted again. Read by the one harness over the lanes' key lines" at=witness:coverage-that-never-narrowed by=owner epoch=1 form=alphabet measure=pass role=reads scope=vector/coverage-honours-withdraws sig="ed25519:era1:VH+j1prCqR0vErNlRXSo+2a/KScHs46nL2UgPoxkO1MNxOsjIbOCP5IwZzciegHzb08N5L3szm13gwLC8NLzDQ==" value=pass
542
659
  bound-lock/1 about="After the header come the fields, each `key=value`, apart by runs of spaces. A key appears once, and a line that names one twice is refused. A value `-` is absence, and the field reads as unwritten. A field no reader knows rides through untouched. `needs` names coordinates by path, never by digest: steps apart by `/`, a wildcard only in the last step. A line rests on bytes in `restsOn`, an alphabet whose member is their digest, `sha256:` and 64 lowercase hex digits; a member that is a scope rests on that line instead. For example: `bound-lock/1 at=witness:a-second-head-that-never-said-what-it-is by=owner form=alphabet measure=status needs=verify/docs/what.md restsOn=sha256:fd99c1421a6a4ccabc4de5a34e1d604e68a66d31004d651d3be982f1c0c623e6 role=demands scope=verify/docs/what shape=render value=present`." at=policy:wire-page by=owner epoch=1 form=alphabet measure=text role=writes scope=prose/en/wire/fields sig="ed25519:era1:FcrNUr/pq8sTCGt+beJNAPXHPs6b/yoCjXkBeJaxAY3KYOSvcoHqhs9aFXU4mmgFCccR9OfF13RdaArvTS9LBQ==" value=lock
543
- bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=package.json role=writes scope=version shape=package.json sig="ed25519:era1:8+/yRI07V+P7UbmxQqFbQf62Sdv6lmp+ENBmlzOXB52UDtd17m3qrM4c/QmR+Jsi79ZkEbugWzebGl5z1lT8AQ==" value=0.1.0
660
+ bound-lock/1 about="the version topos carries, as the owner states it; its compatibility witness is the release before it: its vectors, tests, samples and examples are carried byte for byte and hold against the new code, and the grammar a requirement is read by adds its own cases to the corpus" at=witness:a-grammar-the-release-before-it-lacked by=owner epoch=1 form=alphabet measure=id role=writes scope=version shape=package.json sig="ed25519:era1:8Ux2PUiUtGa+j+TpnUMIEtCy7SRVST0NvZsMfIdJLXBoE7kA45W5joj/JPTWKXyvVkeT8reTIrAukD0SgBXRCQ==" value=0.1.2
544
661
  bound-lock/1 at=policy:place/version by=owner epoch=1 form=interval measure=version-differs role=reads scope=version-differs sig="ed25519:era1:Rk62Otv6B9gylPWMDOZEJigPNgz+GY0oac9TxuBH/RvFb9G3vf2uMbDWVoCZ+YkiWlx5zVacfyLY5/43C+bGAQ==" value=0..0
545
662
  bound-lock/1 about="how to cite the place: the file a forge reads for its cite button, rendered from the lock and never written by hand" at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=CITATION.cff role=demands scope=view/citation-file shape=CITATION.cff sig="ed25519:era1:GZ2t8DBb5ElL/V12/lWJosgBd6tN33WKpZ+z5vr7+bdn8fh1jSo5dSis7AjcGHHCLw6XfoqlVVdippKQ72e4Bw==" value=cff
546
663
  bound-lock/1 about="a state renders with its amplitude, from the theme line; two greens of 0.9 and 0.1 differ" at=policy:views/colour by=owner epoch=1 form=alphabet measure=id role=writes scope=view/colour sig="ed25519:era1:avXiTv3z6Ja1GaHYOQcoOGyagObE4lG27S0L6gXTYlCjQ9oEYJn5BgGyE/2flfz3e40KfPk80OZ3GDT9TH+LBg==" value=state|amplitude
547
- bound-lock/1 about="two lines on one scope from two origins, folded: the first two of the first wire sample the place ships slide onto one scale, then their fold is read at each resolution the wire names" at=witness:a-fold-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=id needs=docs/img/fold.svg role=demands scope=view/figure-fold shape=docs/img/fold.svg sig="ed25519:era1:NL2yIHGlgg3RDlCUpfUajhDm8lrBn5MghLwDEvcKSa/V8YLiXQDXOoFSHgs1pOFviywi5HJAiq8IkjUaIWRPDA==" value=figure-fold@1
664
+ bound-lock/1 about="three lines on one scope from three origins, folded: two that meet drawn as one cell and the third apart, from the sample this view names" at=witness:a-fold-that-drew-no-meet by=owner epoch=1 form=alphabet measure=id needs=docs/img/fold.svg|samples/yes/three-origins-two-meet-one-apart.json role=demands scope=view/figure-fold shape=docs/img/fold.svg sig="ed25519:era1:fJQr+qIM/V6fRqERhhWv08VjucNnWprIYBBgkP0lfB3DmENGKz+5vNhzKrpswFSqaHgONV1Xj9detec+m1uoCA==" value=figure-fold@1
548
665
  bound-lock/1 about="a line drawn field by field, each field labelled by the wire's own word: the first line of the first wire sample the place ships, as its reader says it" at=witness:a-figure-that-drew-a-line-no-sample-carried by=owner epoch=1 form=alphabet measure=id needs=docs/img/line.svg|samples/yes/two-origins-meet-on-one-scope.json role=demands scope=view/figure-line shape=docs/img/line.svg sig="ed25519:era1:KUz7DR+aHeUaAiJMzfsKs8QFW4kcDRI62hUbhFTqIImu/ol/G039vaiPY1VPQk2obhrROnoqjC5S+cPyRs8YAA==" value=figure-line@1
549
666
  bound-lock/1 about="a case the place refuses, crossed: what the first refused case of its vectors was handed, and why it was refused" at=witness:a-refusal-the-door-told-and-never-drew by=owner epoch=1 form=alphabet measure=id needs=docs/img/refuses.svg role=demands scope=view/figure-refuses shape=docs/img/refuses.svg sig="ed25519:era1:8DY5G9/67vWHi6bjqLmIFWiWwTMgLaRAlSaCq+wYYVmmGMEFBSs4icIzVJTT5g+o3LEC1CSyvjJqqfOPyFAVBg==" value=figure-refuses@1
550
667
  bound-lock/1 about="a world's anatomy drawn from its own capsule.bound: what it declares, its regions, its vectors, its blob, what pins it and the host" at=witness:a-figure-with-nothing-to-draw by=owner epoch=1 form=alphabet measure=id needs=docs/img/world.svg role=demands scope=view/figure-world shape=docs/img/world.svg sig="ed25519:era1:TZv0TxGHOKgRyv4L8YkEC8vr86KsWVHjDefhs0K9LzPTzyLWXTQwAnY5UuYiS51sqziRuzfyNtKg6UEvNQFjDg==" value=figure-world@1
@@ -556,12 +673,12 @@ bound-lock/1 about="open cells bits first, then reach" at=policy:views/open by=o
556
673
  bound-lock/1 about="the release of that version: published once by the trusted publisher, with its tarball attached" at=witness:a-provider-chosen-inside-three-regions by=owner epoch=1 form=alphabet measure=id needs=.github/workflows/release.yml role=demands scope=view/pipeline-release shape=.github/workflows/release.yml sig="ed25519:era1:7L2nWpX/caSk6IxmN/WwK62YyzuS2lW9FMaQZEvnh+T7QcZpoiRthxnkLlC8oarXLCj1K65Ud2Er5Ul1O5I+Cw==" value=github-actions
557
674
  bound-lock/1 about="the tag of the version the manifest names, made once" at=witness:a-provider-chosen-inside-three-regions by=owner epoch=1 form=alphabet measure=id needs=.github/workflows/tag.yml role=demands scope=view/pipeline-tag shape=.github/workflows/tag.yml sig="ed25519:era1:JIH1mSh0nIZ8CbotHUahwl9z9FOwUUJGWGJw1DgeRVXcZC4YhVQuO8Vh6krN/MDROQhK+XqH8A3x6nHBuOPSCA==" value=github-actions
558
675
  bound-lock/1 about="the check on every push and every proposal, on each engine the place supports" at=witness:a-provider-chosen-inside-three-regions by=owner epoch=1 form=alphabet measure=id needs=.github/workflows/test.yml role=demands scope=view/pipeline-test shape=.github/workflows/test.yml sig="ed25519:era1:63RysoOYzMy2XhmogjuTPKQtrokXGdFtEeVvqq6rgUDhzE6e5bXERpUnR4hUXMMm1eo2U4PCGov+vuq0ekKbAQ==" value=github-actions
559
- bound-lock/1 about="the door of the SDK, in the order a reader meets it: its mark, its name and its line, what it is, the idea, a world built in front of the reader, what it claims, one line drawn field by field, how it installs and a first run, a case it refuses crossed and what it refuses, how to read it, what rests on it, what is open, how it is checked, and where to read on" at=witness:a-rest-drawn-as-a-graph-no-reader-could-read by=owner epoch=1 form=alphabet measure=id needs=README.md role=demands scope=view/readme shape=README.md sig="ed25519:era1:bZX3FFx4Yw7F2B3kWTJXFbhPWGxB4ZUsawUVE7kLt2RjtwgKbXp15Zcwt9B6sLXL4v7E6wXDGOLEp5EuRLBeCg==" value=hero|door|idea|figure-world|learn|claims|figure-line|install|first-use|figure-refuses|refuses|reading|rested-on-by|open|check|pointers
676
+ bound-lock/1 about="the door of the SDK, in the order a reader meets it: its mark, its name and its line, what it is, the idea and a fold drawn under it, a world built in front of the reader, what it claims, one line drawn field by field, how it installs and a first run, a case it refuses crossed and what it refuses, how to read it, what it rests on and what rests on it, what is open, how it is checked, and where to read on" at=witness:a-readme-that-dumped-its-example by=owner epoch=1 form=alphabet measure=id needs=README.md role=demands scope=view/readme shape=README.md sig="ed25519:era1:t/EU1WET8dBqQt0u3p1XxpIPdiuwauB825brJJfq+kKKabaVNwOCRvGGhL4VyMYjjcdO4Ysxi5Qm1x1YbwYbAw==" value=hero@1|door@1|idea@1|figure-fold@1|figure-world@1|learn|claims@1|figure-line@1|install@1|first-use@1|figure-refuses@1|refuses@1|reading@1|how-they-rest@1|rested-on-by@1|open@1|check|pointers@1
560
677
  bound-lock/1 about="a place ships its receipts at @0 and @1, as audit/wire/receipts rules: the root line, whose at names the @8 set in the root's store, then one line per region with its count at the digest of its set; @8 stays in the root's store and travels as a release asset, so a second head reads a place's receipts in one read and fetches the set by the digest the root line names" at=witness:receipts-shipped-whole-where-the-ledger-ships-at-1 by=owner epoch=1 form=alphabet measure=id role=demands scope=view/receipts shape=receipts.bound sig="ed25519:era1:fHWAs0nkqzbxuUghpN2c9i3+9+3/1nou6E4Ri+QUtyLYci4CUg+oFQI2CXdqHRxVWmDM9u4SZbtawQ3ZxQHNBQ==" value=receipts@0|receipts@1
561
678
  bound-lock/1 about="the reference of a capsule: its regions, what each reads and what each writes, read off its own descriptor" at=witness:an-sdk-reference-drawn-as-a-theory by=owner epoch=1 form=alphabet measure=id needs=docs/reference.md role=demands scope=view/reference-capsule shape=docs/reference.md sig="ed25519:era1:4RhdQV7z6FF7n1eKGJU9VGs0mkbbML+/I/vuYfve4ETycKPEAzrPyzRhH1Y2blNbfoz3X6MBbJ5aLPOaGg9FDw==" value=regions
562
679
  bound-lock/1 at=witness:a-topos-that-was-not-a-place by=owner epoch=1 form=alphabet measure=id needs=tsconfig.json role=demands scope=view/tsconfig shape=tsconfig.json sig="ed25519:era1:mLR9jexWiTXqB6zfLBFv3NIqoQcrfWkDxSAOTeiyvGupumfWbFlJ8MxGreTII22guzssnlarnKtyY4PvDsQ6Dg==" value=build
563
- bound-lock/1 about="the wire of this place, written from its lines by the capsule that renders it" at=policy:place/views by=owner epoch=1 form=alphabet measure=id needs=docs/wire.md role=demands scope=view/wire shape=docs/wire.md sig="ed25519:era1:QCQ8JiW2bsohnbTFZZbIla0XXAFA0h5PQ50Lo5e0NMzGBblE/aqukWaiOEnp1xXH7kE50WuVCpuxSKyHE6KrBw==" value=wire
680
+ bound-lock/1 about="the wire of this place, written from its lines by the capsule that renders it" at=policy:place/views by=owner epoch=1 form=alphabet measure=id role=demands scope=view/wire shape=docs/wire.md sig="ed25519:era1:JvVNo049g6Jpi1s3LrReLOy6GQE++jnHHBtsXcSJXSU94YUF5NfbucUbW44e/y/XrEcuQfEg53RjMuX2bqhEAg==" value=wire
564
681
  bound-lock/1 at=policy:topos/wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/corpus sig="ed25519:era1:fOwwTw1uDC7kPs/YScf0HBQrbRnojzidHsd06dbNy4Pta1xfqiSsP61/+IzZ4y1sIbGYzNrEfTNNu1uhPThXCg==" value=spec/bound-lock-1|spec/fold|spec/values
565
- bound-lock/1 at=policy:topos/wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/reference sig="ed25519:era1:BhBLUxG6kaqekXYni7Sg1QXHajXwNIuAlsAR9C2Yn21UdH0s6WcaaRBVjI8i2TYvoYAn6+STF4gddlSTsd/SBw==" value=parse|canonical|signedBytes|byBytes|alphabet|fields|steps|atResolution|decimal
566
- bound-lock/1 at=policy:topos/wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/rules sig="ed25519:era1:LrxfSIGeamZGBA/Dn3wsPXPPRMGZyc2EmZudHABPDXYVYZyUtqNI/Ntkx9A8WFw2ki+UrfFb9yknFDDPPSwHDA==" value=header|fields|quoting|encoding|order|newline|canonical|values|numbers
682
+ bound-lock/1 at=witness:a-requirement-the-manifests-parsed-by-hand by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/reference sig="ed25519:era1:bV/oK/AGmMNFQEzwe+G2052UkcUCgRRXgAN6yqiKGHD536NHypyFbSKDkTuGog2UIXd2pWBERlg7vDUdG28yAQ==" value=parse|canonical|signedBytes|byBytes|alphabet|fields|steps|atResolution|requirement|decimal
683
+ bound-lock/1 at=witness:a-blob-the-wire-never-named by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/rules sig="ed25519:era1:q0jkxwEU9pbfEQM3Enxh8FpFlHiMGHCr7zEPd0dOOz/gw7TKOhXgmYzsSGOZNAyyWFmViz0nskVepXnmdaWSCw==" value=header|fields|quoting|encoding|order|newline|canonical|values|numbers|blob
567
684
  bound-lock/1 at=policy:topos/wire-page by=owner epoch=1 form=alphabet measure=id role=writes scope=wire/tokens sig="ed25519:era1:oILWbvztXmwFdK/TJcxZ79kORdUxlDsyUg6g7RFHdq1Og1JWeZs3FvzxFufrvw6WgfJ2OlBMf+trH2wtQ2ruBw==" value=header:bound-lock/1|encoding:UTF-8|hash:sha256
@@ -3,11 +3,13 @@ type Region = (asked: Asked) => readonly string[];
3
3
  /**
4
4
  * The shell a capsule's rendered index hands its regions to: a region is answered only when it was handed every read
5
5
  * its own line declares, and one handed less is refused — the no every render capsule carries without writing it.
6
+ * Handed the url of a world's index instead, each shell only names where the world lies: its host reads the own lock
7
+ * beside it once and loads each region by name and role.
6
8
  */
7
9
  export declare function shell(regions: Readonly<Record<string, {
8
10
  readonly reads: readonly string[];
9
11
  readonly region: Region;
10
- }>>): Region;
12
+ }>> | string): Region;
11
13
  type Handed = readonly {
12
14
  readonly place: string;
13
15
  readonly text: string;
@@ -24,7 +26,7 @@ type Reading = {
24
26
  * reads only what that line declares it reads — a region fits a read when some tail of its steps matches the read's glob,
25
27
  * and what follows its `@` is the resolution it is handed at. A region no line names is refused, and so is a file of another shape.
26
28
  */
27
- export declare function readers(regions: Readonly<Record<string, Reading>>): {
29
+ export declare function readers(regions: Readonly<Record<string, Reading>> | string): {
28
30
  readonly observe: (bytes: Uint8Array, place: string, region?: string, files?: Handed) => readonly unknown[];
29
31
  readonly run: (place: string, self: string, held: readonly (readonly [string, string])[], region?: string) => readonly unknown[];
30
32
  };
@@ -47,5 +49,5 @@ export declare const counted: (asked: Asked, what: string, n: number, measure: s
47
49
  export declare function receiptShell(regions: Readonly<Record<string, {
48
50
  readonly reads: readonly string[];
49
51
  readonly region: (asked: Asked) => readonly unknown[];
50
- }>>): (asked: Asked) => readonly unknown[];
52
+ }>> | string): (asked: Asked) => readonly unknown[];
51
53
  export {};
@@ -3,18 +3,22 @@ import { atResolution, steps } from "../wire/grammar.js";
3
3
  /**
4
4
  * The shell a capsule's rendered index hands its regions to: a region is answered only when it was handed every read
5
5
  * its own line declares, and one handed less is refused — the no every render capsule carries without writing it.
6
+ * Handed the url of a world's index instead, each shell only names where the world lies: its host reads the own lock
7
+ * beside it once and loads each region by name and role.
6
8
  */
7
9
  export function shell(regions) {
8
- return (asked) => {
9
- const one = regions[asked.region];
10
- if (one === undefined)
11
- throw new Error(`REFUSE·region ${asked.region}: no line of this capsule renders it`);
12
- const short = one.reads.filter((read) => !asked.reads.includes(read));
13
- if (short.length)
14
- throw new Error(`REFUSE·region ${asked.region}: handed less than it declares, without ${short.join(' · ')}`);
15
- return one.region(asked);
16
- };
10
+ return typeof regions === 'string' ? located(regions) : dispatch(regions, 'renders');
17
11
  }
12
+ const dispatch = (regions, verb) => (asked) => {
13
+ const one = regions[asked.region];
14
+ if (one === undefined)
15
+ throw new Error(`REFUSE·region ${asked.region}: no line of this capsule ${verb} it`);
16
+ const short = one.reads.filter((read) => !asked.reads.includes(read));
17
+ if (short.length)
18
+ throw new Error(`REFUSE·region ${asked.region}: handed less than it declares, without ${short.join(' · ')}`);
19
+ return one.region(asked);
20
+ };
21
+ const located = (url) => Object.assign(() => { throw new Error(`REFUSE·world ${url}: its host answers it by the regions its own lock names`); }, { world: url });
18
22
  const fits = (read, place) => {
19
23
  const glob = atResolution(read).name;
20
24
  const [bare, tail] = place.endsWith('/') ? [place.slice(0, -1), '/'] : [place, ''];
@@ -27,6 +31,8 @@ const fits = (read, place) => {
27
31
  * and what follows its `@` is the resolution it is handed at. A region no line names is refused, and so is a file of another shape.
28
32
  */
29
33
  export function readers(regions) {
34
+ if (typeof regions === 'string')
35
+ return { observe: located(regions), run: located(regions) };
30
36
  const one = (region, places) => {
31
37
  const held = region === undefined ? undefined : regions[region];
32
38
  if (held === undefined)
@@ -52,13 +58,5 @@ export const counted = (asked, what, n, measure) => [{ scope: `${asked.region}/$
52
58
  * a count, named by the region that read it and by what it counted.
53
59
  */
54
60
  export function receiptShell(regions) {
55
- return (asked) => {
56
- const one = regions[asked.region];
57
- if (one === undefined)
58
- throw new Error(`REFUSE·region ${asked.region}: no line of this capsule answers it`);
59
- const short = one.reads.filter((read) => !asked.reads.includes(read));
60
- if (short.length)
61
- throw new Error(`REFUSE·region ${asked.region}: handed less than it declares, without ${short.join(' · ')}`);
62
- return one.region(asked);
63
- };
61
+ return typeof regions === 'string' ? located(regions) : dispatch(regions, 'answers');
64
62
  }
@@ -7,6 +7,10 @@ export interface Resolution {
7
7
  readonly name: string;
8
8
  readonly at?: number | '*';
9
9
  }
10
+ export interface Requirement {
11
+ readonly name: string;
12
+ readonly range: string;
13
+ }
10
14
  /**
11
15
  * The grammars inside a value, one function each: handed the text a line carries it reads the value, handed the value
12
16
  * it writes the canonical text, and what it writes reads back to what it was handed. A value is read after its line has
@@ -20,3 +24,5 @@ export declare function steps(text: string): readonly string[];
20
24
  export declare function steps(value: readonly string[]): string;
21
25
  export declare function atResolution(text: string): Resolution;
22
26
  export declare function atResolution(value: Resolution): string;
27
+ export declare function requirement(text: string): Requirement;
28
+ export declare function requirement(value: Requirement): string;
@@ -40,3 +40,9 @@ export function atResolution(given) {
40
40
  refuse('atResolution', `\`${given}\` is not name@digits or name@*`);
41
41
  return { name, at: said === EVERY ? EVERY : Number(said) };
42
42
  }
43
+ export function requirement(given) {
44
+ if (typeof given !== 'string')
45
+ return given.name === '' || given.range === '' || given.range.includes(AT) ? refuse('requirement', 'a requirement names what it requires and a range, with no at sign') : given.name + AT + given.range;
46
+ const at = given.lastIndexOf(AT);
47
+ return at > 0 && at < given.length - 1 ? { name: given.slice(0, at), range: given.slice(at + 1) } : refuse('requirement', `\`${given}\` is not name@range`);
48
+ }
@@ -2,8 +2,8 @@
2
2
  export { PROTOCOL } from './types.ts';
3
3
  export type { Claim, Method } from './types.ts';
4
4
  export { byBytes, canonical, parse, signedBytes } from './line.ts';
5
- export { alphabet, atResolution, fields, steps } from './grammar.ts';
6
- export type { Alphabet, Field, Resolution } from './grammar.ts';
5
+ export { alphabet, atResolution, fields, requirement, steps } from './grammar.ts';
6
+ export type { Alphabet, Field, Requirement, Resolution } from './grammar.ts';
7
7
  export { fromLine, signersOf, authorityOf, windowAt, roleClaimsOf, roleAt, namesAt, isKeyClaim, isWireClaim, wireAt, ENVELOPE } from './claimline.ts';
8
8
  export type { Signer, SignerVerdict, CoordinateRole, RoleClaim } from './claimline.ts';
9
9
  export { matches } from './classes.ts';
@@ -1,7 +1,7 @@
1
1
  /** It answers the line, the forms' encodings, the names — how is a fact written? */
2
2
  export { PROTOCOL } from "./types.js";
3
3
  export { byBytes, canonical, parse, signedBytes } from "./line.js";
4
- export { alphabet, atResolution, fields, steps } from "./grammar.js";
4
+ export { alphabet, atResolution, fields, requirement, steps } from "./grammar.js";
5
5
  export { fromLine, signersOf, authorityOf, windowAt, roleClaimsOf, roleAt, namesAt, isKeyClaim, isWireClaim, wireAt, ENVELOPE } from "./claimline.js";
6
6
  export { matches } from "./classes.js";
7
7
  export { CAPSULE, EXTENSION, LOCK, RECEIPTS } from "./names.js";
@@ -13,11 +13,3 @@ export interface FormGrammar {
13
13
  export declare function boundOf(form: string, value: string, grammars?: readonly FormGrammar[]): Bound | null;
14
14
  export declare const BOUND_FORMS: readonly string[];
15
15
  export declare const REF_RELATIONS: readonly ["within", "copies", "derives"];
16
- export interface Refusal {
17
- readonly kind: 'refuse';
18
- readonly scope: string;
19
- readonly measure: string;
20
- readonly why: string;
21
- readonly witness: string;
22
- readonly at?: string;
23
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lapxo/topos",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Bound's SDK: the wire, the forms, the contract and the shell you build a world with — a reader of any source or a renderer of any artefact, in an afternoon.",
5
5
  "type": "module",
6
6
  "license": "MIT",