space-data-module-sdk 0.8.15 → 0.8.16

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.
Files changed (116) hide show
  1. package/docs/_shell/consumer-assets.html +5 -0
  2. package/docs/browser-wasmedge-isomorphic.html +261 -0
  3. package/docs/byo-wasm-quickstart.html +226 -0
  4. package/docs/byo-wasm-quickstart.md +204 -0
  5. package/docs/conformance.html +156 -0
  6. package/docs/emception-shared-memory-verdict.md +209 -0
  7. package/docs/events-abi.html +313 -0
  8. package/docs/events-abi.md +530 -0
  9. package/docs/families/analytics.html +178 -0
  10. package/docs/families/analytics.md +104 -0
  11. package/docs/families/attitude.html +157 -0
  12. package/docs/families/attitude.md +36 -0
  13. package/docs/families/behavior.html +157 -0
  14. package/docs/families/behavior.md +36 -0
  15. package/docs/families/breakup.html +157 -0
  16. package/docs/families/breakup.md +36 -0
  17. package/docs/families/conjunction.html +186 -0
  18. package/docs/families/conjunction.md +121 -0
  19. package/docs/families/data-source.html +318 -0
  20. package/docs/families/effects.html +157 -0
  21. package/docs/families/effects.md +36 -0
  22. package/docs/families/environment.html +170 -0
  23. package/docs/families/environment.md +73 -0
  24. package/docs/families/estimation.html +190 -0
  25. package/docs/families/estimation.md +128 -0
  26. package/docs/families/gnc.html +157 -0
  27. package/docs/families/gnc.md +36 -0
  28. package/docs/families/maneuver.html +209 -0
  29. package/docs/families/maneuver.md +206 -0
  30. package/docs/families/obstruction.html +191 -0
  31. package/docs/families/obstruction.md +96 -0
  32. package/docs/families/propagator.html +333 -0
  33. package/docs/families/propulsion.html +157 -0
  34. package/docs/families/propulsion.md +36 -0
  35. package/docs/families/reentry.html +157 -0
  36. package/docs/families/reentry.md +36 -0
  37. package/docs/families/rf.html +193 -0
  38. package/docs/families/rf.md +136 -0
  39. package/docs/families/scheduler.html +157 -0
  40. package/docs/families/scheduler.md +36 -0
  41. package/docs/families/sensor.html +157 -0
  42. package/docs/families/sensor.md +36 -0
  43. package/docs/families/signature.html +157 -0
  44. package/docs/families/signature.md +36 -0
  45. package/docs/flatsql-host-contract.html +176 -0
  46. package/docs/flatsql-streaming-standard.html +375 -0
  47. package/docs/gpu-module-abi.html +233 -0
  48. package/docs/harness-family-matrix.md +135 -0
  49. package/docs/index.html +216 -85
  50. package/docs/isomorphic-pthreads.html +228 -0
  51. package/docs/isomorphic-pthreads.md +84 -0
  52. package/docs/isomorphic-sdn-runtime-plan.html +274 -0
  53. package/docs/language-runtime-matrix.html +182 -0
  54. package/docs/llms.txt +86 -0
  55. package/docs/module-bundle-runtime-plan.html +146 -0
  56. package/docs/module-publication-standard.html +503 -0
  57. package/docs/node-red-default-node-parity.html +201 -0
  58. package/docs/propagator-abi.md +45 -12
  59. package/docs/protect-and-sign.html +181 -0
  60. package/docs/protect-and-sign.md +120 -0
  61. package/docs/protocol-installation.html +296 -0
  62. package/docs/publication-submission.html +158 -0
  63. package/docs/publication-submission.md +78 -0
  64. package/docs/secrets-capability.html +206 -0
  65. package/docs/styles.css +860 -167
  66. package/docs/testing-harness.html +408 -0
  67. package/docs/tri-runtime-parity-gate.html +182 -0
  68. package/docs/tri-runtime-parity.html +203 -0
  69. package/include/orbpro/orbpro_event_runner.h +951 -0
  70. package/include/orbpro/orbpro_events_abi.h +565 -0
  71. package/include/orbpro/orbpro_propagator_abi.h +17 -0
  72. package/package.json +11 -4
  73. package/schemas/orbpro/Events.fbs +501 -0
  74. package/schemas/orbpro/Propagator.fbs +72 -9
  75. package/schemas/orbpro/reference-frame-crosswalk.json +108 -0
  76. package/schemas/orbpro/reference-frame.lock.json +98 -0
  77. package/src/browser.js +13 -0
  78. package/src/generated/orbpro/events-abi.js +206 -0
  79. package/src/generated/orbpro/events-abi.ts +319 -0
  80. package/src/generated/orbpro/propagator/reference-frame.js +17 -0
  81. package/src/generated/orbpro/propagator/reference-frame.ts +91 -1
  82. package/src/generated/orbpro/propagator-abi.js +17 -0
  83. package/src/generated/orbpro/propagator-abi.ts +17 -0
  84. package/src/generated/spacedatastandards/plg/CCT.d.ts +94 -0
  85. package/src/generated/spacedatastandards/plg/CCT.d.ts.map +1 -0
  86. package/src/generated/spacedatastandards/plg/CCT.js +208 -0
  87. package/src/generated/spacedatastandards/plg/CCT.ts +281 -0
  88. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts +98 -0
  89. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts.map +1 -0
  90. package/src/generated/spacedatastandards/plg/CCTCategory.js +177 -0
  91. package/src/generated/spacedatastandards/plg/CCTCategory.ts +269 -0
  92. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts +54 -0
  93. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts.map +1 -0
  94. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.js +106 -0
  95. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.ts +144 -0
  96. package/src/generated/spacedatastandards/plg/PLG.d.ts +46 -2
  97. package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -1
  98. package/src/generated/spacedatastandards/plg/PLG.js +78 -5
  99. package/src/generated/spacedatastandards/plg/PLG.ts +90 -5
  100. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts +181 -0
  101. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts.map +1 -0
  102. package/src/generated/spacedatastandards/plg/capabilityClass.js +183 -0
  103. package/src/generated/spacedatastandards/plg/capabilityClass.ts +208 -0
  104. package/src/generated/spacedatastandards/plg/main.d.ts +4 -0
  105. package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -1
  106. package/src/generated/spacedatastandards/plg/main.js +4 -0
  107. package/src/generated/spacedatastandards/plg/main.ts +4 -0
  108. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +40 -2
  109. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -1
  110. package/src/generated/spacedatastandards/plg/pluginCategory.js +40 -2
  111. package/src/generated/spacedatastandards/plg/pluginCategory.ts +40 -2
  112. package/src/host/browserModuleHarness.js +8 -0
  113. package/src/host/wasiThreadHost.js +189 -14
  114. package/src/index.d.ts +18 -1
  115. package/src/transport/index.js +16 -0
  116. package/src/transport/records.js +1015 -3
