@stream44.studio/encapsulate 0.4.0-rc.19 → 0.4.0-rc.21

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.
@@ -0,0 +1,261 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="SRAujS_iovYNQiKgPtnD" name="Page-1">
3
+ <mxGraphModel dx="1122" dy="923" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
4
+ <root>
5
+ <mxCell id="0"/>
6
+ <mxCell id="1" parent="0"/>
7
+ <mxCell id="85" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
8
+ <mxGeometry x="10" width="830" height="800" as="geometry"/>
9
+ </mxCell>
10
+ <mxCell id="64" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#0066CC;" edge="1" parent="1" source="49" target="60">
11
+ <mxGeometry relative="1" as="geometry"/>
12
+ </mxCell>
13
+ <mxCell id="49" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
14
+ <mxGeometry x="30" y="410" width="160" height="350" as="geometry"/>
15
+ </mxCell>
16
+ <mxCell id="66" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#0066CC;" edge="1" parent="1" source="43" target="61">
17
+ <mxGeometry relative="1" as="geometry"/>
18
+ </mxCell>
19
+ <mxCell id="43" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
20
+ <mxGeometry x="540" y="410" width="170" height="350" as="geometry"/>
21
+ </mxCell>
22
+ <mxCell id="65" style="edgeStyle=orthogonalEdgeStyle;html=1;fontColor=#0066CC;" edge="1" parent="1" source="36" target="62">
23
+ <mxGeometry relative="1" as="geometry"/>
24
+ </mxCell>
25
+ <mxCell id="36" value="" style="rounded=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
26
+ <mxGeometry x="200" y="410" width="300" height="350" as="geometry"/>
27
+ </mxCell>
28
+ <mxCell id="2" value="CapsuleSpineContract - v0" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;fontStyle=1" parent="1" vertex="1">
29
+ <mxGeometry x="30" y="760" width="680" height="20" as="geometry"/>
30
+ </mxCell>
31
+ <mxCell id="8" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="4" target="5" edge="1">
32
+ <mxGeometry relative="1" as="geometry"/>
33
+ </mxCell>
34
+ <mxCell id="4" value="extends" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
35
+ <mxGeometry x="390" y="470" width="100" height="20" as="geometry"/>
36
+ </mxCell>
37
+ <mxCell id="9" value="this (classic class extends)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
38
+ <mxGeometry x="390" y="700" width="310" height="20" as="geometry"/>
39
+ </mxCell>
40
+ <mxCell id="10" value="definition aspect" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
41
+ <mxGeometry x="570" y="50" width="150" height="20" as="geometry"/>
42
+ </mxCell>
43
+ <mxCell id="11" value="runtime aspect" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
44
+ <mxGeometry x="570" y="90" width="150" height="20" as="geometry"/>
45
+ </mxCell>
46
+ <mxCell id="19" style="edgeStyle=none;html=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" source="12" target="9" edge="1">
47
+ <mxGeometry relative="1" as="geometry"/>
48
+ </mxCell>
49
+ <mxCell id="21" value="overrides parent" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="19" vertex="1" connectable="0">
50
+ <mxGeometry x="-0.3215" y="1" relative="1" as="geometry">
51
+ <mxPoint y="3" as="offset"/>
52
+ </mxGeometry>
53
+ </mxCell>
54
+ <mxCell id="12" value="this.self" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
55
+ <mxGeometry x="390" y="630" width="100" height="20" as="geometry"/>
56
+ </mxCell>
57
+ <mxCell id="20" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;" parent="1" source="13" target="9" edge="1">
58
+ <mxGeometry relative="1" as="geometry"/>
59
+ </mxCell>
60
+ <mxCell id="22" value="overridden by children" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="20" vertex="1" connectable="0">
61
+ <mxGeometry x="-0.0021" y="1" relative="1" as="geometry">
62
+ <mxPoint x="-1" y="-5" as="offset"/>
63
+ </mxGeometry>
64
+ </mxCell>
65
+ <mxCell id="13" value="this.self" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
66
+ <mxGeometry x="600" y="550" width="100" height="20" as="geometry"/>
67
+ </mxCell>
68
+ <mxCell id="16" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" source="14" target="12" edge="1">
69
+ <mxGeometry relative="1" as="geometry"/>
70
+ </mxCell>
71
+ <mxCell id="14" value="properties" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
72
+ <mxGeometry x="390" y="540" width="100" height="20" as="geometry"/>
73
+ </mxCell>
74
+ <mxCell id="17" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" source="15" edge="1" target="13">
75
+ <mxGeometry relative="1" as="geometry">
76
+ <mxPoint x="675" y="530" as="targetPoint"/>
77
+ </mxGeometry>
78
+ </mxCell>
79
+ <mxCell id="15" value="properties" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
80
+ <mxGeometry x="600" y="440" width="100" height="20" as="geometry"/>
81
+ </mxCell>
82
+ <mxCell id="3" value="Capsule A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcd28;gradientColor=#ffa500;strokeColor=#d79b00;fontStyle=1" parent="1" vertex="1">
83
+ <mxGeometry x="360" y="590" width="130" height="20" as="geometry"/>
84
+ </mxCell>
85
+ <mxCell id="5" value="Capsule B" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcd28;gradientColor=#ffa500;strokeColor=#d79b00;fontStyle=1" parent="1" vertex="1">
86
+ <mxGeometry x="570" y="470" width="130" height="20" as="geometry"/>
87
+ </mxCell>
88
+ <mxCell id="23" value="Own properties independent of parents or children." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
89
+ <mxGeometry x="720" y="545" width="110" height="30" as="geometry"/>
90
+ </mxCell>
91
+ <mxCell id="24" value="Shared properties across extends stack." style="text;html=1;strokeColor=none;fillColor=default;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
92
+ <mxGeometry x="420" y="720" width="240" height="30" as="geometry"/>
93
+ </mxCell>
94
+ <mxCell id="30" style="edgeStyle=none;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="25" target="48" edge="1">
95
+ <mxGeometry relative="1" as="geometry">
96
+ <mxPoint x="180" y="510" as="targetPoint"/>
97
+ </mxGeometry>
98
+ </mxCell>
99
+ <mxCell id="25" value="mapping (special property)" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;arcSize=50;" parent="1" vertex="1">
100
+ <mxGeometry x="220" y="500" width="260" height="20" as="geometry"/>
101
+ </mxCell>
102
+ <mxCell id="31" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;rounded=1;" parent="1" source="26" target="12" edge="1">
103
+ <mxGeometry relative="1" as="geometry">
104
+ <Array as="points">
105
+ <mxPoint x="280" y="640"/>
106
+ </Array>
107
+ </mxGeometry>
108
+ </mxCell>
109
+ <mxCell id="32" value="&lt;font style=&quot;&quot; color=&quot;#cc0000&quot;&gt;&lt;b&gt;NEW&lt;/b&gt;&lt;/font&gt; instance&lt;br&gt;as &amp;lt;property&amp;gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" parent="31" vertex="1" connectable="0">
110
+ <mxGeometry x="-0.7176" y="-2" relative="1" as="geometry">
111
+ <mxPoint x="2" y="-4" as="offset"/>
112
+ </mxGeometry>
113
+ </mxCell>
114
+ <mxCell id="26" value="property contract" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
115
+ <mxGeometry x="220" y="540" width="120" height="20" as="geometry"/>
116
+ </mxCell>
117
+ <mxCell id="27" value="property mapping" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1">
118
+ <mxGeometry x="220" y="460" width="120" height="20" as="geometry"/>
119
+ </mxCell>
120
+ <mxCell id="33" value="&lt;b&gt;Existing&lt;/b&gt; (typical) or New instance" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
121
+ <mxGeometry x="230" y="420" width="100" height="40" as="geometry"/>
122
+ </mxCell>
123
+ <mxCell id="35" value="#&amp;lt;CapsuleUri&amp;gt;" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" parent="1" vertex="1">
124
+ <mxGeometry x="220" y="520" width="120" height="20" as="geometry"/>
125
+ </mxCell>
126
+ <mxCell id="37" value="&amp;lt;CapsuleUri&amp;gt;" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
127
+ <mxGeometry x="360" y="570" width="90" height="20" as="geometry"/>
128
+ </mxCell>
129
+ <mxCell id="38" value="&amp;lt;CapsuleUri&amp;gt;" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
130
+ <mxGeometry x="220" y="480" width="90" height="20" as="geometry"/>
131
+ </mxCell>
132
+ <mxCell id="39" value="&amp;lt;CapsuleUri&amp;gt;" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
133
+ <mxGeometry x="390" y="450" width="90" height="20" as="geometry"/>
134
+ </mxCell>
135
+ <mxCell id="40" value="static analysis aspect" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
136
+ <mxGeometry x="570" y="70" width="150" height="20" as="geometry"/>
137
+ </mxCell>
138
+ <mxCell id="42" value="Legend" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
139
+ <mxGeometry x="580" y="30" width="100" height="20" as="geometry"/>
140
+ </mxCell>
141
+ <mxCell id="44" value="Same or separate file" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#f5f5f5;fontColor=#333333;strokeColor=#666666;" vertex="1" parent="1">
142
+ <mxGeometry x="30" y="390" width="680" height="20" as="geometry"/>
143
+ </mxCell>
144
+ <mxCell id="50" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="45" target="12">
145
+ <mxGeometry relative="1" as="geometry">
146
+ <Array as="points">
147
+ <mxPoint x="120" y="650"/>
148
+ </Array>
149
+ </mxGeometry>
150
+ </mxCell>
151
+ <mxCell id="56" value="&lt;span style=&quot;&quot;&gt;&lt;font color=&quot;#0066cc&quot;&gt;&lt;b&gt;this&lt;/b&gt;&lt;/font&gt; mapped as &amp;lt;property&amp;gt;&lt;/span&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="50">
152
+ <mxGeometry x="-0.3353" y="2" relative="1" as="geometry">
153
+ <mxPoint x="50" y="2" as="offset"/>
154
+ </mxGeometry>
155
+ </mxCell>
156
+ <mxCell id="45" value="this" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
157
+ <mxGeometry x="70" y="580" width="100" height="20" as="geometry"/>
158
+ </mxCell>
159
+ <mxCell id="46" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;startArrow=none;" edge="1" parent="1" source="58" target="45">
160
+ <mxGeometry relative="1" as="geometry">
161
+ <mxPoint x="145" y="540" as="targetPoint"/>
162
+ </mxGeometry>
163
+ </mxCell>
164
+ <mxCell id="47" value="properties" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;" vertex="1" parent="1">
165
+ <mxGeometry x="70" y="470" width="100" height="20" as="geometry"/>
166
+ </mxCell>
167
+ <mxCell id="48" value="Capsule C" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffcd28;gradientColor=#ffa500;strokeColor=#d79b00;fontStyle=1" vertex="1" parent="1">
168
+ <mxGeometry x="40" y="500" width="130" height="20" as="geometry"/>
169
+ </mxCell>
170
+ <mxCell id="57" value="&amp;lt;property&amp;gt;" style="text;html=1;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#000000;" vertex="1" parent="1">
171
+ <mxGeometry x="390" y="520" width="90" height="20" as="geometry"/>
172
+ </mxCell>
173
+ <mxCell id="59" value="" style="edgeStyle=none;html=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;endArrow=none;" edge="1" parent="1" source="47" target="58">
174
+ <mxGeometry relative="1" as="geometry">
175
+ <mxPoint x="145" y="580" as="targetPoint"/>
176
+ <mxPoint x="145" y="490" as="sourcePoint"/>
177
+ </mxGeometry>
178
+ </mxCell>
179
+ <mxCell id="58" value="this.self" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
180
+ <mxGeometry x="70" y="540" width="100" height="20" as="geometry"/>
181
+ </mxCell>
182
+ <mxCell id="73" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#0066CC;" edge="1" parent="1" source="60" target="67">
183
+ <mxGeometry relative="1" as="geometry"/>
184
+ </mxCell>
185
+ <mxCell id="60" value="&lt;b&gt;Capsule C&lt;/b&gt;&lt;br&gt;Capsule Source Tree" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
186
+ <mxGeometry x="30" y="280" width="160" height="50" as="geometry"/>
187
+ </mxCell>
188
+ <mxCell id="74" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#0066CC;" edge="1" parent="1" source="61" target="70">
189
+ <mxGeometry relative="1" as="geometry"/>
190
+ </mxCell>
191
+ <mxCell id="61" value="&lt;b&gt;Capsule B&lt;/b&gt;&lt;br&gt;Capsule Source Tree" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
192
+ <mxGeometry x="540" y="280" width="170" height="50" as="geometry"/>
193
+ </mxCell>
194
+ <mxCell id="72" style="edgeStyle=orthogonalEdgeStyle;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;fontColor=#0066CC;" edge="1" parent="1" source="62" target="68">
195
+ <mxGeometry relative="1" as="geometry"/>
196
+ </mxCell>
197
+ <mxCell id="62" value="&lt;b&gt;Capsule A&lt;/b&gt;&lt;br&gt;Capsule Source Tree" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="1">
198
+ <mxGeometry x="270" y="280" width="160" height="50" as="geometry"/>
199
+ </mxCell>
200
+ <mxCell id="63" value="During capsule bootstrapping" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
201
+ <mxGeometry x="30" y="360" width="680" height="20" as="geometry"/>
202
+ </mxCell>
203
+ <mxCell id="67" value="&lt;span&gt;Projected Component&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=0" vertex="1" parent="1">
204
+ <mxGeometry x="30" y="210" width="160" height="20" as="geometry"/>
205
+ </mxCell>
206
+ <mxCell id="68" value="&lt;span&gt;Projected Component&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=0" vertex="1" parent="1">
207
+ <mxGeometry x="270" y="210" width="160" height="20" as="geometry"/>
208
+ </mxCell>
209
+ <mxCell id="70" value="&lt;span&gt;Projected Component&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=0" vertex="1" parent="1">
210
+ <mxGeometry x="540" y="210" width="170" height="20" as="geometry"/>
211
+ </mxCell>
212
+ <mxCell id="71" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;Projector Capsules&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
213
+ <mxGeometry x="30" y="250" width="680" height="20" as="geometry"/>
214
+ </mxCell>
215
+ <mxCell id="79" style="html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=3;fontSize=13;fontColor=#000000;exitX=0.25;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="75" target="77">
216
+ <mxGeometry relative="1" as="geometry"/>
217
+ </mxCell>
218
+ <mxCell id="80" value="Load Snapshot" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=12;fontColor=#000000;fontStyle=1" vertex="1" connectable="0" parent="79">
219
+ <mxGeometry x="0.3375" y="1" relative="1" as="geometry">
220
+ <mxPoint x="1" y="5" as="offset"/>
221
+ </mxGeometry>
222
+ </mxCell>
223
+ <mxCell id="75" value="&lt;span&gt;Snapshot&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontStyle=1" vertex="1" parent="1">
224
+ <mxGeometry x="30" y="190" width="680" height="20" as="geometry"/>
225
+ </mxCell>
226
+ <mxCell id="76" value="" style="endArrow=none;html=1;fontColor=#0066CC;strokeWidth=2;dashed=1;" edge="1" parent="1">
227
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
228
+ <mxPoint x="20" y="160" as="sourcePoint"/>
229
+ <mxPoint x="720" y="160" as="targetPoint"/>
230
+ </mxGeometry>
231
+ </mxCell>
232
+ <mxCell id="78" value="&lt;font style=&quot;font-size: 13px;&quot; color=&quot;#000000&quot;&gt;Separate Process&lt;/font&gt;" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontColor=#0066CC;" vertex="1" connectable="0" parent="76">
233
+ <mxGeometry x="-0.16" y="-2" relative="1" as="geometry">
234
+ <mxPoint x="36" y="-2" as="offset"/>
235
+ </mxGeometry>
236
+ </mxCell>
237
+ <mxCell id="77" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;Minimal Runtime&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontStyle=1;" vertex="1" parent="1">
238
+ <mxGeometry x="100" y="90" width="200" height="20" as="geometry"/>
239
+ </mxCell>
240
+ <mxCell id="81" value="Run from source to &quot;project&quot; (build)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=default;fontSize=12;fontColor=#CC0000;fontStyle=1" vertex="1" parent="1">
241
+ <mxGeometry x="720" y="355" width="110" height="30" as="geometry"/>
242
+ </mxCell>
243
+ <mxCell id="82" value="Run &quot;projected&quot; (built) components in prod" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;labelBackgroundColor=default;fontSize=12;fontColor=#CC0000;fontStyle=1" vertex="1" parent="1">
244
+ <mxGeometry x="300" y="85" width="155" height="30" as="geometry"/>
245
+ </mxCell>
246
+ <mxCell id="83" value="The &lt;b&gt;Membrane&lt;/b&gt; spine contract emits events for all property access." style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;fontColor=#004C99;" vertex="1" parent="1">
247
+ <mxGeometry x="230" y="685" width="130" height="50" as="geometry"/>
248
+ </mxCell>
249
+ <mxCell id="84" value="&lt;span style=&quot;font-weight: normal;&quot;&gt;Static or Membrane Spine Contract&lt;/span&gt;" style="rounded=0;whiteSpace=wrap;html=1;fontStyle=1;" vertex="1" parent="1">
250
+ <mxGeometry x="100" y="70" width="200" height="20" as="geometry"/>
251
+ </mxCell>
252
+ <mxCell id="86" value="(c) 2026 &lt;a href=&quot;https://christoph.diy&quot;&gt;Christoph.diy&lt;/a&gt;&amp;nbsp;CC BY" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=right;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
253
+ <mxGeometry x="645" width="185" height="30" as="geometry"/>
254
+ </mxCell>
255
+ <mxCell id="87" value="Encapsulate: Capsule Spine Contract - Overview - v0.1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;rounded=0;" vertex="1" parent="1">
256
+ <mxGeometry x="100" width="350" height="30" as="geometry"/>
257
+ </mxCell>
258
+ </root>
259
+ </mxGraphModel>
260
+ </diagram>
261
+ </mxfile>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="831px" height="801px" viewBox="-0.5 -0.5 831 801" content="&lt;mxfile&gt;&lt;diagram id=&quot;SRAujS_iovYNQiKgPtnD&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs><linearGradient x1="0%" y1="0%" x2="0%" y2="100%" id="mx-gradient-ffcd28-1-ffa500-1-s-0"><stop offset="0%" style="stop-color: rgb(255, 205, 40); stop-opacity: 1;"/><stop offset="100%" style="stop-color: rgb(255, 165, 0); stop-opacity: 1;"/></linearGradient></defs><g><rect x="0" y="0" width="830" height="800" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 100 410 L 100 336.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 100 331.12 L 103.5 338.12 L 100 336.37 L 96.5 338.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="20" y="410" width="160" height="350" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 615 410 L 615 336.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 615 331.12 L 618.5 338.12 L 615 336.37 L 611.5 338.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="530" y="410" width="170" height="350" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 340 410 L 340 336.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340 331.12 L 343.5 338.12 L 340 336.37 L 336.5 338.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="190" y="410" width="300" height="350" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><rect x="20" y="760" width="680" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 678px; height: 1px; padding-top: 770px; margin-left: 21px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">CapsuleSpineContract - v0</div></div></div></foreignObject><text x="360" y="774" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">CapsuleSpineContract - v0</text></switch></g><path d="M 480 480 L 553.63 480" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 558.88 480 L 551.88 483.5 L 553.63 480 L 551.88 476.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="380" y="470" width="100" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 480px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">extends</div></div></div></foreignObject><text x="430" y="484" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">extends</text></switch></g><rect x="380" y="700" width="310" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 308px; height: 1px; padding-top: 710px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">this (classic class extends)</div></div></div></foreignObject><text x="535" y="714" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">this (classic class extends)</text></switch></g><rect x="560" y="50" width="150" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 60px; margin-left: 561px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">definition aspect</div></div></div></foreignObject><text x="635" y="64" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">definition aspect</text></switch></g><rect x="560" y="90" width="150" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 100px; margin-left: 561px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">runtime aspect</div></div></div></foreignObject><text x="635" y="104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">runtime aspect</text></switch></g><path d="M 434.58 650 L 454.85 694.21" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 457.03 698.98 L 450.94 694.08 L 454.85 694.21 L 457.3 691.16 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 670px; margin-left: 444px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">overrides parent</div></div></div></foreignObject><text x="444" y="674" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">overrides parent</text></switch></g><rect x="380" y="630" width="100" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 640px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">this.self</div></div></div></foreignObject><text x="430" y="644" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">this.self</text></switch></g><path d="M 638.04 570 L 613.73 693.75" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 612.72 698.9 L 610.63 691.36 L 613.73 693.75 L 617.5 692.71 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 630px; margin-left: 626px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;">overridden by children</div></div></div></foreignObject><text x="626" y="634" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">overridden by children</text></switch></g><rect x="590" y="550" width="100" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 560px; margin-left: 591px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">this.self</div></div></div></foreignObject><text x="640" y="564" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">this.self</text></switch></g><path d="M 455 560 L 455 623.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 455 628.88 L 451.5 621.88 L 455 623.63 L 458.5 621.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="380" y="540" width="100" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 550px; margin-left: 381px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">properties</div></div></div></foreignObject><text x="430" y="554" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">properties</text></switch></g><path d="M 665 460 L 665 543.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 665 548.88 L 661.5 541.88 L 665 543.63 L 668.5 541.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="590" y="440" width="100" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 450px; margin-left: 591px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">properties</div></div></div></foreignObject><text x="640" y="454" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">properties</text></switch></g><rect x="350" y="590" width="130" height="20" fill="url(#mx-gradient-ffcd28-1-ffa500-1-s-0)" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 600px; margin-left: 351px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">Capsule A</div></div></div></foreignObject><text x="415" y="604" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Capsule A</text></switch></g><rect x="560" y="470" width="130" height="20" fill="url(#mx-gradient-ffcd28-1-ffa500-1-s-0)" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 480px; margin-left: 561px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">Capsule B</div></div></div></foreignObject><text x="625" y="484" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Capsule B</text></switch></g><rect x="710" y="545" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 560px; margin-left: 711px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Own properties independent of parents or children.</div></div></div></foreignObject><text x="765" y="564" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Own properties ind...</text></switch></g><rect x="410" y="720" width="240" height="30" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 238px; height: 1px; padding-top: 735px; margin-left: 411px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Shared properties across extends stack.</div></div></div></foreignObject><text x="530" y="739" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Shared properties across extends stack.</text></switch></g><path d="M 210 510 L 166.37 510" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 161.12 510 L 168.12 506.5 L 166.37 510 L 168.12 513.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="210" y="500" width="260" height="20" rx="10" ry="10" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 258px; height: 1px; padding-top: 510px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">mapping (special property)</div></div></div></foreignObject><text x="340" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">mapping (special property)</text></switch></g><path d="M 270 560 L 270 630 Q 270 640 280 640 L 373.63 640" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 378.88 640 L 371.88 643.5 L 373.63 640 L 371.88 636.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 584px; margin-left: 271px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font color="#cc0000" style=""><b>NEW</b></font> instance<br />as &lt;property&gt;</div></div></div></foreignObject><text x="271" y="587" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">NEW instance...</text></switch></g><rect x="210" y="540" width="120" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 550px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">property contract</div></div></div></foreignObject><text x="270" y="554" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">property contract</text></switch></g><rect x="210" y="460" width="120" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 470px; margin-left: 211px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">property mapping</div></div></div></foreignObject><text x="270" y="474" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">property mapping</text></switch></g><rect x="220" y="420" width="100" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 440px; margin-left: 221px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Existing</b> (typical) or New instance</div></div></div></foreignObject><text x="270" y="444" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Existing (typica...</text></switch></g><rect x="210" y="520" width="120" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 118px; height: 1px; padding-top: 530px; margin-left: 212px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">#&lt;CapsuleUri&gt;</div></div></div></foreignObject><text x="212" y="534" fill="#000000" font-family="Helvetica" font-size="12px">#&lt;CapsuleUri&gt;</text></switch></g><rect x="350" y="570" width="90" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 88px; height: 1px; padding-top: 580px; margin-left: 352px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">&lt;CapsuleUri&gt;</div></div></div></foreignObject><text x="352" y="584" fill="#000000" font-family="Helvetica" font-size="12px">&lt;CapsuleUri&gt;</text></switch></g><rect x="210" y="480" width="90" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 88px; height: 1px; padding-top: 490px; margin-left: 212px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">&lt;CapsuleUri&gt;</div></div></div></foreignObject><text x="212" y="494" fill="#000000" font-family="Helvetica" font-size="12px">&lt;CapsuleUri&gt;</text></switch></g><rect x="380" y="450" width="90" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 88px; height: 1px; padding-top: 460px; margin-left: 382px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">&lt;CapsuleUri&gt;</div></div></div></foreignObject><text x="382" y="464" fill="#000000" font-family="Helvetica" font-size="12px">&lt;CapsuleUri&gt;</text></switch></g><rect x="560" y="70" width="150" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 148px; height: 1px; padding-top: 80px; margin-left: 561px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">static analysis aspect</div></div></div></foreignObject><text x="635" y="84" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">static analysis aspect</text></switch></g><rect x="570" y="30" width="100" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 98px; height: 1px; padding-top: 40px; margin-left: 572px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Legend</div></div></div></foreignObject><text x="572" y="44" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Legend</text></switch></g><rect x="20" y="390" width="680" height="20" fill="#f5f5f5" stroke="#666666" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 678px; height: 1px; padding-top: 400px; margin-left: 21px;"><div data-drawio-colors="color: #333333; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(51, 51, 51); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Same or separate file</div></div></div></foreignObject><text x="360" y="404" fill="#333333" font-family="Helvetica" font-size="12px" text-anchor="middle">Same or separate file</text></switch></g><path d="M 110 600 L 110 640 Q 110 650 120 650 L 373.63 650" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 378.88 650 L 371.88 653.5 L 373.63 650 L 371.88 646.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 651px; margin-left: 217px;"><div data-drawio-colors="color: rgb(0, 0, 0); background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><span style=""><font color="#0066cc"><b>this</b></font> mapped as &lt;property&gt;</span></div></div></div></foreignObject><text x="217" y="654" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="11px" text-anchor="middle">this mapped as &lt;property&gt;</text></switch></g><rect x="60" y="580" width="100" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 590px; margin-left: 61px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">this</div></div></div></foreignObject><text x="110" y="594" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">this</text></switch></g><path d="M 135 560 L 135 573.63" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 135 578.88 L 131.5 571.88 L 135 573.63 L 138.5 571.88 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="60" y="470" width="100" height="20" fill="#e1d5e7" stroke="#9673a6" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 480px; margin-left: 61px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">properties</div></div></div></foreignObject><text x="110" y="484" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">properties</text></switch></g><rect x="30" y="500" width="130" height="20" fill="url(#mx-gradient-ffcd28-1-ffa500-1-s-0)" stroke="#d79b00" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 510px; margin-left: 31px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;">Capsule C</div></div></div></foreignObject><text x="95" y="514" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Capsule C</text></switch></g><rect x="380" y="520" width="90" height="20" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 88px; height: 1px; padding-top: 530px; margin-left: 382px;"><div data-drawio-colors="color: #000000; " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">&lt;property&gt;</div></div></div></foreignObject><text x="382" y="534" fill="#000000" font-family="Helvetica" font-size="12px">&lt;property&gt;</text></switch></g><path d="M 135 490 L 135 540" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><rect x="60" y="540" width="100" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 98px; height: 1px; padding-top: 550px; margin-left: 61px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">this.self</div></div></div></foreignObject><text x="110" y="554" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">this.self</text></switch></g><path d="M 100 280 L 100 236.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 100 231.12 L 103.5 238.12 L 100 236.37 L 96.5 238.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="20" y="280" width="160" height="50" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 305px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Capsule C</b><br />Capsule Source Tree</div></div></div></foreignObject><text x="100" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Capsule C...</text></switch></g><path d="M 615 280 L 615 236.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 615 231.12 L 618.5 238.12 L 615 236.37 L 611.5 238.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="530" y="280" width="170" height="50" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 305px; margin-left: 531px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Capsule B</b><br />Capsule Source Tree</div></div></div></foreignObject><text x="615" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Capsule B...</text></switch></g><path d="M 340 280 L 340 236.37" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 340 231.12 L 343.5 238.12 L 340 236.37 L 336.5 238.12 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="260" y="280" width="160" height="50" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 305px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><b>Capsule A</b><br />Capsule Source Tree</div></div></div></foreignObject><text x="340" y="309" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Capsule A...</text></switch></g><rect x="20" y="360" width="680" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 678px; height: 1px; padding-top: 370px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">During capsule bootstrapping</div></div></div></foreignObject><text x="360" y="374" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">During capsule bootstrapping</text></switch></g><rect x="20" y="210" width="160" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 220px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span>Projected Component</span></div></div></div></foreignObject><text x="100" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projected Component</text></switch></g><rect x="260" y="210" width="160" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 220px; margin-left: 261px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span>Projected Component</span></div></div></div></foreignObject><text x="340" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projected Component</text></switch></g><rect x="530" y="210" width="170" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 168px; height: 1px; padding-top: 220px; margin-left: 531px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><span>Projected Component</span></div></div></div></foreignObject><text x="615" y="224" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Projected Component</text></switch></g><rect x="20" y="250" width="680" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 678px; height: 1px; padding-top: 260px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span style="font-weight: normal;">Projector Capsules</span></div></div></div></foreignObject><text x="360" y="264" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Projector Capsules</text></switch></g><path d="M 190 190 L 190 120.1" fill="none" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 190 113.35 L 194.5 122.35 L 190 120.1 L 185.5 122.35 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="3" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 142px; margin-left: 191px;"><div data-drawio-colors="color: #000000; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: nowrap;">Load Snapshot</div></div></div></foreignObject><text x="191" y="145" fill="#000000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Load Snapshot</text></switch></g><rect x="20" y="190" width="680" height="20" fill="#fff2cc" stroke="#d6b656" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 678px; height: 1px; padding-top: 200px; margin-left: 21px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span>Snapshot           </span></div></div></div></foreignObject><text x="360" y="204" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Snapshot           </text></switch></g><path d="M 10 160 L 710 160" fill="none" stroke="rgb(0, 0, 0)" stroke-width="2" stroke-miterlimit="10" stroke-dasharray="6 6" pointer-events="stroke"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 161px; margin-left: 341px;"><div data-drawio-colors="color: #0066CC; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 11px; font-family: Helvetica; color: rgb(0, 102, 204); line-height: 1.2; pointer-events: all; background-color: rgb(255, 255, 255); white-space: nowrap;"><font color="#000000" style="font-size: 13px;">Separate Process</font></div></div></div></foreignObject><text x="341" y="164" fill="#0066CC" font-family="Helvetica" font-size="11px" text-anchor="middle">Separate Process</text></switch></g><rect x="90" y="90" width="200" height="20" fill="#dae8fc" stroke="#6c8ebf" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 100px; margin-left: 91px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span style="font-weight: normal;">Minimal Runtime</span></div></div></div></foreignObject><text x="190" y="104" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Minimal Runtime</text></switch></g><rect x="710" y="355" width="110" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 108px; height: 1px; padding-top: 370px; margin-left: 711px;"><div data-drawio-colors="color: #CC0000; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">Run from source to "project" (build)</div></div></div></foreignObject><text x="765" y="374" fill="#CC0000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Run from source to...</text></switch></g><rect x="290" y="85" width="155" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 153px; height: 1px; padding-top: 100px; margin-left: 291px;"><div data-drawio-colors="color: #CC0000; background-color: rgb(255, 255, 255); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(204, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; background-color: rgb(255, 255, 255); white-space: normal; overflow-wrap: normal;">Run "projected" (built) components in prod</div></div></div></foreignObject><text x="368" y="104" fill="#CC0000" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Run "projected" (built) co...</text></switch></g><rect x="220" y="685" width="130" height="50" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 128px; height: 1px; padding-top: 710px; margin-left: 221px;"><div data-drawio-colors="color: #004C99; " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 76, 153); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">The <b>Membrane</b> spine contract emits events for all property access.</div></div></div></foreignObject><text x="285" y="714" fill="#004C99" font-family="Helvetica" font-size="12px" text-anchor="middle">The Membrane spine co...</text></switch></g><rect x="90" y="70" width="200" height="20" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 198px; height: 1px; padding-top: 80px; margin-left: 91px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; font-weight: bold; white-space: normal; overflow-wrap: normal;"><span style="font-weight: normal;">Static or Membrane Spine Contract</span></div></div></div></foreignObject><text x="190" y="84" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle" font-weight="bold">Static or Membrane Spine Contract</text></switch></g><rect x="635" y="0" width="185" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-end; width: 183px; height: 1px; padding-top: 15px; margin-left: 635px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: right;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">(c) 2026 <a href="https://christoph.diy">Christoph.diy</a> CC BY</div></div></div></foreignObject><text x="818" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="end">(c) 2026 Christoph.diy CC BY</text></switch></g><rect x="90" y="0" width="350" height="30" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe flex-start; width: 348px; height: 1px; padding-top: 15px; margin-left: 92px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: left;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Encapsulate: Capsule Spine Contract - Overview - v0.1</div></div></div></foreignObject><text x="92" y="19" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px">Encapsulate: Capsule Spine Contract - Overview - v0.1</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>