<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" style="background: #ffffff; background-color: light-dark(#ffffff, #121212); color-scheme: light;" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="1815px" height="984px" viewBox="0 0 1815 984"><defs/><rect fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18));" width="100%" height="100%" x="0" y="0"/><g><g data-cell-id="0"><g data-cell-id="1"><g data-cell-id="02-2"><g><rect x="16.1" y="15.21" width="1780" height="44" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 37px; margin-left: 18px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: nowrap; "><span style="font-size:30px"><b>People, places and things</b></span></div></div></div></foreignObject><text x="18" y="41" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="12px">People, places and things</text></switch></g></g></g><g data-cell-id="02-3"><g><rect x="16.1" y="59.21" width="1780" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1px; height: 1px; padding-top: 74px; margin-left: 18px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #000000; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#000000, #ffffff); line-height: 1.2; pointer-events: all; white-space: nowrap; "><span style="font-size: 17px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">A permission names members on one of three axes: they may reach the subject (view) or may also be acted on (interact). Extend makes members sources of further grants — an npub or relay grant can do both.</span></div></div></div></foreignObject><text x="18" y="78" fill="#000000" style="fill: light-dark(rgb(0, 0, 0), rgb(255, 255, 255));" font-family="Helvetica" font-size="12px">A permission names members on one of three axes: they may reach the subject (view) or may also be acted on (interact). Extend makes members sources of further grants — an npub or relay grant can do both.</text></switch></g></g></g><g data-cell-id="02-4"><g><rect x="286.1" y="115.21" width="490" height="96" rx="4" ry="4" fill="#f5f5f5" style="fill: light-dark(rgb(245, 245, 245), rgb(26, 26, 26)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 163px; margin-left: 293px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:22px"><b>view</b></span><br />may reach the subject — reading</div></div></div></foreignObject><text x="531" y="159" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="531" y="159">view</tspan><tspan x="531" y="177">may reach the subject — reading</tspan></text></switch></g></g></g><g data-cell-id="02-5"><g><rect x="796.1" y="115.21" width="490" height="96" rx="4" ry="4" fill="#dae8fc" style="fill: light-dark(rgb(218, 232, 252), rgb(29, 41, 59)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));" stroke="#6c8ebf" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 163px; margin-left: 803px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:22px"><b>interact</b></span><br />may reach the subject and be acted on — the subject may name, answer and message them</div></div></div></foreignObject><text x="1041" y="150" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="1041" y="150">interact</tspan><tspan x="1041" y="168">may reach the subject and be acted on — the subject may name,</tspan><tspan x="1041" y="186">answer and message them</tspan></text></switch></g></g></g><g data-cell-id="02-6"><g><rect x="1306.1" y="115.21" width="490" height="96" rx="4" ry="4" fill="#e1d5e7" style="fill: light-dark(rgb(225, 213, 231), rgb(57, 47, 63)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));" stroke="#9673a6" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 476px; height: 1px; padding-top: 163px; margin-left: 1313px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:22px"><b>extend</b></span><br />members are sources: the grants they publish — or a peer is given — flow in</div></div></div></foreignObject><text x="1551" y="150" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="1551" y="150">extend</tspan><tspan x="1551" y="168">members are sources: the grants they publish — or a peer is given —</tspan><tspan x="1551" y="186">flow in</tspan></text></switch></g></g></g><g data-cell-id="02-7"><g><rect x="16.1" y="225.21" width="250" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(154, 165, 177), rgb(88, 98, 108));" stroke="#9aa5b1" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 236px; height: 1px; padding-top: 287px; margin-left: 23px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:24px"><b>People</b></span><br /><span style="font-family: Courier New;">npub</span><br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">a public key</span></div></div></div></foreignObject><text x="141" y="274" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="141" y="274">People</tspan><tspan x="141" y="292">npub</tspan><tspan x="141" y="310">a public key</tspan></text></switch></g></g></g><g data-cell-id="02-8"><g><rect x="16.1" y="363.21" width="250" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(154, 165, 177), rgb(88, 98, 108));" stroke="#9aa5b1" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 236px; height: 1px; padding-top: 425px; margin-left: 23px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:24px"><b>Places</b></span><br /><span style="font-family: Courier New;">relay</span><br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">a relay URL</span></div></div></div></foreignObject><text x="141" y="412" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="141" y="412">Places</tspan><tspan x="141" y="430">relay</tspan><tspan x="141" y="448">a relay URL</tspan></text></switch></g></g></g><g data-cell-id="02-9"><g><rect x="16.1" y="501.21" width="250" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(154, 165, 177), rgb(88, 98, 108));" stroke="#9aa5b1" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 236px; height: 1px; padding-top: 563px; margin-left: 23px;"><div style="box-sizing: border-box; font-size: 0; text-align: center; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:24px"><b>Things</b></span><br /><span style="font-family: Courier New;">event</span><br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">an event, by its id</span></div></div></div></foreignObject><text x="141" y="550" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px" text-anchor="middle"><tspan x="141" y="550">Things</tspan><tspan x="141" y="568">event</tspan><tspan x="141" y="586">an event, by its id</tspan></text></switch></g></g></g><g data-cell-id="02-10"><g><rect x="286.1" y="225.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 242px; margin-left: 298px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>view/npub</b><br />Everything this person publishes openly may reach the subject, wherever it arrives.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">Only the publisher counts: being mentioned is not enough.</span></div></div></div></foreignObject><text x="298" y="256" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="298" y="256">view/npub</tspan><tspan x="298" y="273">Everything this person publishes openly may reach the subject, wherever it</tspan><tspan x="298" y="290">arrives.</tspan><tspan x="298" y="307">Only the publisher counts: being mentioned is not enough.</tspan></text></switch></g></g></g><g data-cell-id="02-11"><g><rect x="796.1" y="225.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));" stroke="#6c8ebf" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 242px; margin-left: 808px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>interact/npub</b><br />…and the subject may tag them, reply to and quote their events, and exchange private messages with them.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">Every guardian has this implicitly.</span></div></div></div></foreignObject><text x="808" y="256" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="808" y="256">interact/npub</tspan><tspan x="808" y="273">…and the subject may tag them, reply to and quote their events, and</tspan><tspan x="808" y="290">exchange private messages with them.</tspan><tspan x="808" y="307">Every guardian has this implicitly.</tspan></text></switch></g></g></g><g data-cell-id="02-12"><g><rect x="1306.1" y="225.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));" stroke="#9673a6" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 242px; margin-left: 1318px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>extend/npub</b><br />Adopt what a curator publishes (via curator), or inherit what a peer — another subject — is permitted (via peer).<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">The member itself is not admitted: it is a source only.</span></div></div></div></foreignObject><text x="1318" y="256" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="1318" y="256">extend/npub</tspan><tspan x="1318" y="273">Adopt what a curator publishes (via curator), or inherit what a peer —</tspan><tspan x="1318" y="290">another subject — is permitted (via peer).</tspan><tspan x="1318" y="307">The member itself is not admitted: it is a source only.</tspan></text></switch></g></g></g><g data-cell-id="02-13"><g><rect x="286.1" y="363.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 380px; margin-left: 298px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>view/relay</b><br />Plain events that arrive from this relay may reach the subject.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">Never encrypted material: that needs an interact grant on its sender.</span></div></div></div></foreignObject><text x="298" y="394" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="298" y="394">view/relay</tspan><tspan x="298" y="411">Plain events that arrive from this relay may reach the subject.</tspan><tspan x="298" y="428">Never encrypted material: that needs an interact grant on its sender.</tspan></text></switch></g></g></g><g data-cell-id="02-14"><g><rect x="796.1" y="363.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));" stroke="#6c8ebf" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 380px; margin-left: 808px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>interact/relay</b><br />…and it counts as a permitted destination: once a guardian grants any interact/relay, the subject's own events may be hosted only on such relays.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">A covered recipient's own inbox is still reachable.</span></div></div></div></foreignObject><text x="808" y="394" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="808" y="394">interact/relay</tspan><tspan x="808" y="411">…and it counts as a permitted destination: once a guardian grants any</tspan><tspan x="808" y="428">interact/relay, the subject's own events may be hosted only on such relays.</tspan><tspan x="808" y="445">A covered recipient's own inbox is still reachable.</tspan></text></switch></g></g></g><g data-cell-id="02-15"><g><rect x="1306.1" y="363.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(150, 115, 166), rgb(149, 119, 163));" stroke="#9673a6" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 380px; margin-left: 1318px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>extend/relay</b><br />Adopt the grants the relay's operator publishes — the operator being the key named in the relay's information document.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">Convenient, but that document is unsigned and its operator can change.</span></div></div></div></foreignObject><text x="1318" y="394" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="1318" y="394">extend/relay</tspan><tspan x="1318" y="411">Adopt the grants the relay's operator publishes — the operator being the</tspan><tspan x="1318" y="428">key named in the relay's information document.</tspan><tspan x="1318" y="445">Convenient, but that document is unsigned and its operator can change.</tspan></text></switch></g></g></g><g data-cell-id="02-16"><g><rect x="286.1" y="501.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(102, 102, 102), rgb(149, 149, 149));" stroke="#666666" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 518px; margin-left: 298px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>view/event</b><br />This exact event may reach the subject, whoever published it.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">Named by id; a replaced version is a different event.</span></div></div></div></foreignObject><text x="298" y="532" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="298" y="532">view/event</tspan><tspan x="298" y="549">This exact event may reach the subject, whoever published it.</tspan><tspan x="298" y="566">Named by id; a replaced version is a different event.</tspan></text></switch></g></g></g><g data-cell-id="02-17"><g><rect x="796.1" y="501.21" width="490" height="124" rx="4" ry="4" fill="#ffffff" style="fill: light-dark(rgb(255, 255, 255), rgb(18, 18, 18)); stroke: light-dark(rgb(108, 142, 191), rgb(92, 121, 163));" stroke="#6c8ebf" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 518px; margin-left: 808px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>interact/event</b><br />…and the subject may reference this exact event, e.g. quote it. Tagging its author still needs the author covered.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">One version: an edit at the same address needs a new grant.</span></div></div></div></foreignObject><text x="808" y="532" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="808" y="532">interact/event</tspan><tspan x="808" y="549">…and the subject may reference this exact event, e.g. quote it. Tagging its</tspan><tspan x="808" y="566">author still needs the author covered.</tspan><tspan x="808" y="583">One version: an edit at the same address needs a new grant.</tspan></text></switch></g></g></g><g data-cell-id="02-18"><g><rect x="1306.1" y="501.21" width="490" height="124" rx="4" ry="4" fill="#fafafa" style="fill: light-dark(rgb(250, 250, 250), rgb(22, 22, 22)); stroke: light-dark(rgb(201, 209, 217), rgb(52, 59, 65));" stroke="#c9d1d9" stroke-width="1.5" stroke-dasharray="9 6" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 468px; height: 1px; padding-top: 518px; margin-left: 1318px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 14px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><b>no extend/event</b><br />An event is not a party, so it cannot be a source.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">The eight categories are closed.</span></div></div></div></foreignObject><text x="1318" y="532" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="14px"><tspan x="1318" y="532">no extend/event</tspan><tspan x="1318" y="549">An event is not a party, so it cannot be a source.</tspan><tspan x="1318" y="566">The eight categories are closed.</tspan></text></switch></g></g></g><g data-cell-id="02-19"><g><rect x="16.1" y="635.21" width="1000" height="30" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 1002px; height: 1px; padding-top: 640px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:20px"><b>Three more instruments complete the vocabulary</b></span></div></div></div></foreignObject><text x="16" y="655" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px">Three more instruments complete the vocabulary</text></switch></g></g></g><g data-cell-id="02-20"><g><rect x="16.1" y="669.21" width="860" height="230" rx="4" ry="4" fill="#fff2cc" style="fill: light-dark(rgb(255, 242, 204), rgb(40, 29, 0)); stroke: light-dark(rgb(214, 182, 86), rgb(109, 81, 0));" stroke="#d6b656" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 830px; height: 1px; padding-top: 690px; margin-left: 32px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:19px"><b>Restrictions narrow</b></span><br />A restriction entry matches on five axes, and allows or denies:<br /><span style="font-family: Courier New;">polarity  allow | deny</span><br /><span style="font-family: Courier New;">kinds     *  or explicit kind numbers, e.g. 1,7</span><br /><span style="font-family: Courier New;">weekdays  *  or ISO days, e.g. 1,2,3,4,5</span><br /><span style="font-family: Courier New;">time      *  or a local window, e.g. 21:00-07:00</span><br /><span style="font-family: Courier New;">direction *  | input | output</span><br /><span style="font-family: Courier New;">opacity   *  | opaque | plain</span><br />…plus one optional demand: <span style="font-family: Courier New;">rebroadcast: "deny"</span> — the signer adds NIP-70's <span style="font-family: Courier New;">["-"]</span> tag.</div></div></div></foreignObject><text x="32" y="705" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px"><tspan x="32" y="705">Restrictions narrow</tspan><tspan x="32" y="723">A restriction entry matches on five axes, and allows or denies:</tspan><tspan x="32" y="741">polarity allow | deny</tspan><tspan x="32" y="759">kinds * or explicit kind numbers, e.g. 1,7</tspan><tspan x="32" y="777">weekdays * or ISO days, e.g. 1,2,3,4,5</tspan><tspan x="32" y="795">time * or a local window, e.g. 21:00-07:00</tspan><tspan x="32" y="813">direction * | input | output</tspan><tspan x="32" y="831">opacity * | opaque | plain</tspan><tspan x="32" y="849">…plus one optional demand: rebroadcast: "deny" — the signer adds NIP-70's ["-"] tag.</tspan></text></switch></g></g></g><g data-cell-id="02-21"><g><rect x="896.1" y="669.21" width="440" height="230" rx="4" ry="4" fill="#f8cecc" style="fill: light-dark(rgb(248, 206, 204), rgb(81, 45, 43)); stroke: light-dark(rgb(184, 84, 80), rgb(215, 129, 126));" stroke="#b85450" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 410px; height: 1px; padding-top: 690px; margin-left: 912px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:19px"><b>Deny gates: out, full stop</b></span><br />Lists of pubkeys, events, relays and shared blocklists.<br />A deny gate over-rules every grant, from any guardian, at every depth, in both directions.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">A guardian's “never” is a deny — omitting something from a whitelist is not.</span></div></div></div></foreignObject><text x="912" y="705" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px"><tspan x="912" y="705">Deny gates: out, full stop</tspan><tspan x="912" y="723">Lists of pubkeys, events, relays and shared blocklists.</tspan><tspan x="912" y="741">A deny gate over-rules every grant, from any guardian, at</tspan><tspan x="912" y="759">every depth, in both directions.</tspan><tspan x="912" y="777">A guardian's “never” is a deny — omitting something from a</tspan><tspan x="912" y="795">whitelist is not.</tspan></text></switch></g></g></g><g data-cell-id="02-22"><g><rect x="1356.1" y="669.21" width="440" height="230" rx="4" ry="4" fill="#b0e3e6" style="fill: light-dark(rgb(176, 227, 230), rgb(16, 60, 63)); stroke: light-dark(rgb(14, 128, 136), rgb(70, 168, 175));" stroke="#0e8088" stroke-width="1.5" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe flex-start; justify-content: unsafe flex-start; width: 410px; height: 1px; padding-top: 690px; margin-left: 1372px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 15px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="font-size:19px"><b>The global set</b></span><br />Restriction entries that gate the subject as a whole — a bedtime, a set of kinds — before any permission is consulted.<br /><span style="font-size: 12px; color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">It binds everyone, the guardians' own line to the subject included.</span></div></div></div></foreignObject><text x="1372" y="705" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="15px"><tspan x="1372" y="705">The global set</tspan><tspan x="1372" y="723">Restriction entries that gate the subject as a whole — a</tspan><tspan x="1372" y="741">bedtime, a set of kinds — before any permission is consulted.</tspan><tspan x="1372" y="759">It binds everyone, the guardians' own line to the subject</tspan><tspan x="1372" y="777">included.</tspan></text></switch></g></g></g><g data-cell-id="02-23"><g transform="translate(0.5,0.5)"><path d="M 16.1 933.21 L 1796.1 933.21" fill="none" stroke="#d9dee4" style="stroke: light-dark(rgb(217, 222, 228), rgb(42, 47, 52));" stroke-miterlimit="10" pointer-events="stroke"/></g></g><g data-cell-id="02-24"><g><rect x="16.1" y="941.21" width="1780" height="26" fill="none" stroke="none" pointer-events="all"/></g><g><g><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 1782px; height: 1px; padding-top: 954px; margin-left: 16px;"><div style="box-sizing: border-box; font-size: 0; text-align: left; color: #1f2933; "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: light-dark(#1f2933, #c4ccd5); line-height: 1.2; pointer-events: all; white-space: normal; word-wrap: normal; "><span style="color: light-dark(rgb(82, 96, 109), rgb(146, 158, 170));">TEPP Zeta · diagram 02 · high-level · statements: TERM-007, TERM-008, TERM-009, POL-008–POL-033, IN-013–IN-016, OUT-030, OUT-031, OUT-053, CONS-007, CONS-022, CONS-024, CONS-030, CONS-031, NF-015</span></div></div></div></foreignObject><text x="16" y="958" fill="#1f2933" style="fill: light-dark(rgb(31, 41, 51), rgb(196, 204, 213));" font-family="Helvetica" font-size="12px">TEPP Zeta · diagram 02 · high-level · statements: TERM-007, TERM-008, TERM-009, POL-008–POL-033, IN-013–IN-016, OUT-030, OUT-031, OUT-053, CONS-007, CONS-022, CONS-024, CONS-030, CONS-031, NF-015</text></switch></g></g></g></g></g></g></svg>