@@ -0,0 +1,157 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="description" content="Status: PLANNED. This family is a ratified entry in the harness-family" />
7
+ <title>Behavior — Space Data Module SDK</title>
8
+ <link rel="stylesheet" href="../styles.css" />
9
+ <!-- SDN_CONSUMER_ASSETS_START -->
10
+ <link rel="stylesheet" href="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" crossorigin="anonymous">
11
+ <script defer src="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" crossorigin="anonymous" data-sdn-wallet-public-client="v1"></script>
12
+ <script defer src="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.52fde607eee38ffa116188201f50258ed50bd18c9f06c1af9678f763147a8fe5.js" integrity="sha384-dgeojhJ8vTszHXIbv7O7nZcEzqD10oUYYJjBmPrV7+kLQEUlXLQD4ek5Q7HOFiO5" crossorigin="anonymous" data-nav-style-url="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.36a36359ce18322185e9ff179f88175bab67d5ad84a14d9c08a54f2ff27267e7.css" data-nav-style-integrity="sha384-c4M8Fg+kYaeOYYtJVr7jJsde24IhSWkWaRyAOHEZU9jozhRck089aw+mnHwxymds" data-wallet-client-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" data-wallet-client-integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" data-wallet-style-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" data-wallet-style-integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" data-wallet-client-id="sdn-module-sdk-pages-v1" data-wallet-callback-uri="https://digitalarsenal.github.io/space-data-module-sdk/wallet-callback.html" data-wallet-registry-sha256="e1ce6fe903c9700484a8a87d96581c8cad97063dabf63030b4518a31a3bdaa93"></script>
13
+ <!-- SDN_CONSUMER_ASSETS_END -->
14
+ </head>
15
+ <body>
16
+ <a class="skip-link" href="#main">Skip to content</a>
17
+ <sdn-stack-nav active="module-sdk"></sdn-stack-nav>
18
+ <header class="site-header">
19
+ <a class="site-brand" href="../">Space Data Module SDK</a>
20
+ <nav class="header-links" aria-label="Site">
21
+ <a href="../byo-wasm-quickstart.html">Quickstart</a>
22
+ <a href="../conformance.html">Conformance</a>
23
+ <a href="https://github.com/DigitalArsenal/space-data-module-sdk">GitHub</a>
24
+ <a class="stack-button" href="#stack">Stack</a>
25
+ </nav>
26
+ </header>
27
+ <div class="shell">
28
+ <nav class="sidebar" id="sidebar" aria-label="Documentation">
29
+ <h2>Start here</h2><ul>
30
+ <li><a href="../index.html"><span>Harness family matrix</span></a></li>
31
+ <li><a href="../byo-wasm-quickstart.html"><span>BYO-wasm quickstart</span></a></li>
32
+ <li><a href="../conformance.html"><span>Conformance kit</span></a></li>
33
+ <li><a href="../protect-and-sign.html"><span>Protect and sign</span></a></li>
34
+ <li><a href="../publication-submission.html"><span>Publication and listing</span></a></li>
35
+ </ul>
36
+ <h2>Dynamics</h2><ul>
37
+ <li><a href="./propagator.html"><span>Propagator</span><span class="tag tag-shipped">shipped</span></a></li>
38
+ <li><a href="./maneuver.html"><span>Maneuver</span><span class="tag tag-experimental">experimental</span></a></li>
39
+ <li><a href="./propulsion.html"><span>Propulsion</span><span class="tag tag-planned">planned</span></a></li>
40
+ <li><a href="./attitude.html"><span>Attitude</span><span class="tag tag-planned">planned</span></a></li>
41
+ <li><a href="./gnc.html"><span>GNC</span><span class="tag tag-planned">planned</span></a></li>
42
+ </ul>
43
+ <h2>Environment and interaction</h2><ul>
44
+ <li><a href="./rf.html"><span>RF</span><span class="tag tag-designed">designed</span></a></li>
45
+ <li><a href="./sensor.html"><span>Sensor</span><span class="tag tag-planned">planned</span></a></li>
46
+ <li><a href="./signature.html"><span>Signature</span><span class="tag tag-planned">planned</span></a></li>
47
+ <li><a href="./environment.html"><span>Environment</span><span class="tag tag-planned">planned</span></a></li>
48
+ <li><a href="./obstruction.html"><span>Obstruction</span><span class="tag tag-designed">designed</span></a></li>
49
+ </ul>
50
+ <h2>Event physics</h2><ul>
51
+ <li><a href="./breakup.html"><span>Breakup</span><span class="tag tag-planned">planned</span></a></li>
52
+ <li><a href="./reentry.html"><span>Reentry</span><span class="tag tag-planned">planned</span></a></li>
53
+ <li><a href="./conjunction.html"><span>Conjunction</span><span class="tag tag-designed">designed</span></a></li>
54
+ <li><a href="./effects.html"><span>Effects</span><span class="tag tag-planned">planned</span></a></li>
55
+ </ul>
56
+ <h2>Estimation, data and logic</h2><ul>
57
+ <li><a href="./estimation.html"><span>Estimation</span><span class="tag tag-experimental">experimental</span></a></li>
58
+ <li><a href="./data-source.html"><span>Data source</span><span class="tag tag-shipped">shipped</span></a></li>
59
+ <li><a href="./analytics.html"><span>Analytics</span><span class="tag tag-experimental">experimental</span></a></li>
60
+ <li><a href="./scheduler.html"><span>Scheduler</span><span class="tag tag-planned">planned</span></a></li>
61
+ <li><a href="./behavior.html" aria-current="page"><span>Behavior</span><span class="tag tag-planned">planned</span></a></li>
62
+ </ul>
63
+ <h2>Runtime contract</h2><ul>
64
+ <li><a href="../events-abi.html"><span>Event locator ABI</span></a></li>
65
+ <li><a href="../module-publication-standard.html"><span>Module publication standard</span></a></li>
66
+ <li><a href="../browser-wasmedge-isomorphic.html"><span>Browser / WasmEdge isomorphism</span></a></li>
67
+ <li><a href="../isomorphic-pthreads.html"><span>Isomorphic pthreads</span></a></li>
68
+ <li><a href="../tri-runtime-parity.html"><span>Tri-runtime parity</span></a></li>
69
+ <li><a href="../tri-runtime-parity-gate.html"><span>Tri-runtime parity gate</span></a></li>
70
+ <li><a href="../testing-harness.html"><span>Testing harness</span></a></li>
71
+ <li><a href="../language-runtime-matrix.html"><span>Language and runtime matrix</span></a></li>
72
+ </ul>
73
+ <h2>Host surfaces</h2><ul>
74
+ <li><a href="../flatsql-host-contract.html"><span>FlatSQL host contract</span></a></li>
75
+ <li><a href="../flatsql-streaming-standard.html"><span>FlatSQL streaming standard</span></a></li>
76
+ <li><a href="../secrets-capability.html"><span>Credential lanes</span></a></li>
77
+ <li><a href="../protocol-installation.html"><span>Protocol installation</span></a></li>
78
+ <li><a href="../gpu-module-abi.html"><span>GPU module ABI</span></a></li>
79
+ <li><a href="../module-bundle-runtime-plan.html"><span>Module bundle runtime</span></a></li>
80
+ <li><a href="../isomorphic-sdn-runtime-plan.html"><span>Isomorphic SDN runtime</span></a></li>
81
+ <li><a href="../node-red-default-node-parity.html"><span>Node-RED node parity</span></a></li>
82
+ </ul>
83
+ </nav>
84
+ <main class="doc" id="main">
85
+ <p class="breadcrumb"><a href="../index.html">Harness families</a> / Estimation, data and logic</p>
86
+ <h1>Behavior</h1>
87
+ <p class="doc-meta"><span class="pill pill-planned">planned</span><span>Planned. This family is a ratified entry in the harness-family taxonomy; its individual shape has not been ratified and nothing is implemented.</span></p>
88
+ <p><strong>Status: PLANNED.</strong> This family is a ratified entry in the harness-family taxonomy. Its individual shape has not been ratified, and nothing is implemented. This page states scope and status; it is not a contract, and it does not imply parity with the Designed tier.</p>
89
+ <h2 id="scope"><a class="anchor" href="#scope" aria-hidden="true">#</a>Scope</h2>
90
+ <p>Scripted or reactive decision logic that drives other families: rules, state machines, and responses to scenario conditions that decide what a vehicle attempts next.</p>
91
+ <h2 id="what-exists-today"><a class="anchor" href="#what-exists-today" aria-hidden="true">#</a>What exists today</h2>
92
+ <p>Nothing. No schema, no header, no module, no open design task.</p>
93
+ <p>Behavior and scheduler overlap and may not survive as two families. Behavior decides what to attempt; the scheduler decides when it happens against constraints. If a freeze cannot draw that line crisply, one family is the right answer rather than two.</p>
94
+ <h2 id="what-ratification-requires"><a class="anchor" href="#what-ratification-requires" aria-hidden="true">#</a>What ratification requires</h2>
95
+ <p>A family reaches Designed when an ABI has been drafted against a real consumer, and Shipped only when all of the following exist:</p>
96
+ <ul>
97
+ <li>A single <code>.fbs</code> schema as the source of the wire layout.</li>
98
+ <li>A generated ABI header with size and offset locks, plus a drift gate that fails when the schema and the committed header disagree.</li>
99
+ <li>Declared units and frames per field, named sentinels, and named negative error codes.</li>
100
+ <li>A conformance kit carrying its own negative control, and a reference module.</li>
101
+ <li>A stated tri-runtime parity envelope.</li>
102
+ <li>Exactly one generic consumer port.</li>
103
+ </ul>
104
+ <p>Until then, do not build against this family. If your work falls in this scope and cannot wait, build a records-in, records-out module through the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a> — that path needs no harness and is available now — and expect to migrate to the family ABI when it is ratified.</p>
105
+ <section class="playground" id="playground-slot" data-family="behavior" data-playground="pending" aria-labelledby="playground-title">
106
+ <h2 id="playground-title">Playground</h2>
107
+ <p>
108
+ An in-browser build-and-run playground for the <code>behavior</code> harness
109
+ mounts here. It is being built under the graph task
110
+ <code>sdk-playground-emception</code>; this slot is its reserved mount
111
+ point and is intentionally empty until that lands.
112
+ </p>
113
+ </section>
114
+ <p class="doc-footer">
115
+ Source of truth for this page:
116
+ <code>docs/families/behavior.md</code>. Regenerate with
117
+ <code>npm run build:docs</code>.
118
+ </p>
119
+ </main>
120
+ <nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#scope">Scope</a></li>
121
+ <li><a class="depth-2" href="#what-exists-today">What exists today</a></li>
122
+ <li><a class="depth-2" href="#what-ratification-requires">What ratification requires</a></li></ul></nav>
123
+ </div>
124
+ <section id="stack" class="section" aria-labelledby="stack-title">
125
+ <div class="section-head">
126
+ <p class="eyebrow">SDN Stack</p>
127
+ <h2 id="stack-title">Connected sites</h2>
128
+ </div>
129
+ <div class="link-list">
130
+ <a href="https://spacedatastandards.org/">
131
+ <span>Standards</span>
132
+ <small>Canonical schemas, record contracts, and generated bindings.</small>
133
+ </a>
134
+ <a href="https://digitalarsenal.github.io/flatbuffers/">
135
+ <span>FlatBuffers</span>
136
+ <small>Binary encoding, schema tooling, and runtime documentation.</small>
137
+ </a>
138
+ <a href="https://digitalarsenal.github.io/flatsql/">
139
+ <span>FlatSQL</span>
140
+ <small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
141
+ </a>
142
+ <a href="https://spacedatanetwork.org/">
143
+ <span>SDN</span>
144
+ <small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
145
+ </a>
146
+ <a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
147
+ <span>Module SDK</span>
148
+ <small>WASM module packaging, validation, and host compatibility tooling.</small>
149
+ </a>
150
+ </div>
151
+ </section>
152
+ <footer class="site-footer">
153
+ Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
154
+ source in <code>docs/</code>; edit the Markdown, never the HTML.
155
+ </footer>
156
+ </body>
157
+ </html>
@@ -0,0 +1,36 @@
1
+ # Behavior
2
+
3
+ **Status: PLANNED.** This family is a ratified entry in the harness-family
4
+ taxonomy. Its individual shape has not been ratified, and nothing is
5
+ implemented. This page states scope and status; it is not a contract, and it
6
+ does not imply parity with the Designed tier.
7
+
8
+ ## Scope
9
+
10
+ Scripted or reactive decision logic that drives other families: rules, state machines, and responses to scenario conditions that decide what a vehicle attempts next.
11
+
12
+ ## What exists today
13
+
14
+ Nothing. No schema, no header, no module, no open design task.
15
+
16
+ Behavior and scheduler overlap and may not survive as two families. Behavior decides what to attempt; the scheduler decides when it happens against constraints. If a freeze cannot draw that line crisply, one family is the right answer rather than two.
17
+
18
+ ## What ratification requires
19
+
20
+ A family reaches Designed when an ABI has been drafted against a real consumer,
21
+ and Shipped only when all of the following exist:
22
+
23
+ - A single `.fbs` schema as the source of the wire layout.
24
+ - A generated ABI header with size and offset locks, plus a drift gate that
25
+ fails when the schema and the committed header disagree.
26
+ - Declared units and frames per field, named sentinels, and named negative error
27
+ codes.
28
+ - A conformance kit carrying its own negative control, and a reference module.
29
+ - A stated tri-runtime parity envelope.
30
+ - Exactly one generic consumer port.
31
+
32
+ Until then, do not build against this family. If your work falls in this scope
33
+ and cannot wait, build a records-in, records-out module through the
34
+ [BYO-wasm quickstart](../byo-wasm-quickstart.html) — that path needs no harness
35
+ and is available now — and expect to migrate to the family ABI when it is
36
+ ratified.
@@ -0,0 +1,157 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="description" content="Status: PLANNED. This family is a ratified entry in the harness-family" />
7
+ <title>Breakup — Space Data Module SDK</title>
8
+ <link rel="stylesheet" href="../styles.css" />
9
+ <!-- SDN_CONSUMER_ASSETS_START -->
10
+ <link rel="stylesheet" href="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" crossorigin="anonymous">
11
+ <script defer src="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" crossorigin="anonymous" data-sdn-wallet-public-client="v1"></script>
12
+ <script defer src="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.52fde607eee38ffa116188201f50258ed50bd18c9f06c1af9678f763147a8fe5.js" integrity="sha384-dgeojhJ8vTszHXIbv7O7nZcEzqD10oUYYJjBmPrV7+kLQEUlXLQD4ek5Q7HOFiO5" crossorigin="anonymous" data-nav-style-url="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.36a36359ce18322185e9ff179f88175bab67d5ad84a14d9c08a54f2ff27267e7.css" data-nav-style-integrity="sha384-c4M8Fg+kYaeOYYtJVr7jJsde24IhSWkWaRyAOHEZU9jozhRck089aw+mnHwxymds" data-wallet-client-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" data-wallet-client-integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" data-wallet-style-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" data-wallet-style-integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" data-wallet-client-id="sdn-module-sdk-pages-v1" data-wallet-callback-uri="https://digitalarsenal.github.io/space-data-module-sdk/wallet-callback.html" data-wallet-registry-sha256="e1ce6fe903c9700484a8a87d96581c8cad97063dabf63030b4518a31a3bdaa93"></script>
13
+ <!-- SDN_CONSUMER_ASSETS_END -->
14
+ </head>
15
+ <body>
16
+ <a class="skip-link" href="#main">Skip to content</a>
17
+ <sdn-stack-nav active="module-sdk"></sdn-stack-nav>
18
+ <header class="site-header">
19
+ <a class="site-brand" href="../">Space Data Module SDK</a>
20
+ <nav class="header-links" aria-label="Site">
21
+ <a href="../byo-wasm-quickstart.html">Quickstart</a>
22
+ <a href="../conformance.html">Conformance</a>
23
+ <a href="https://github.com/DigitalArsenal/space-data-module-sdk">GitHub</a>
24
+ <a class="stack-button" href="#stack">Stack</a>
25
+ </nav>
26
+ </header>
27
+ <div class="shell">
28
+ <nav class="sidebar" id="sidebar" aria-label="Documentation">
29
+ <h2>Start here</h2><ul>
30
+ <li><a href="../index.html"><span>Harness family matrix</span></a></li>
31
+ <li><a href="../byo-wasm-quickstart.html"><span>BYO-wasm quickstart</span></a></li>
32
+ <li><a href="../conformance.html"><span>Conformance kit</span></a></li>
33
+ <li><a href="../protect-and-sign.html"><span>Protect and sign</span></a></li>
34
+ <li><a href="../publication-submission.html"><span>Publication and listing</span></a></li>
35
+ </ul>
36
+ <h2>Dynamics</h2><ul>
37
+ <li><a href="./propagator.html"><span>Propagator</span><span class="tag tag-shipped">shipped</span></a></li>
38
+ <li><a href="./maneuver.html"><span>Maneuver</span><span class="tag tag-experimental">experimental</span></a></li>
39
+ <li><a href="./propulsion.html"><span>Propulsion</span><span class="tag tag-planned">planned</span></a></li>
40
+ <li><a href="./attitude.html"><span>Attitude</span><span class="tag tag-planned">planned</span></a></li>
41
+ <li><a href="./gnc.html"><span>GNC</span><span class="tag tag-planned">planned</span></a></li>
42
+ </ul>
43
+ <h2>Environment and interaction</h2><ul>
44
+ <li><a href="./rf.html"><span>RF</span><span class="tag tag-designed">designed</span></a></li>
45
+ <li><a href="./sensor.html"><span>Sensor</span><span class="tag tag-planned">planned</span></a></li>
46
+ <li><a href="./signature.html"><span>Signature</span><span class="tag tag-planned">planned</span></a></li>
47
+ <li><a href="./environment.html"><span>Environment</span><span class="tag tag-planned">planned</span></a></li>
48
+ <li><a href="./obstruction.html"><span>Obstruction</span><span class="tag tag-designed">designed</span></a></li>
49
+ </ul>
50
+ <h2>Event physics</h2><ul>
51
+ <li><a href="./breakup.html" aria-current="page"><span>Breakup</span><span class="tag tag-planned">planned</span></a></li>
52
+ <li><a href="./reentry.html"><span>Reentry</span><span class="tag tag-planned">planned</span></a></li>
53
+ <li><a href="./conjunction.html"><span>Conjunction</span><span class="tag tag-designed">designed</span></a></li>
54
+ <li><a href="./effects.html"><span>Effects</span><span class="tag tag-planned">planned</span></a></li>
55
+ </ul>
56
+ <h2>Estimation, data and logic</h2><ul>
57
+ <li><a href="./estimation.html"><span>Estimation</span><span class="tag tag-experimental">experimental</span></a></li>
58
+ <li><a href="./data-source.html"><span>Data source</span><span class="tag tag-shipped">shipped</span></a></li>
59
+ <li><a href="./analytics.html"><span>Analytics</span><span class="tag tag-experimental">experimental</span></a></li>
60
+ <li><a href="./scheduler.html"><span>Scheduler</span><span class="tag tag-planned">planned</span></a></li>
61
+ <li><a href="./behavior.html"><span>Behavior</span><span class="tag tag-planned">planned</span></a></li>
62
+ </ul>
63
+ <h2>Runtime contract</h2><ul>
64
+ <li><a href="../events-abi.html"><span>Event locator ABI</span></a></li>
65
+ <li><a href="../module-publication-standard.html"><span>Module publication standard</span></a></li>
66
+ <li><a href="../browser-wasmedge-isomorphic.html"><span>Browser / WasmEdge isomorphism</span></a></li>
67
+ <li><a href="../isomorphic-pthreads.html"><span>Isomorphic pthreads</span></a></li>
68
+ <li><a href="../tri-runtime-parity.html"><span>Tri-runtime parity</span></a></li>
69
+ <li><a href="../tri-runtime-parity-gate.html"><span>Tri-runtime parity gate</span></a></li>
70
+ <li><a href="../testing-harness.html"><span>Testing harness</span></a></li>
71
+ <li><a href="../language-runtime-matrix.html"><span>Language and runtime matrix</span></a></li>
72
+ </ul>
73
+ <h2>Host surfaces</h2><ul>
74
+ <li><a href="../flatsql-host-contract.html"><span>FlatSQL host contract</span></a></li>
75
+ <li><a href="../flatsql-streaming-standard.html"><span>FlatSQL streaming standard</span></a></li>
76
+ <li><a href="../secrets-capability.html"><span>Credential lanes</span></a></li>
77
+ <li><a href="../protocol-installation.html"><span>Protocol installation</span></a></li>
78
+ <li><a href="../gpu-module-abi.html"><span>GPU module ABI</span></a></li>
79
+ <li><a href="../module-bundle-runtime-plan.html"><span>Module bundle runtime</span></a></li>
80
+ <li><a href="../isomorphic-sdn-runtime-plan.html"><span>Isomorphic SDN runtime</span></a></li>
81
+ <li><a href="../node-red-default-node-parity.html"><span>Node-RED node parity</span></a></li>
82
+ </ul>
83
+ </nav>
84
+ <main class="doc" id="main">
85
+ <p class="breadcrumb"><a href="../index.html">Harness families</a> / Event physics</p>
86
+ <h1>Breakup</h1>
87
+ <p class="doc-meta"><span class="pill pill-planned">planned</span><span>Planned. This family is a ratified entry in the harness-family taxonomy; its individual shape has not been ratified and nothing is implemented.</span></p>
88
+ <p><strong>Status: PLANNED.</strong> This family is a ratified entry in the harness-family taxonomy. Its individual shape has not been ratified, and nothing is implemented. This page states scope and status; it is not a contract, and it does not imply parity with the Designed tier.</p>
89
+ <h2 id="scope"><a class="anchor" href="#scope" aria-hidden="true">#</a>Scope</h2>
90
+ <p>Fragmentation events: given a parent object and an event energy, produce a fragment population with area-to-mass ratio, delta-v and size distributions, and the resulting fragment states.</p>
91
+ <h2 id="what-exists-today"><a class="anchor" href="#what-exists-today" aria-hidden="true">#</a>What exists today</h2>
92
+ <p>Nothing in this SDK. Breakup physics is an active program elsewhere in the stack, under its own owner and its own parity law, and is not currently shaped as a module-SDK harness family.</p>
93
+ <p>A fragment population is only acceptable if it matches the standard breakup model within tolerance. Any future harness in this family inherits that parity requirement as an admission gate, not as a nice-to-have — a breakup module that produces a plausible-looking cloud with the wrong distribution is a failure, not an approximation.</p>
94
+ <h2 id="what-ratification-requires"><a class="anchor" href="#what-ratification-requires" aria-hidden="true">#</a>What ratification requires</h2>
95
+ <p>A family reaches Designed when an ABI has been drafted against a real consumer, and Shipped only when all of the following exist:</p>
96
+ <ul>
97
+ <li>A single <code>.fbs</code> schema as the source of the wire layout.</li>
98
+ <li>A generated ABI header with size and offset locks, plus a drift gate that fails when the schema and the committed header disagree.</li>
99
+ <li>Declared units and frames per field, named sentinels, and named negative error codes.</li>
100
+ <li>A conformance kit carrying its own negative control, and a reference module.</li>
101
+ <li>A stated tri-runtime parity envelope.</li>
102
+ <li>Exactly one generic consumer port.</li>
103
+ </ul>
104
+ <p>Until then, do not build against this family. If your work falls in this scope and cannot wait, build a records-in, records-out module through the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a> — that path needs no harness and is available now — and expect to migrate to the family ABI when it is ratified.</p>
105
+ <section class="playground" id="playground-slot" data-family="breakup" data-playground="pending" aria-labelledby="playground-title">
106
+ <h2 id="playground-title">Playground</h2>
107
+ <p>
108
+ An in-browser build-and-run playground for the <code>breakup</code> harness
109
+ mounts here. It is being built under the graph task
110
+ <code>sdk-playground-emception</code>; this slot is its reserved mount
111
+ point and is intentionally empty until that lands.
112
+ </p>
113
+ </section>
114
+ <p class="doc-footer">
115
+ Source of truth for this page:
116
+ <code>docs/families/breakup.md</code>. Regenerate with
117
+ <code>npm run build:docs</code>.
118
+ </p>
119
+ </main>
120
+ <nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#scope">Scope</a></li>
121
+ <li><a class="depth-2" href="#what-exists-today">What exists today</a></li>
122
+ <li><a class="depth-2" href="#what-ratification-requires">What ratification requires</a></li></ul></nav>
123
+ </div>
124
+ <section id="stack" class="section" aria-labelledby="stack-title">
125
+ <div class="section-head">
126
+ <p class="eyebrow">SDN Stack</p>
127
+ <h2 id="stack-title">Connected sites</h2>
128
+ </div>
129
+ <div class="link-list">
130
+ <a href="https://spacedatastandards.org/">
131
+ <span>Standards</span>
132
+ <small>Canonical schemas, record contracts, and generated bindings.</small>
133
+ </a>
134
+ <a href="https://digitalarsenal.github.io/flatbuffers/">
135
+ <span>FlatBuffers</span>
136
+ <small>Binary encoding, schema tooling, and runtime documentation.</small>
137
+ </a>
138
+ <a href="https://digitalarsenal.github.io/flatsql/">
139
+ <span>FlatSQL</span>
140
+ <small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
141
+ </a>
142
+ <a href="https://spacedatanetwork.org/">
143
+ <span>SDN</span>
144
+ <small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
145
+ </a>
146
+ <a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
147
+ <span>Module SDK</span>
148
+ <small>WASM module packaging, validation, and host compatibility tooling.</small>
149
+ </a>
150
+ </div>
151
+ </section>
152
+ <footer class="site-footer">
153
+ Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
154
+ source in <code>docs/</code>; edit the Markdown, never the HTML.
155
+ </footer>
156
+ </body>
157
+ </html>
@@ -0,0 +1,36 @@
1
+ # Breakup
2
+
3
+ **Status: PLANNED.** This family is a ratified entry in the harness-family
4
+ taxonomy. Its individual shape has not been ratified, and nothing is
5
+ implemented. This page states scope and status; it is not a contract, and it
6
+ does not imply parity with the Designed tier.
7
+
8
+ ## Scope
9
+
10
+ Fragmentation events: given a parent object and an event energy, produce a fragment population with area-to-mass ratio, delta-v and size distributions, and the resulting fragment states.
11
+
12
+ ## What exists today
13
+
14
+ Nothing in this SDK. Breakup physics is an active program elsewhere in the stack, under its own owner and its own parity law, and is not currently shaped as a module-SDK harness family.
15
+
16
+ A fragment population is only acceptable if it matches the standard breakup model within tolerance. Any future harness in this family inherits that parity requirement as an admission gate, not as a nice-to-have — a breakup module that produces a plausible-looking cloud with the wrong distribution is a failure, not an approximation.
17
+
18
+ ## What ratification requires
19
+
20
+ A family reaches Designed when an ABI has been drafted against a real consumer,
21
+ and Shipped only when all of the following exist:
22
+
23
+ - A single `.fbs` schema as the source of the wire layout.
24
+ - A generated ABI header with size and offset locks, plus a drift gate that
25
+ fails when the schema and the committed header disagree.
26
+ - Declared units and frames per field, named sentinels, and named negative error
27
+ codes.
28
+ - A conformance kit carrying its own negative control, and a reference module.
29
+ - A stated tri-runtime parity envelope.
30
+ - Exactly one generic consumer port.
31
+
32
+ Until then, do not build against this family. If your work falls in this scope
33
+ and cannot wait, build a records-in, records-out module through the
34
+ [BYO-wasm quickstart](../byo-wasm-quickstart.html) — that path needs no harness
35
+ and is available now — and expect to migrate to the family ABI when it is
36
+ ratified.
@@ -0,0 +1,186 @@
1
+ <!doctype html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
6
+ <meta name="description" content="Status: DESIGNED as a harness family. This one needs an explicit caveat," />
7
+ <title>Conjunction — Space Data Module SDK</title>
8
+ <link rel="stylesheet" href="../styles.css" />
9
+ <!-- SDN_CONSUMER_ASSETS_START -->
10
+ <link rel="stylesheet" href="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" crossorigin="anonymous">
11
+ <script defer src="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" crossorigin="anonymous" data-sdn-wallet-public-client="v1"></script>
12
+ <script defer src="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.52fde607eee38ffa116188201f50258ed50bd18c9f06c1af9678f763147a8fe5.js" integrity="sha384-dgeojhJ8vTszHXIbv7O7nZcEzqD10oUYYJjBmPrV7+kLQEUlXLQD4ek5Q7HOFiO5" crossorigin="anonymous" data-nav-style-url="https://static.spacedatanetwork.org/assets/sdn-stack-nav/1.0.0/sdn-stack-nav.36a36359ce18322185e9ff179f88175bab67d5ad84a14d9c08a54f2ff27267e7.css" data-nav-style-integrity="sha384-c4M8Fg+kYaeOYYtJVr7jJsde24IhSWkWaRyAOHEZU9jozhRck089aw+mnHwxymds" data-wallet-client-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.f611e7e151a3b5c38384272f8894a4c6634f0a29bf925b0e02e0e27f8db0bfff.js" data-wallet-client-integrity="sha384-R+QqsKoWJIS7iWrtPmgJ49DVnb1hSGjZokupbLInJd1PLp8RwQhtF/hnaerc33ci" data-wallet-style-url="https://static.spacedatanetwork.org/assets/hd-wallet-ui/2.0.28/sdn-wallet-public-client.c3f68d1cfd88478f10d836a5e829d1dfc6a10157972cf0f7d4d319d0636f2cc4.css" data-wallet-style-integrity="sha384-fICuhN4I9xqOK1F5vGGzl26opuO+xQIvTZXMSV76lWTBiQ6AfzztMGLLDw8yRT8i" data-wallet-client-id="sdn-module-sdk-pages-v1" data-wallet-callback-uri="https://digitalarsenal.github.io/space-data-module-sdk/wallet-callback.html" data-wallet-registry-sha256="e1ce6fe903c9700484a8a87d96581c8cad97063dabf63030b4518a31a3bdaa93"></script>
13
+ <!-- SDN_CONSUMER_ASSETS_END -->
14
+ </head>
15
+ <body>
16
+ <a class="skip-link" href="#main">Skip to content</a>
17
+ <sdn-stack-nav active="module-sdk"></sdn-stack-nav>
18
+ <header class="site-header">
19
+ <a class="site-brand" href="../">Space Data Module SDK</a>
20
+ <nav class="header-links" aria-label="Site">
21
+ <a href="../byo-wasm-quickstart.html">Quickstart</a>
22
+ <a href="../conformance.html">Conformance</a>
23
+ <a href="https://github.com/DigitalArsenal/space-data-module-sdk">GitHub</a>
24
+ <a class="stack-button" href="#stack">Stack</a>
25
+ </nav>
26
+ </header>
27
+ <div class="shell">
28
+ <nav class="sidebar" id="sidebar" aria-label="Documentation">
29
+ <h2>Start here</h2><ul>
30
+ <li><a href="../index.html"><span>Harness family matrix</span></a></li>
31
+ <li><a href="../byo-wasm-quickstart.html"><span>BYO-wasm quickstart</span></a></li>
32
+ <li><a href="../conformance.html"><span>Conformance kit</span></a></li>
33
+ <li><a href="../protect-and-sign.html"><span>Protect and sign</span></a></li>
34
+ <li><a href="../publication-submission.html"><span>Publication and listing</span></a></li>
35
+ </ul>
36
+ <h2>Dynamics</h2><ul>
37
+ <li><a href="./propagator.html"><span>Propagator</span><span class="tag tag-shipped">shipped</span></a></li>
38
+ <li><a href="./maneuver.html"><span>Maneuver</span><span class="tag tag-experimental">experimental</span></a></li>
39
+ <li><a href="./propulsion.html"><span>Propulsion</span><span class="tag tag-planned">planned</span></a></li>
40
+ <li><a href="./attitude.html"><span>Attitude</span><span class="tag tag-planned">planned</span></a></li>
41
+ <li><a href="./gnc.html"><span>GNC</span><span class="tag tag-planned">planned</span></a></li>
42
+ </ul>
43
+ <h2>Environment and interaction</h2><ul>
44
+ <li><a href="./rf.html"><span>RF</span><span class="tag tag-designed">designed</span></a></li>
45
+ <li><a href="./sensor.html"><span>Sensor</span><span class="tag tag-planned">planned</span></a></li>
46
+ <li><a href="./signature.html"><span>Signature</span><span class="tag tag-planned">planned</span></a></li>
47
+ <li><a href="./environment.html"><span>Environment</span><span class="tag tag-planned">planned</span></a></li>
48
+ <li><a href="./obstruction.html"><span>Obstruction</span><span class="tag tag-designed">designed</span></a></li>
49
+ </ul>
50
+ <h2>Event physics</h2><ul>
51
+ <li><a href="./breakup.html"><span>Breakup</span><span class="tag tag-planned">planned</span></a></li>
52
+ <li><a href="./reentry.html"><span>Reentry</span><span class="tag tag-planned">planned</span></a></li>
53
+ <li><a href="./conjunction.html" aria-current="page"><span>Conjunction</span><span class="tag tag-designed">designed</span></a></li>
54
+ <li><a href="./effects.html"><span>Effects</span><span class="tag tag-planned">planned</span></a></li>
55
+ </ul>
56
+ <h2>Estimation, data and logic</h2><ul>
57
+ <li><a href="./estimation.html"><span>Estimation</span><span class="tag tag-experimental">experimental</span></a></li>
58
+ <li><a href="./data-source.html"><span>Data source</span><span class="tag tag-shipped">shipped</span></a></li>
59
+ <li><a href="./analytics.html"><span>Analytics</span><span class="tag tag-experimental">experimental</span></a></li>
60
+ <li><a href="./scheduler.html"><span>Scheduler</span><span class="tag tag-planned">planned</span></a></li>
61
+ <li><a href="./behavior.html"><span>Behavior</span><span class="tag tag-planned">planned</span></a></li>
62
+ </ul>
63
+ <h2>Runtime contract</h2><ul>
64
+ <li><a href="../events-abi.html"><span>Event locator ABI</span></a></li>
65
+ <li><a href="../module-publication-standard.html"><span>Module publication standard</span></a></li>
66
+ <li><a href="../browser-wasmedge-isomorphic.html"><span>Browser / WasmEdge isomorphism</span></a></li>
67
+ <li><a href="../isomorphic-pthreads.html"><span>Isomorphic pthreads</span></a></li>
68
+ <li><a href="../tri-runtime-parity.html"><span>Tri-runtime parity</span></a></li>
69
+ <li><a href="../tri-runtime-parity-gate.html"><span>Tri-runtime parity gate</span></a></li>
70
+ <li><a href="../testing-harness.html"><span>Testing harness</span></a></li>
71
+ <li><a href="../language-runtime-matrix.html"><span>Language and runtime matrix</span></a></li>
72
+ </ul>
73
+ <h2>Host surfaces</h2><ul>
74
+ <li><a href="../flatsql-host-contract.html"><span>FlatSQL host contract</span></a></li>
75
+ <li><a href="../flatsql-streaming-standard.html"><span>FlatSQL streaming standard</span></a></li>
76
+ <li><a href="../secrets-capability.html"><span>Credential lanes</span></a></li>
77
+ <li><a href="../protocol-installation.html"><span>Protocol installation</span></a></li>
78
+ <li><a href="../gpu-module-abi.html"><span>GPU module ABI</span></a></li>
79
+ <li><a href="../module-bundle-runtime-plan.html"><span>Module bundle runtime</span></a></li>
80
+ <li><a href="../isomorphic-sdn-runtime-plan.html"><span>Isomorphic SDN runtime</span></a></li>
81
+ <li><a href="../node-red-default-node-parity.html"><span>Node-RED node parity</span></a></li>
82
+ </ul>
83
+ </nav>
84
+ <main class="doc" id="main">
85
+ <p class="breadcrumb"><a href="../index.html">Harness families</a> / Event physics</p>
86
+ <h1>Conjunction</h1>
87
+ <p class="doc-meta"><span class="pill pill-designed">designed</span><span>Designed, not ratified. The ABI has been drafted against a real consumer but no generated header, conformance kit, or reference module has landed.</span></p>
88
+ <p><strong>Status: DESIGNED as a harness family.</strong> This one needs an explicit caveat, because the plain word &quot;designed&quot; would mislead you: a mature, externally validated conjunction-assessment module ships today and is in production. What does not exist is a <em>harness</em> — a ratified family ABI that a third party implements so their screening engine drops into a consumer's conjunction port.</p>
89
+ <p>Read that distinction carefully before choosing your path.</p>
90
+ <h2 id="doctrine"><a class="anchor" href="#doctrine" aria-hidden="true">#</a>Doctrine</h2>
91
+ <p>A conjunction module screens a catalog for close approaches, refines the time of closest approach, and computes collision probability. As a harness family, it would let a vendor substitute their own screening and probability engine behind a uniform port. As a shipped application module, it already does the work through the generic invoke surface.</p>
92
+ <p>The shipped module rides the generic analysis family in the manifest vocabulary; there is no dedicated conjunction member in the runtime <code>PluginFamily</code> enum, and this family was never brought into the harness-shapes ratification program. That is why its harness status is Designed while its capability is real.</p>
93
+ <h2 id="capability"><a class="anchor" href="#capability" aria-hidden="true">#</a>Capability</h2>
94
+ <p>Screen a catalog, prefilter, refine time of closest approach, compute probability of collision, and emit conjunction records. In the shipped module this includes a k-d-tree candidate search, a refinement stage, and signed Conjunction Data Message output.</p>
95
+ <h2 id="import-and-export-set"><a class="anchor" href="#import-and-export-set" aria-hidden="true">#</a>Import and export set</h2>
96
+ <p><strong>Not specified as a harness ABI.</strong> The shipped module declares a <code>command</code> invoke surface with an assessment method, runtime targets browser, wasi and wasmedge, and a dependency on a propagator plugin. There is no <code>orbpro_conjunction_abi.h</code>.</p>
97
+ <h2 id="wire-layout"><a class="anchor" href="#wire-layout" aria-hidden="true">#</a>Wire layout</h2>
98
+ <p><strong>Real schemas exist, but as a module's own message set, not as a ratified family ABI.</strong> The shipped module carries a schema set including shared types and per-operation request and result messages:</p>
99
+ <div class="table-wrap"><table><thead><tr><th>Schema group</th><th>Contents</th></tr></thead><tbody><tr><td>Common</td><td>Element-set records, B-plane geometry, screening statistics, reference-frame and source-kind enumerations</td></tr><tr><td>Probability</td><td>Probability-of-collision request and result</td></tr><tr><td>Alfano</td><td>Alfano-method request and result</td></tr><tr><td>Pair and catalog screening</td><td>Pair request, catalog screening request and result</td></tr><tr><td>Events</td><td>Time-of-closest-approach result, conjunction event, version result</td></tr></tbody></table></div>
100
+ <p>B-plane geometry carries the miss-distance components and the combined covariance terms plus a combined hard-body radius. Screening statistics report objects screened, pairs screened, pairs prefiltered, candidates from the acceleration structure, refinements, conjunctions found, propagations performed, and elapsed time.</p>
101
+ <p>Results are emitted as Space Data Standards <code>$CDM</code> conjunction data messages, whose schema is separately ratified.</p>
102
+ <p>Because this is a module's message set rather than a generated family header, there are no size and offset locks and no drift gate on it as an ABI.</p>
103
+ <h2 id="units-and-frames"><a class="anchor" href="#units-and-frames" aria-hidden="true">#</a>Units and frames</h2>
104
+ <p>The reference frame is explicit in the schema — an enumeration covering ECI, ECEF, TEME and ICRF, plus an unknown value. That explicitness is the right pattern and should survive into any harness freeze. Per-field units are defined by the module's own schemas.</p>
105
+ <h2 id="sentinels"><a class="anchor" href="#sentinels" aria-hidden="true">#</a>Sentinels</h2>
106
+ <p>Enumerations carry an explicit unknown member rather than overloading zero with a real meaning. That is the one sentinel convention this family already gets right.</p>
107
+ <h2 id="identity"><a class="anchor" href="#identity" aria-hidden="true">#</a>Identity</h2>
108
+ <p>Objects are addressed by their catalog identity, and a conjunction event is identified by the object pair plus the time of closest approach.</p>
109
+ <h2 id="threading"><a class="anchor" href="#threading" aria-hidden="true">#</a>Threading</h2>
110
+ <p><code>wasm32-wasip1-threads</code>. The screening path is thread-parallel and is exercised by a standalone WasmEdge harness in the module's own test suite.</p>
111
+ <h2 id="error-codes"><a class="anchor" href="#error-codes" aria-hidden="true">#</a>Error codes</h2>
112
+ <p>Not specified as a named harness code set.</p>
113
+ <h2 id="lifetime"><a class="anchor" href="#lifetime" aria-hidden="true">#</a>Lifetime</h2>
114
+ <p>Command-surface lifetime: instantiate, invoke, tear down.</p>
115
+ <h2 id="parity-envelope"><a class="anchor" href="#parity-envelope" aria-hidden="true">#</a>Parity envelope</h2>
116
+ <p>The module has its own cross-runtime harness tests, including a standalone WasmEdge run. It has no ratified family parity envelope. Use the generic <a href="../tri-runtime-parity-gate.html">parity gate</a>.</p>
117
+ <h2 id="consumer-seam"><a class="anchor" href="#consumer-seam" aria-hidden="true">#</a>Consumer seam</h2>
118
+ <p>The propagator dependency is the seam that already works: the module takes its propagator as a plugin rather than compiling one in, which satisfies the pluggable-propagation law. There is no generic conjunction port on the consumer side yet, and the consumer-side rendering integration has open defects.</p>
119
+ <h2 id="guest-c-example"><a class="anchor" href="#guest-c-example" aria-hidden="true">#</a>Guest C++ example</h2>
120
+ <p>None published as a family example. The shipped module is an application module, not a reference harness implementation, and presenting it as one would imply an ABI that has not been frozen.</p>
121
+ <h2 id="what-to-do-today"><a class="anchor" href="#what-to-do-today" aria-hidden="true">#</a>What to do today</h2>
122
+ <p>If you have a screening or probability engine you want to run on the Space Data Network: build a records-in, records-out module through the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a>, consume element-set records, emit <code>$CDM</code>, and take your propagator as a plugin. That works now. The harness freeze is what will later let your engine be substituted behind a consumer's conjunction port without the consumer knowing.</p>
123
+ <section class="playground" id="playground-slot" data-family="conjunction" data-playground="pending" aria-labelledby="playground-title">
124
+ <h2 id="playground-title">Playground</h2>
125
+ <p>
126
+ An in-browser build-and-run playground for the <code>conjunction</code> harness
127
+ mounts here. It is being built under the graph task
128
+ <code>sdk-playground-emception</code>; this slot is its reserved mount
129
+ point and is intentionally empty until that lands.
130
+ </p>
131
+ </section>
132
+ <p class="doc-footer">
133
+ Source of truth for this page:
134
+ <code>docs/families/conjunction.md</code>. Regenerate with
135
+ <code>npm run build:docs</code>.
136
+ </p>
137
+ </main>
138
+ <nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#doctrine">Doctrine</a></li>
139
+ <li><a class="depth-2" href="#capability">Capability</a></li>
140
+ <li><a class="depth-2" href="#import-and-export-set">Import and export set</a></li>
141
+ <li><a class="depth-2" href="#wire-layout">Wire layout</a></li>
142
+ <li><a class="depth-2" href="#units-and-frames">Units and frames</a></li>
143
+ <li><a class="depth-2" href="#sentinels">Sentinels</a></li>
144
+ <li><a class="depth-2" href="#identity">Identity</a></li>
145
+ <li><a class="depth-2" href="#threading">Threading</a></li>
146
+ <li><a class="depth-2" href="#error-codes">Error codes</a></li>
147
+ <li><a class="depth-2" href="#lifetime">Lifetime</a></li>
148
+ <li><a class="depth-2" href="#parity-envelope">Parity envelope</a></li>
149
+ <li><a class="depth-2" href="#consumer-seam">Consumer seam</a></li>
150
+ <li><a class="depth-2" href="#guest-c-example">Guest C++ example</a></li>
151
+ <li><a class="depth-2" href="#what-to-do-today">What to do today</a></li></ul></nav>
152
+ </div>
153
+ <section id="stack" class="section" aria-labelledby="stack-title">
154
+ <div class="section-head">
155
+ <p class="eyebrow">SDN Stack</p>
156
+ <h2 id="stack-title">Connected sites</h2>
157
+ </div>
158
+ <div class="link-list">
159
+ <a href="https://spacedatastandards.org/">
160
+ <span>Standards</span>
161
+ <small>Canonical schemas, record contracts, and generated bindings.</small>
162
+ </a>
163
+ <a href="https://digitalarsenal.github.io/flatbuffers/">
164
+ <span>FlatBuffers</span>
165
+ <small>Binary encoding, schema tooling, and runtime documentation.</small>
166
+ </a>
167
+ <a href="https://digitalarsenal.github.io/flatsql/">
168
+ <span>FlatSQL</span>
169
+ <small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
170
+ </a>
171
+ <a href="https://spacedatanetwork.org/">
172
+ <span>SDN</span>
173
+ <small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
174
+ </a>
175
+ <a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
176
+ <span>Module SDK</span>
177
+ <small>WASM module packaging, validation, and host compatibility tooling.</small>
178
+ </a>
179
+ </div>
180
+ </section>
181
+ <footer class="site-footer">
182
+ Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
183
+ source in <code>docs/</code>; edit the Markdown, never the HTML.
184
+ </footer>
185
+ </body>
186
+ </html>