48 lines
5.1 KiB
XML
48 lines
5.1 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="960" height="660" viewBox="0 0 960 660" role="img" aria-labelledby="title desc">
|
||
<title id="title">Матрица compatibility contract для трёх synthetic cases</title>
|
||
<desc id="desc">Таблица сопоставляет valid, invalid и repeat synthetic cases с четырьмя слоями: transport, payload, effect и time. Каждая ячейка требует отдельное evidence; неизвестное свойство нельзя объявлять parity.</desc>
|
||
<rect width="960" height="660" fill="#f5f8fb"/>
|
||
<rect x="24" y="22" width="912" height="616" rx="24" fill="#ffffff" stroke="#bfd0df" stroke-width="2"/>
|
||
<text x="58" y="74" fill="#18324a" font-family="Arial, sans-serif" font-size="30" font-weight="700">Parity: свойства важнее похожего JSON</text>
|
||
<text x="58" y="108" fill="#496379" font-family="Arial, sans-serif" font-size="20">Каждая клетка требует evidence. Unknown не равен parity.</text>
|
||
|
||
<rect x="58" y="158" width="200" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
|
||
<rect x="258" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
|
||
<rect x="414" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
|
||
<rect x="570" y="158" width="156" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
|
||
<rect x="726" y="158" width="176" height="68" fill="#dae8f5" stroke="#88a7c0" stroke-width="2"/>
|
||
<text x="158" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Synthetic case</text>
|
||
<text x="336" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Transport</text>
|
||
<text x="492" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Payload</text>
|
||
<text x="648" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Effect</text>
|
||
<text x="814" y="200" text-anchor="middle" fill="#18324a" font-family="Arial, sans-serif" font-size="22" font-weight="700">Time</text>
|
||
|
||
<g fill="#f8fafc" stroke="#bfd0df" stroke-width="2">
|
||
<rect x="58" y="226" width="200" height="96"/><rect x="258" y="226" width="156" height="96"/><rect x="414" y="226" width="156" height="96"/><rect x="570" y="226" width="156" height="96"/><rect x="726" y="226" width="176" height="96"/>
|
||
<rect x="58" y="322" width="200" height="96"/><rect x="258" y="322" width="156" height="96"/><rect x="414" y="322" width="156" height="96"/><rect x="570" y="322" width="156" height="96"/><rect x="726" y="322" width="176" height="96"/>
|
||
<rect x="58" y="418" width="200" height="96"/><rect x="258" y="418" width="156" height="96"/><rect x="414" y="418" width="156" height="96"/><rect x="570" y="418" width="156" height="96"/><rect x="726" y="418" width="176" height="96"/>
|
||
</g>
|
||
<g font-family="Arial, sans-serif">
|
||
<text x="78" y="265" fill="#18324a" font-size="22" font-weight="700">valid</text><text x="78" y="294" fill="#496379" font-size="18">declared success</text>
|
||
<text x="78" y="361" fill="#18324a" font-size="22" font-weight="700">invalid</text><text x="78" y="390" fill="#496379" font-size="18">validation boundary</text>
|
||
<text x="78" y="457" fill="#18324a" font-size="22" font-weight="700">repeat</text><text x="78" y="486" fill="#496379" font-size="18">same input or key</text>
|
||
<g fill="#305842" font-size="18">
|
||
<text x="276" y="270">status category</text><text x="276" y="294">declared evidence</text>
|
||
<text x="432" y="270">required fields</text><text x="432" y="294">declared evidence</text>
|
||
<text x="588" y="270">no extra effect</text><text x="588" y="294">declared evidence</text>
|
||
<text x="744" y="270">known state point</text><text x="744" y="294">declared evidence</text>
|
||
<text x="276" y="366">not success or 500</text><text x="276" y="390">declared evidence</text>
|
||
<text x="432" y="366">error contract</text><text x="432" y="390">declared evidence</text>
|
||
<text x="588" y="366">no mutation on reject</text><text x="588" y="390">declared evidence</text>
|
||
<text x="744" y="366">precondition named</text><text x="744" y="390">declared evidence</text>
|
||
<text x="276" y="462">same response class</text><text x="276" y="486">declared evidence</text>
|
||
<text x="432" y="462">same semantics</text><text x="432" y="486">declared evidence</text>
|
||
<text x="588" y="462">no duplicate effect</text><text x="588" y="486">declared evidence</text>
|
||
<text x="744" y="462">idempotency boundary</text><text x="744" y="486">declared evidence</text>
|
||
</g>
|
||
</g>
|
||
<rect x="58" y="548" width="844" height="54" rx="12" fill="#fff3df" stroke="#bd8135" stroke-width="2"/>
|
||
<text x="80" y="581" fill="#5a3a10" font-family="Arial, sans-serif" font-size="20" font-weight="700">Unknown is a result:</text>
|
||
<text x="277" y="581" fill="#735021" font-family="Arial, sans-serif" font-size="20">do not call parity until the owner has a source and a comparison rule.</text>
|
||
</svg>
|