space-data-module-sdk 0.8.14 → 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 (125) hide show
  1. package/bin/space-data-module.js +91 -0
  2. package/docs/_shell/consumer-assets.html +5 -0
  3. package/docs/browser-wasmedge-isomorphic.html +261 -0
  4. package/docs/byo-wasm-quickstart.html +226 -0
  5. package/docs/byo-wasm-quickstart.md +204 -0
  6. package/docs/conformance.html +156 -0
  7. package/docs/conformance.md +92 -0
  8. package/docs/emception-shared-memory-verdict.md +209 -0
  9. package/docs/events-abi.html +313 -0
  10. package/docs/events-abi.md +530 -0
  11. package/docs/families/analytics.html +178 -0
  12. package/docs/families/analytics.md +104 -0
  13. package/docs/families/attitude.html +157 -0
  14. package/docs/families/attitude.md +36 -0
  15. package/docs/families/behavior.html +157 -0
  16. package/docs/families/behavior.md +36 -0
  17. package/docs/families/breakup.html +157 -0
  18. package/docs/families/breakup.md +36 -0
  19. package/docs/families/conjunction.html +186 -0
  20. package/docs/families/conjunction.md +121 -0
  21. package/docs/families/data-source.html +318 -0
  22. package/docs/families/effects.html +157 -0
  23. package/docs/families/effects.md +36 -0
  24. package/docs/families/environment.html +170 -0
  25. package/docs/families/environment.md +73 -0
  26. package/docs/families/estimation.html +190 -0
  27. package/docs/families/estimation.md +128 -0
  28. package/docs/families/gnc.html +157 -0
  29. package/docs/families/gnc.md +36 -0
  30. package/docs/families/maneuver.html +209 -0
  31. package/docs/families/maneuver.md +206 -0
  32. package/docs/families/obstruction.html +191 -0
  33. package/docs/families/obstruction.md +96 -0
  34. package/docs/families/propagator.html +333 -0
  35. package/docs/families/propulsion.html +157 -0
  36. package/docs/families/propulsion.md +36 -0
  37. package/docs/families/reentry.html +157 -0
  38. package/docs/families/reentry.md +36 -0
  39. package/docs/families/rf.html +193 -0
  40. package/docs/families/rf.md +136 -0
  41. package/docs/families/scheduler.html +157 -0
  42. package/docs/families/scheduler.md +36 -0
  43. package/docs/families/sensor.html +157 -0
  44. package/docs/families/sensor.md +36 -0
  45. package/docs/families/signature.html +157 -0
  46. package/docs/families/signature.md +36 -0
  47. package/docs/flatsql-host-contract.html +176 -0
  48. package/docs/flatsql-streaming-standard.html +375 -0
  49. package/docs/gpu-module-abi.html +233 -0
  50. package/docs/harness-family-matrix.md +135 -0
  51. package/docs/index.html +216 -85
  52. package/docs/isomorphic-pthreads.html +228 -0
  53. package/docs/isomorphic-pthreads.md +84 -0
  54. package/docs/isomorphic-sdn-runtime-plan.html +274 -0
  55. package/docs/language-runtime-matrix.html +182 -0
  56. package/docs/llms.txt +86 -0
  57. package/docs/module-bundle-runtime-plan.html +146 -0
  58. package/docs/module-publication-standard.html +503 -0
  59. package/docs/node-red-default-node-parity.html +201 -0
  60. package/docs/propagator-abi.md +73 -21
  61. package/docs/protect-and-sign.html +181 -0
  62. package/docs/protect-and-sign.md +120 -0
  63. package/docs/protocol-installation.html +296 -0
  64. package/docs/publication-submission.html +158 -0
  65. package/docs/publication-submission.md +78 -0
  66. package/docs/secrets-capability.html +206 -0
  67. package/docs/styles.css +860 -167
  68. package/docs/testing-harness.html +408 -0
  69. package/docs/tri-runtime-parity-gate.html +182 -0
  70. package/docs/tri-runtime-parity.html +203 -0
  71. package/include/orbpro/orbpro_event_runner.h +951 -0
  72. package/include/orbpro/orbpro_events_abi.h +565 -0
  73. package/include/orbpro/orbpro_propagator_abi.h +17 -0
  74. package/package.json +15 -5
  75. package/schemas/orbpro/Events.fbs +501 -0
  76. package/schemas/orbpro/Propagator.fbs +72 -9
  77. package/schemas/orbpro/reference-frame-crosswalk.json +108 -0
  78. package/schemas/orbpro/reference-frame.lock.json +98 -0
  79. package/src/browser.js +13 -0
  80. package/src/conformance/abiDriver.js +225 -0
  81. package/src/conformance/index.js +151 -0
  82. package/src/conformance/propagatorSuite.js +526 -0
  83. package/src/conformance/selfTest.js +275 -0
  84. package/src/conformance/selfTestCorpus.js +68 -0
  85. package/src/conformance/twoBodyReference.js +132 -0
  86. package/src/generated/orbpro/events-abi.js +206 -0
  87. package/src/generated/orbpro/events-abi.ts +319 -0
  88. package/src/generated/orbpro/propagator/reference-frame.js +17 -0
  89. package/src/generated/orbpro/propagator/reference-frame.ts +91 -1
  90. package/src/generated/orbpro/propagator-abi.js +17 -0
  91. package/src/generated/orbpro/propagator-abi.ts +17 -0
  92. package/src/generated/spacedatastandards/plg/CCT.d.ts +94 -0
  93. package/src/generated/spacedatastandards/plg/CCT.d.ts.map +1 -0
  94. package/src/generated/spacedatastandards/plg/CCT.js +208 -0
  95. package/src/generated/spacedatastandards/plg/CCT.ts +281 -0
  96. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts +98 -0
  97. package/src/generated/spacedatastandards/plg/CCTCategory.d.ts.map +1 -0
  98. package/src/generated/spacedatastandards/plg/CCTCategory.js +177 -0
  99. package/src/generated/spacedatastandards/plg/CCTCategory.ts +269 -0
  100. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts +54 -0
  101. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.d.ts.map +1 -0
  102. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.js +106 -0
  103. package/src/generated/spacedatastandards/plg/CCTCategoryRollup.ts +144 -0
  104. package/src/generated/spacedatastandards/plg/PLG.d.ts +46 -2
  105. package/src/generated/spacedatastandards/plg/PLG.d.ts.map +1 -1
  106. package/src/generated/spacedatastandards/plg/PLG.js +78 -5
  107. package/src/generated/spacedatastandards/plg/PLG.ts +90 -5
  108. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts +181 -0
  109. package/src/generated/spacedatastandards/plg/capabilityClass.d.ts.map +1 -0
  110. package/src/generated/spacedatastandards/plg/capabilityClass.js +183 -0
  111. package/src/generated/spacedatastandards/plg/capabilityClass.ts +208 -0
  112. package/src/generated/spacedatastandards/plg/main.d.ts +4 -0
  113. package/src/generated/spacedatastandards/plg/main.d.ts.map +1 -1
  114. package/src/generated/spacedatastandards/plg/main.js +4 -0
  115. package/src/generated/spacedatastandards/plg/main.ts +4 -0
  116. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts +40 -2
  117. package/src/generated/spacedatastandards/plg/pluginCategory.d.ts.map +1 -1
  118. package/src/generated/spacedatastandards/plg/pluginCategory.js +40 -2
  119. package/src/generated/spacedatastandards/plg/pluginCategory.ts +40 -2
  120. package/src/host/browserModuleHarness.js +8 -0
  121. package/src/host/wasiThreadHost.js +189 -14
  122. package/src/index.d.ts +18 -1
  123. package/src/testing/isomorphicHarness.js +233 -0
  124. package/src/transport/index.js +16 -0
  125. 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>Reentry — 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" aria-current="page"><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>Reentry</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>Atmospheric reentry: the descent corridor, aerothermal heating, ablation and demise of components, and the surviving-debris ground footprint.</p>
