<mxfile host="Electron" agent="tepp-omega-visual" version="29.3.0">
  <diagram name="People, places and things" id="02-vocabulary">
    <mxGraphModel dx="1600" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1860" pageHeight="990" background="#ffffff" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />
        <mxCell id="02-2" value='&lt;font style="font-size:30px"&gt;&lt;b&gt;People, places and things&lt;/b&gt;&lt;/font&gt;' style="text;html=1;align=left;verticalAlign=middle;fontColor=#1f2933;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="24" width="1780" height="44" as="geometry" /></mxCell>
        <mxCell id="02-3" value='&lt;font style="font-size:17px" color="#52606d"&gt;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.&lt;/font&gt;' style="text;html=1;align=left;verticalAlign=middle;fontFamily=Helvetica;" vertex="1" parent="1"><mxGeometry x="40" y="68" width="1780" height="30" as="geometry" /></mxCell>
        <mxCell id="02-4" value='&lt;font style="font-size:22px"&gt;&lt;b&gt;view&lt;/b&gt;&lt;/font&gt;&lt;br&gt;may reach the subject — reading' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="310" y="124" width="490" height="96" as="geometry" /></mxCell>
        <mxCell id="02-5" value='&lt;font style="font-size:22px"&gt;&lt;b&gt;interact&lt;/b&gt;&lt;/font&gt;&lt;br&gt;may reach the subject and be acted on — the subject may name, answer and message them' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="820" y="124" width="490" height="96" as="geometry" /></mxCell>
        <mxCell id="02-6" value='&lt;font style="font-size:22px"&gt;&lt;b&gt;extend&lt;/b&gt;&lt;/font&gt;&lt;br&gt;members are sources: the grants they publish — or a peer is given — flow in' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="1330" y="124" width="490" height="96" as="geometry" /></mxCell>
        <mxCell id="02-7" value='&lt;font style="font-size:24px"&gt;&lt;b&gt;People&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;font face="Courier New"&gt;npub&lt;/font&gt;&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;a public key&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9aa5b1;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="234" width="250" height="124" as="geometry" /></mxCell>
        <mxCell id="02-8" value='&lt;font style="font-size:24px"&gt;&lt;b&gt;Places&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;font face="Courier New"&gt;relay&lt;/font&gt;&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;a relay URL&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9aa5b1;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="372" width="250" height="124" as="geometry" /></mxCell>
        <mxCell id="02-9" value='&lt;font style="font-size:24px"&gt;&lt;b&gt;Things&lt;/b&gt;&lt;/font&gt;&lt;br&gt;&lt;font face="Courier New"&gt;event&lt;/font&gt;&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;an event, by its id&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9aa5b1;strokeWidth=1.5;fontSize=15;align=center;verticalAlign=middle;fontFamily=Helvetica;fontColor=#1f2933;spacing=8;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="510" width="250" height="124" as="geometry" /></mxCell>
        <mxCell id="02-10" value='&lt;b&gt;view/npub&lt;/b&gt;&lt;br&gt;Everything this person publishes openly may reach the subject, wherever it arrives.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;Only the publisher counts: being mentioned is not enough.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="310" y="234" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-11" value='&lt;b&gt;interact/npub&lt;/b&gt;&lt;br&gt;…and the subject may tag them, reply to and quote their events, and exchange private messages with them.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;Every guardian has this implicitly.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="820" y="234" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-12" value='&lt;b&gt;extend/npub&lt;/b&gt;&lt;br&gt;Adopt what a curator publishes (via curator), or inherit what a peer — another subject — is permitted (via peer).&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;The member itself is not admitted: it is a source only.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9673a6;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="1330" y="234" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-13" value='&lt;b&gt;view/relay&lt;/b&gt;&lt;br&gt;Plain events that arrive from this relay may reach the subject.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;Never encrypted material: that needs an interact grant on its sender.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="310" y="372" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-14" value="&lt;b&gt;interact/relay&lt;/b&gt;&lt;br&gt;…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.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;A covered recipient's own inbox is still reachable.&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="820" y="372" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-15" value="&lt;b&gt;extend/relay&lt;/b&gt;&lt;br&gt;Adopt the grants the relay's operator publishes — the operator being the key named in the relay's information document.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;Convenient, but that document is unsigned and its operator can change.&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9673a6;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="1330" y="372" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-16" value='&lt;b&gt;view/event&lt;/b&gt;&lt;br&gt;This exact event may reach the subject, whoever published it.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;Named by id; a replaced version is a different event.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="310" y="510" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-17" value='&lt;b&gt;interact/event&lt;/b&gt;&lt;br&gt;…and the subject may reference this exact event, e.g. quote it. Tagging its author still needs the author covered.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;One version: an edit at the same address needs a new grant.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="820" y="510" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-18" value='&lt;b&gt;no extend/event&lt;/b&gt;&lt;br&gt;An event is not a party, so it cannot be a source.&lt;br&gt;&lt;font style="font-size:12px" color="#52606d"&gt;The eight categories are closed.&lt;/font&gt;' style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fafafa;strokeColor=#c9d1d9;strokeWidth=1.5;fontSize=14;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=12;arcSize=8;absoluteArcSize=1;dashed=1;dashPattern=6 4;" vertex="1" parent="1"><mxGeometry x="1330" y="510" width="490" height="124" as="geometry" /></mxCell>
        <mxCell id="02-19" value='&lt;font style="font-size:20px"&gt;&lt;b&gt;Three more instruments complete the vocabulary&lt;/b&gt;&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=top;fontSize=15;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="644" width="1000" height="30" as="geometry" /></mxCell>
        <mxCell id="02-20" value="&lt;font style=&quot;font-size:19px&quot;&gt;&lt;b&gt;Restrictions narrow&lt;/b&gt;&lt;/font&gt;&lt;br&gt;A restriction entry matches on five axes, and allows or denies:&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;polarity  allow | deny&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;kinds     *  or explicit kind numbers, e.g. 1,7&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;weekdays  *  or ISO days, e.g. 1,2,3,4,5&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;time      *  or a local window, e.g. 21:00-07:00&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;direction *  | input | output&lt;/font&gt;&lt;br&gt;&lt;font face=&quot;Courier New&quot;&gt;opacity   *  | opaque | plain&lt;/font&gt;&lt;br&gt;…plus one optional demand: &lt;font face=&quot;Courier New&quot;&gt;rebroadcast: &quot;deny&quot;&lt;/font&gt; — the signer adds NIP-70's &lt;font face=&quot;Courier New&quot;&gt;[&quot;-&quot;]&lt;/font&gt; tag." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=1.5;fontSize=15;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=16;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="40" y="678" width="860" height="230" as="geometry" /></mxCell>
        <mxCell id="02-21" value="&lt;font style=&quot;font-size:19px&quot;&gt;&lt;b&gt;Deny gates: out, full stop&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Lists of pubkeys, events, relays and shared blocklists.&lt;br&gt;A deny gate over-rules every grant, from any guardian, at every depth, in both directions.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;A guardian's “never” is a deny — omitting something from a whitelist is not.&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;strokeWidth=1.5;fontSize=15;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=16;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="920" y="678" width="440" height="230" as="geometry" /></mxCell>
        <mxCell id="02-22" value="&lt;font style=&quot;font-size:19px&quot;&gt;&lt;b&gt;The global set&lt;/b&gt;&lt;/font&gt;&lt;br&gt;Restriction entries that gate the subject as a whole — a bedtime, a set of kinds — before any permission is consulted.&lt;br&gt;&lt;font style=&quot;font-size:12px&quot; color=&quot;#52606d&quot;&gt;It binds everyone, the guardians' own line to the subject included.&lt;/font&gt;" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#b0e3e6;strokeColor=#0e8088;strokeWidth=1.5;fontSize=15;align=left;verticalAlign=top;fontFamily=Helvetica;fontColor=#1f2933;spacing=16;arcSize=8;absoluteArcSize=1;" vertex="1" parent="1"><mxGeometry x="1380" y="678" width="440" height="230" as="geometry" /></mxCell>
        <mxCell id="02-23" value="" style="endArrow=none;html=1;strokeColor=#d9dee4;strokeWidth=1;" edge="1" parent="1"><mxGeometry relative="1" as="geometry"><mxPoint x="40" y="942" as="sourcePoint" /><mxPoint x="1820" y="942" as="targetPoint" /></mxGeometry></mxCell>
        <mxCell id="02-24" value='&lt;font color="#52606d"&gt;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&lt;/font&gt;' style="text;html=1;whiteSpace=wrap;align=left;verticalAlign=middle;fontSize=12;fontFamily=Helvetica;fontColor=#1f2933;spacing=0;strokeColor=none;fillColor=none;" vertex="1" parent="1"><mxGeometry x="40" y="950" width="1780" height="26" as="geometry" /></mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