91
+ <h2 id="what-exists-today"><a class="anchor" href="#what-exists-today" aria-hidden="true">#</a>What exists today</h2>
92
+ <p>No physics-kernel harness. An open, low-priority task describes a reentry dynamics module covering corridor, heating and footprint with visualization, blocked behind SDK prerequisites. A closed reentry-related package exists but it is a data-source provider, not a physics kernel — it brings data in, it does not model descent.</p>
93
+ <p>Reentry depends on the environment family for atmospheric density and on a signature or materials contract for demise modelling, neither of which exists.</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="reentry" 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>reentry</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/reentry.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
+ # Reentry
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
+ Atmospheric reentry: the descent corridor, aerothermal heating, ablation and demise of components, and the surviving-debris ground footprint.
11
+
12
+ ## What exists today
13
+
14
+ No physics-kernel harness. An open, low-priority task describes a reentry dynamics module covering corridor, heating and footprint with visualization, blocked behind SDK prerequisites. A closed reentry-related package exists but it is a data-source provider, not a physics kernel — it brings data in, it does not model descent.
15
+
16
+ Reentry depends on the environment family for atmospheric density and on a signature or materials contract for demise modelling, neither of which exists.
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,193 @@
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. The RF ABI has been drafted against a real paying" />
7
+ <title>RF — 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" aria-current="page"><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"><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> / Environment and interaction</p>
86
+ <h1>RF</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.</strong> The RF ABI has been drafted against a real paying consumer, and the boundary of what will and will not be a public contract has been ruled. No <code>.fbs</code>, no generated header, no conformance kit and no reference module exist yet. Nothing on this page is a stable ABI.</p>
89
+ <h2 id="doctrine"><a class="anchor" href="#doctrine" aria-hidden="true">#</a>Doctrine</h2>
90
+ <p>Read this section before anything else, because it decides whether you need this family at all.</p>
91
+ <p><strong>Most third-party RF does not need a harness.</strong> RF that takes records in and emits records out — link budgets, access intervals, coverage products expressed as <code>$RFL</code>, <code>$ACI</code> and <code>$CVP</code>-class records — is an ordinary invoke-envelope module. It has no harness requirement, no ABI freeze to wait for, and it is the entry point for a vendor bringing an existing RF engine. If your engine computes propagation loss, link margin, interference or coverage and hands back numbers, this is your path today, and it is available now: build a BYO-wasm module, emit records, publish it.</p>
92
+ <p><strong>The RF harness family exists only for RF that writes scene state.</strong> A module that draws footprints, writes entity or render state, or otherwise participates in the consumer's scene graph needs the harness, because that is where a byte-exact shared-memory contract is required.</p>
93
+ <p><strong>The closed scalar <code>rf_*</code> kernel ABI is never the public contract.</strong> A set of closed, encrypted, individually licensed scalar RF kernels exists — free-space path loss, link budget, antenna pattern, gaseous and rain and cloud attenuation, diffraction, Doppler and Fresnel geometry, terrain solvers, empirical and Longley-Rice models, bit-error-rate and modulation. Their scalar kernel-op ABI is internal by permanent ruling, not by maturity. It will not be offered as a third-party contract, and a third-party module must never be written against it.</p>
94
+ <h2 id="capability"><a class="anchor" href="#capability" aria-hidden="true">#</a>Capability</h2>
95
+ <p>A harness-class RF module computes link geometry and radio physics over many links and many epochs, and writes its results into caller-provided memory. It does not fetch data, does not decide tasking, and does not own the entities it computes over.</p>
96
+ <h2 id="import-and-export-set"><a class="anchor" href="#import-and-export-set" aria-hidden="true">#</a>Import and export set</h2>
97
+ <p><strong>Not specified.</strong> The design calls for one aligned-binary invocation covering many links and epochs, following the propagator family's export-set template (init, compute, destroy, plus optional typed ingest and introspection), with the symbol names to be fixed when the header is generated. <code>orbpro_rf_abi.h</code> does not exist.</p>
98
+ <h2 id="wire-layout"><a class="anchor" href="#wire-layout" aria-hidden="true">#</a>Wire layout</h2>
99
+ <p><strong>Drafted, not generated.</strong> The drafted bulk link-matrix ABI is a single <code>.fbs</code>-defined invocation that emits, in one call:</p>
100
+ <div class="table-wrap"><table><thead><tr><th>Output</th><th>Shape</th></tr></thead><tbody><tr><td>Link samples</td><td>Per-link, per-epoch scalar results</td></tr><tr><td>Intervals</td><td>Access and outage intervals derived from those samples</td></tr><tr><td>Coverage grid</td><td>A gridded coverage product</td></tr><tr><td>Coverage rings</td><td>A packed ring representation of the same coverage</td></tr></tbody></table></div>
101
+ <p>Receiver and channel grouping for interference aggregation happens inside the module, not in the consumer — a design decision, so that an interference computation is never split across the ABI boundary.</p>
102
+ <p>No <code>.fbs</code> file for this exists in the tree yet. Field names, offsets and sizes are unfixed.</p>
103
+ <h2 id="units-and-frames"><a class="anchor" href="#units-and-frames" aria-hidden="true">#</a>Units and frames</h2>
104
+ <p>Not fixed. The scalar physics behind the closed kernels works in decibel-watt power and decibel loss with linear-power summation for incoherent aggregation, and any published ABI will have to state per-field units explicitly the way the propagator ABI does. Do not infer them from this page.</p>
105
+ <h2 id="sentinels"><a class="anchor" href="#sentinels" aria-hidden="true">#</a>Sentinels</h2>
106
+ <p>Not specified.</p>
107
+ <h2 id="identity"><a class="anchor" href="#identity" aria-hidden="true">#</a>Identity</h2>
108
+ <p>Not specified. Links will need a stable identity across a bulk call so a consumer can associate a sample row with the link that produced it.</p>
109
+ <h2 id="threading"><a class="anchor" href="#threading" aria-hidden="true">#</a>Threading</h2>
110
+ <p><code>wasm32-wasip1-threads</code>, and the drafted design explicitly reuses the propagator family's shard-write discipline for its bulk outputs: the same base pointer is given to every thread, each thread writes a disjoint range, each writes only its own row, and a failed row is zeroed rather than left partially written. That discipline is the one part of this family that is already settled, because it is inherited rather than invented.</p>
111
+ <h2 id="error-codes"><a class="anchor" href="#error-codes" aria-hidden="true">#</a>Error codes</h2>
112
+ <p>Not specified.</p>
113
+ <h2 id="lifetime"><a class="anchor" href="#lifetime" aria-hidden="true">#</a>Lifetime</h2>
114
+ <p>Not specified. Expect the propagator family's contract: a real, idempotent teardown proven by a steady-state leak test.</p>
115
+ <h2 id="parity-envelope"><a class="anchor" href="#parity-envelope" aria-hidden="true">#</a>Parity envelope</h2>
116
+ <p>Cross-runtime parity claims for RF are currently blocked. The existing closed RF packages are not isomorphic, and their manifests declare browser and node targets while in practice being gated on WasmEdge — an open defect. An embedded WasmEdge parity lane is a prerequisite before any RF parity claim can be made at all.</p>
117
+ <h2 id="consumer-seam"><a class="anchor" href="#consumer-seam" aria-hidden="true">#</a>Consumer seam</h2>
118
+ <p>One generic RF port on the consumer side, taking the module as a pluggable parameter. Not implemented.</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. Publishing a skeleton against an unfixed wire layout would create exactly the drift this family is being designed to avoid.</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 are a vendor with an RF engine and you want to ship on the Space Data Network now:</p>
123
+ <ol>
124
+ <li>Build a records-in, records-out module. No harness required.</li>
125
+ <li>Follow the <a href="../byo-wasm-quickstart.html">BYO-wasm quickstart</a> for the toolchain pin and the multi-TU build.</li>
126
+ <li>Emit <code>$RFL</code>, <code>$ACI</code> and <code>$CVP</code>-class records. Use the Space Data Standards C++ headers for the record types.</li>
127
+ <li>Run <a href="../conformance.html">conformance</a> and the <a href="../tri-runtime-parity-gate.html">parity gate</a>, then <a href="../protect-and-sign.html">protect and sign</a>.</li>
128
+ </ol>
129
+ <p>That path is real today and does not wait on this family's ratification. Come back to the harness only if your module must write scene state.</p>
130
+ <section class="playground" id="playground-slot" data-family="rf" data-playground="pending" aria-labelledby="playground-title">
131
+ <h2 id="playground-title">Playground</h2>
132
+ <p>
133
+ An in-browser build-and-run playground for the <code>rf</code> harness
134
+ mounts here. It is being built under the graph task
135
+ <code>sdk-playground-emception</code>; this slot is its reserved mount
136
+ point and is intentionally empty until that lands.
137
+ </p>
138
+ </section>
139
+ <p class="doc-footer">
140
+ Source of truth for this page:
141
+ <code>docs/families/rf.md</code>. Regenerate with
142
+ <code>npm run build:docs</code>.
143
+ </p>
144
+ </main>
145
+ <nav class="rail" aria-label="On this page"><h2>On this page</h2><ul><li><a class="depth-2" href="#doctrine">Doctrine</a></li>
146
+ <li><a class="depth-2" href="#capability">Capability</a></li>
147
+ <li><a class="depth-2" href="#import-and-export-set">Import and export set</a></li>
148
+ <li><a class="depth-2" href="#wire-layout">Wire layout</a></li>
149
+ <li><a class="depth-2" href="#units-and-frames">Units and frames</a></li>
150
+ <li><a class="depth-2" href="#sentinels">Sentinels</a></li>
151
+ <li><a class="depth-2" href="#identity">Identity</a></li>
152
+ <li><a class="depth-2" href="#threading">Threading</a></li>
153
+ <li><a class="depth-2" href="#error-codes">Error codes</a></li>
154
+ <li><a class="depth-2" href="#lifetime">Lifetime</a></li>
155
+ <li><a class="depth-2" href="#parity-envelope">Parity envelope</a></li>
156
+ <li><a class="depth-2" href="#consumer-seam">Consumer seam</a></li>
157
+ <li><a class="depth-2" href="#guest-c-example">Guest C++ example</a></li>
158
+ <li><a class="depth-2" href="#what-to-do-today">What to do today</a></li></ul></nav>
159
+ </div>
160
+ <section id="stack" class="section" aria-labelledby="stack-title">
161
+ <div class="section-head">
162
+ <p class="eyebrow">SDN Stack</p>
163
+ <h2 id="stack-title">Connected sites</h2>
164
+ </div>
165
+ <div class="link-list">
166
+ <a href="https://spacedatastandards.org/">
167
+ <span>Standards</span>
168
+ <small>Canonical schemas, record contracts, and generated bindings.</small>
169
+ </a>
170
+ <a href="https://digitalarsenal.github.io/flatbuffers/">
171
+ <span>FlatBuffers</span>
172
+ <small>Binary encoding, schema tooling, and runtime documentation.</small>
173
+ </a>
174
+ <a href="https://digitalarsenal.github.io/flatsql/">
175
+ <span>FlatSQL</span>
176
+ <small>SQL-style queries over FlatBuffer-backed datasets and streams.</small>
177
+ </a>
178
+ <a href="https://spacedatanetwork.org/">
179
+ <span>SDN</span>
180
+ <small>Distributed publication, discovery, delivery, and marketplace infrastructure.</small>
181
+ </a>
182
+ <a href="https://digitalarsenal.github.io/space-data-module-sdk/" class="active">
183
+ <span>Module SDK</span>
184
+ <small>WASM module packaging, validation, and host compatibility tooling.</small>
185
+ </a>
186
+ </div>
187
+ </section>
188
+ <footer class="site-footer">
189
+ Space Data Module SDK — Apache-2.0. Every ABI page renders a Markdown
190
+ source in <code>docs/</code>; edit the Markdown, never the HTML.
191
+ </footer>
192
+ </body>
193
+ </html>
@@ -0,0 +1,136 @@
1
+ # RF
2
+
3
+ **Status: DESIGNED.** The RF ABI has been drafted against a real paying
4
+ consumer, and the boundary of what will and will not be a public contract has
5
+ been ruled. No `.fbs`, no generated header, no conformance kit and no reference
6
+ module exist yet. Nothing on this page is a stable ABI.
7
+
8
+ ## Doctrine
9
+
10
+ Read this section before anything else, because it decides whether you need this
11
+ family at all.
12
+
13
+ **Most third-party RF does not need a harness.** RF that takes records in and
14
+ emits records out — link budgets, access intervals, coverage products expressed
15
+ as `$RFL`, `$ACI` and `$CVP`-class records — is an ordinary invoke-envelope
16
+ module. It has no harness requirement, no ABI freeze to wait for, and it is the
17
+ entry point for a vendor bringing an existing RF engine. If your engine computes
18
+ propagation loss, link margin, interference or coverage and hands back numbers,
19
+ this is your path today, and it is available now: build a BYO-wasm module, emit
20
+ records, publish it.
21
+
22
+ **The RF harness family exists only for RF that writes scene state.** A module
23
+ that draws footprints, writes entity or render state, or otherwise participates
24
+ in the consumer's scene graph needs the harness, because that is where a
25
+ byte-exact shared-memory contract is required.
26
+
27
+ **The closed scalar `rf_*` kernel ABI is never the public contract.** A set of
28
+ closed, encrypted, individually licensed scalar RF kernels exists — free-space
29
+ path loss, link budget, antenna pattern, gaseous and rain and cloud attenuation,
30
+ diffraction, Doppler and Fresnel geometry, terrain solvers, empirical and
31
+ Longley-Rice models, bit-error-rate and modulation. Their scalar kernel-op ABI
32
+ is internal by permanent ruling, not by maturity. It will not be offered as a
33
+ third-party contract, and a third-party module must never be written against it.
34
+
35
+ ## Capability
36
+
37
+ A harness-class RF module computes link geometry and radio physics over many
38
+ links and many epochs, and writes its results into caller-provided memory. It
39
+ does not fetch data, does not decide tasking, and does not own the entities it
40
+ computes over.
41
+
42
+ ## Import and export set
43
+
44
+ **Not specified.** The design calls for one aligned-binary invocation covering
45
+ many links and epochs, following the propagator family's export-set template
46
+ (init, compute, destroy, plus optional typed ingest and introspection), with the
47
+ symbol names to be fixed when the header is generated. `orbpro_rf_abi.h` does
48
+ not exist.
49
+
50
+ ## Wire layout
51
+
52
+ **Drafted, not generated.** The drafted bulk link-matrix ABI is a single
53
+ `.fbs`-defined invocation that emits, in one call:
54
+
55
+ | Output | Shape |
56
+ | --- | --- |
57
+ | Link samples | Per-link, per-epoch scalar results |
58
+ | Intervals | Access and outage intervals derived from those samples |
59
+ | Coverage grid | A gridded coverage product |
60
+ | Coverage rings | A packed ring representation of the same coverage |
61
+
62
+ Receiver and channel grouping for interference aggregation happens inside the
63
+ module, not in the consumer — a design decision, so that an interference
64
+ computation is never split across the ABI boundary.
65
+
66
+ No `.fbs` file for this exists in the tree yet. Field names, offsets and sizes
67
+ are unfixed.
68
+
69
+ ## Units and frames
70
+
71
+ Not fixed. The scalar physics behind the closed kernels works in decibel-watt
72
+ power and decibel loss with linear-power summation for incoherent aggregation,
73
+ and any published ABI will have to state per-field units explicitly the way the
74
+ propagator ABI does. Do not infer them from this page.
75
+
76
+ ## Sentinels
77
+
78
+ Not specified.
79
+
80
+ ## Identity
81
+
82
+ Not specified. Links will need a stable identity across a bulk call so a
83
+ consumer can associate a sample row with the link that produced it.
84
+
85
+ ## Threading
86
+
87
+ `wasm32-wasip1-threads`, and the drafted design explicitly reuses the propagator
88
+ family's shard-write discipline for its bulk outputs: the same base pointer is
89
+ given to every thread, each thread writes a disjoint range, each writes only its
90
+ own row, and a failed row is zeroed rather than left partially written. That
91
+ discipline is the one part of this family that is already settled, because it is
92
+ inherited rather than invented.
93
+
94
+ ## Error codes
95
+
96
+ Not specified.
97
+
98
+ ## Lifetime
99
+
100
+ Not specified. Expect the propagator family's contract: a real, idempotent
101
+ teardown proven by a steady-state leak test.
102
+
103
+ ## Parity envelope
104
+
105
+ Cross-runtime parity claims for RF are currently blocked. The existing closed RF
106
+ packages are not isomorphic, and their manifests declare browser and node
107
+ targets while in practice being gated on WasmEdge — an open defect. An embedded
108
+ WasmEdge parity lane is a prerequisite before any RF parity claim can be made at
109
+ all.
110
+
111
+ ## Consumer seam
112
+
113
+ One generic RF port on the consumer side, taking the module as a pluggable
114
+ parameter. Not implemented.
115
+
116
+ ## Guest C++ example
117
+
118
+ None. Publishing a skeleton against an unfixed wire layout would create exactly
119
+ the drift this family is being designed to avoid.
120
+
121
+ ## What to do today
122
+
123
+ If you are a vendor with an RF engine and you want to ship on the Space Data
124
+ Network now:
125
+
126
+ 1. Build a records-in, records-out module. No harness required.
127
+ 2. Follow the [BYO-wasm quickstart](../byo-wasm-quickstart.html) for the
128
+ toolchain pin and the multi-TU build.
129
+ 3. Emit `$RFL`, `$ACI` and `$CVP`-class records. Use the Space Data Standards
130
+ C++ headers for the record types.
131
+ 4. Run [conformance](../conformance.html) and the
132
+ [parity gate](../tri-runtime-parity-gate.html), then
133
+ [protect and sign](../protect-and-sign.html).
134
+
135
+ That path is real today and does not wait on this family's ratification. Come
136
+ back to the harness only if your module must write scene state.