tigr-asgi-contract 0.3.2.dev1__tar.gz → 0.3.3.dev6__tar.gz

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 (34) hide show
  1. tigr_asgi_contract-0.3.3.dev6/PKG-INFO +558 -0
  2. tigr_asgi_contract-0.3.3.dev6/README.md +548 -0
  3. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/pyproject.toml +1 -1
  4. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/__init__.py +40 -0
  5. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/bindings.py +1 -0
  6. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/capabilities.py +1 -0
  7. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/channels.py +6 -0
  8. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/directions.py +9 -0
  9. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/events.py +4 -0
  10. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/exchanges.py +1 -0
  11. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/families.py +1 -0
  12. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/framing.py +11 -0
  13. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/models.py +16 -1
  14. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/protocols.py +1 -0
  15. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/registry.py +1208 -0
  16. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/schema_registry.py +272 -0
  17. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/subevents.py +15 -7
  18. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/validators.py +351 -0
  19. tigr_asgi_contract-0.3.3.dev6/src/tigr_asgi_contract/version.py +2 -0
  20. tigr_asgi_contract-0.3.2.dev1/PKG-INFO +0 -442
  21. tigr_asgi_contract-0.3.2.dev1/README.md +0 -432
  22. tigr_asgi_contract-0.3.2.dev1/src/tigr_asgi_contract/__init__.py +0 -25
  23. tigr_asgi_contract-0.3.2.dev1/src/tigr_asgi_contract/registry.py +0 -599
  24. tigr_asgi_contract-0.3.2.dev1/src/tigr_asgi_contract/validators.py +0 -48
  25. tigr_asgi_contract-0.3.2.dev1/src/tigr_asgi_contract/version.py +0 -2
  26. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/.gitignore +0 -0
  27. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/LICENSE +0 -0
  28. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/_enum_compat.py +0 -0
  29. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/compatibility.py +0 -0
  30. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/completion.py +0 -0
  31. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/frames.py +0 -0
  32. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/ids.py +0 -0
  33. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/scope.py +0 -0
  34. {tigr_asgi_contract-0.3.2.dev1 → tigr_asgi_contract-0.3.3.dev6}/src/tigr_asgi_contract/scope_types.py +0 -0
@@ -0,0 +1,558 @@
1
+ Metadata-Version: 2.4
2
+ Name: tigr-asgi-contract
3
+ Version: 0.3.3.dev6
4
+ Summary: Generated Python contract bindings for the Tigr ASGI contract
5
+ License: Apache-2.0
6
+ License-File: LICENSE
7
+ Requires-Python: >=3.10
8
+ Requires-Dist: pydantic>=2.8
9
+ Description-Content-Type: text/markdown
10
+
11
+ # tigr-asgi-contract
12
+
13
+ Generated Python contract package for the Tigr ASGI contract. It is generated from the canonical `contract/` directory and mirrors the legality and schema artifacts.
14
+
15
+ ## Contract Package Matrix
16
+
17
+ | Ecosystem | Package | Version | Path | Surface files | Notes |
18
+ | --- | --- | --- | --- | --- | --- |
19
+ | python | **`tigr-asgi-contract`** | `0.3.3-dev6` | `packages/contract-py` | 22 | Enums, models, validators |
20
+ | npm | `@tigrbljs/tigr-asgi-contract` | `0.3.3-dev6` | `packages/contract-npm` | 23 | TypeScript and TSX surfaces |
21
+ | rust | `tigr_asgi_contract_rs` | `0.3.3-dev6` | `packages/contract-rs` | 20 | Serde-friendly contract surfaces |
22
+
23
+ ## Generated Surface Matrix
24
+
25
+ | Module | Export surface |
26
+ | --- | --- |
27
+ | `_enum_compat` | `tigr_asgi_contract/_enum_compat.py` |
28
+ | `bindings` | `tigr_asgi_contract/bindings.py` |
29
+ | `capabilities` | `tigr_asgi_contract/capabilities.py` |
30
+ | `channels` | `tigr_asgi_contract/channels.py` |
31
+ | `compatibility` | `tigr_asgi_contract/compatibility.py` |
32
+ | `completion` | `tigr_asgi_contract/completion.py` |
33
+ | `directions` | `tigr_asgi_contract/directions.py` |
34
+ | `events` | `tigr_asgi_contract/events.py` |
35
+ | `exchanges` | `tigr_asgi_contract/exchanges.py` |
36
+ | `families` | `tigr_asgi_contract/families.py` |
37
+ | `frames` | `tigr_asgi_contract/frames.py` |
38
+ | `framing` | `tigr_asgi_contract/framing.py` |
39
+ | `ids` | `tigr_asgi_contract/ids.py` |
40
+ | `models` | `tigr_asgi_contract/models.py` |
41
+ | `protocols` | `tigr_asgi_contract/protocols.py` |
42
+ | `registry` | `tigr_asgi_contract/registry.py` |
43
+ | `schema_registry` | `tigr_asgi_contract/schema_registry.py` |
44
+ | `scope` | `tigr_asgi_contract/scope.py` |
45
+ | `scope_types` | `tigr_asgi_contract/scope_types.py` |
46
+ | `subevents` | `tigr_asgi_contract/subevents.py` |
47
+ | `validators` | `tigr_asgi_contract/validators.py` |
48
+ | `version` | `tigr_asgi_contract/version.py` |
49
+
50
+ ## Release Matrix
51
+
52
+ | Field | Value |
53
+ | --- | --- |
54
+ | Contract name | `tigr-asgi-contract` |
55
+ | Contract version | `0.3.3-dev6` |
56
+ | Artifact version | `0.3.3-dev6` |
57
+ | Serde version | `1` |
58
+ | Schema draft | `2020-12` |
59
+ | Bindings | 7 |
60
+ | Families | 6 |
61
+ | Subevents | 50 |
62
+ | Scope types | 4 |
63
+ | Event types | 30 |
64
+
65
+ ## Scope Type Matrix
66
+
67
+ | ASGI3 scope type | Scope ext fields | Scope event types | Source |
68
+ | --- | --- | --- | --- |
69
+ | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `scope.schema.json` |
70
+ | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `scope.schema.json` |
71
+ | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `scope.schema.json` |
72
+ | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `scope.schema.json` |
73
+
74
+ ## Capability Matrix
75
+
76
+ | Capability field | Family alignment | Meaning | Schema source |
77
+ | --- | --- | --- | --- |
78
+ | `request` | `request` | bounded unary invocation available | `transport.schema.json#/$defs/familyCapabilities` |
79
+ | `session` | `session` | long-lived association available | `transport.schema.json#/$defs/familyCapabilities` |
80
+ | `message` | `message` | discrete logical message transport available | `transport.schema.json#/$defs/familyCapabilities` |
81
+ | `stream_in` | `stream` | inbound stream chunks available | `transport.schema.json#/$defs/familyCapabilities` |
82
+ | `stream_out` | `stream` | outbound stream chunks available | `transport.schema.json#/$defs/familyCapabilities` |
83
+ | `datagram` | `datagram` | datagram transport available | `transport.schema.json#/$defs/familyCapabilities` |
84
+ | `lifespan` | `lifespan` | ASGI lifespan startup and shutdown events available | `transport.schema.json#/$defs/familyCapabilities` |
85
+
86
+ ## Compatibility Matrix
87
+
88
+ | Compatibility field | Value | Meaning | Source |
89
+ | --- | --- | --- | --- |
90
+ | `contract_name` | `tigr-asgi-contract` | Canonical contract identifier | `contract/compatibility.yaml` |
91
+ | `contract_version` | `0.1.2` | Published contract version | `contract/compatibility.yaml` |
92
+ | `serde_version` | `1` | Serialization surface version | `contract/compatibility.yaml` |
93
+ | `schema_draft` | `2020-12` | JSON Schema draft level | `contract/compatibility.yaml` |
94
+
95
+ ## Completion Matrix
96
+
97
+ | Completion level | Meaning | Default | Source |
98
+ | --- | --- | --- | --- |
99
+ | `accepted_by_runtime` | send accepted by runtime/output queue | no | `contract/completion.yaml` |
100
+ | `flushed_to_transport` | send flushed to transport boundary | yes | `contract/completion.yaml` |
101
+
102
+ ## Event Matrix
103
+
104
+ | Transport event | ASGI3 scope type | Bindings | Related subevents | Meaning |
105
+ | --- | --- | --- | --- | --- |
106
+ | `http.request` | `http` | `http.stream`, `jsonrpc`, `rest`, `sse` | `request.body_in`, `request.chunk_in`, `request.close`, `request.open`, `stream.chunk_in` | Inbound HTTP request unit |
107
+ | `http.disconnect` | `http` | `http.stream`, `jsonrpc`, `rest`, `sse` | `request.disconnect`, `stream.reset` | HTTP connection closed by peer or server |
108
+ | `http.response.start` | `http` | `http.stream`, `jsonrpc`, `rest`, `sse` | `response.open`, `stream.open` | HTTP response metadata start |
109
+ | `http.response.body` | `http` | `http.stream`, `jsonrpc`, `rest`, `sse` | `message.out`, `message.replay`, `message.snapshot`, `response.body_out`, `response.chunk_out`, `response.finalize`, `stream.chunk_out`, `stream.close`, `stream.finalize`, `stream.flush` | HTTP response body frame |
110
+ | `http.response.pathsend` | `http` | `http.stream`, `jsonrpc`, `rest`, `sse` | - | |
111
+ | `websocket.connect` | `websocket` | `websocket` | `session.open` | WebSocket connection open event |
112
+ | `websocket.receive` | `websocket` | `websocket` | `message.decode`, `message.decode_failed`, `message.handle`, `message.handle_failed`, `message.in` | Inbound WebSocket frame |
113
+ | `websocket.disconnect` | `websocket` | `websocket` | `session.disconnect` | WebSocket disconnect signal |
114
+ | `websocket.accept` | `websocket` | `websocket` | `session.accept`, `session.ready` | WebSocket accept handshake response |
115
+ | `websocket.send` | `websocket` | `websocket` | `message.out`, `message.replay`, `message.snapshot`, `session.heartbeat`, `session.sync` | Outbound WebSocket frame |
116
+ | `websocket.close` | `websocket` | `websocket` | `session.close`, `session.reject` | WebSocket close frame |
117
+ | `webtransport.connect` | `webtransport` | `webtransport` | `session.open` | WebTransport session connect event |
118
+ | `webtransport.accept` | `webtransport` | `webtransport` | `session.accept`, `session.ready` | WebTransport accept event |
119
+ | `webtransport.stream.receive` | `webtransport` | `webtransport` | `message.decode`, `message.decode_failed`, `message.handle`, `message.handle_failed`, `message.in`, `stream.chunk_in` | Inbound WebTransport stream frame |
120
+ | `webtransport.stream.send` | `webtransport` | `webtransport` | `message.out`, `message.replay`, `message.snapshot`, `session.heartbeat`, `session.sync`, `stream.chunk_out`, `stream.finalize`, `stream.flush`, `stream.open` | Outbound WebTransport stream frame |
121
+ | `webtransport.stream.close` | `webtransport` | `webtransport` | `stream.close` | Per-stream WebTransport close or FIN |
122
+ | `webtransport.stream.reset` | `webtransport` | `webtransport` | `stream.reset` | Per-stream WebTransport reset |
123
+ | `webtransport.stream.stop_sending` | `webtransport` | `webtransport` | `stream.stop_sending` | Per-stream WebTransport stop-sending signal |
124
+ | `webtransport.datagram.receive` | `webtransport` | `webtransport` | `datagram.handle`, `datagram.in`, `message.decode`, `message.decode_failed`, `message.handle`, `message.handle_failed`, `message.in` | Inbound WebTransport datagram |
125
+ | `webtransport.datagram.send` | `webtransport` | `webtransport` | `datagram.out` | Outbound WebTransport datagram |
126
+ | `webtransport.disconnect` | `webtransport` | `webtransport` | `session.disconnect` | WebTransport disconnect signal |
127
+ | `webtransport.close` | `webtransport` | `webtransport` | `session.close`, `session.reject` | WebTransport session close event |
128
+ | `lifespan.startup` | `lifespan` | - | `lifespan.startup` | ASGI lifespan startup receive event |
129
+ | `lifespan.startup.complete` | `lifespan` | - | `lifespan.startup_complete` | ASGI lifespan startup completion send event |
130
+ | `lifespan.startup.failed` | `lifespan` | - | `lifespan.startup_failed` | ASGI lifespan startup failure send event |
131
+ | `lifespan.shutdown` | `lifespan` | - | `lifespan.shutdown` | ASGI lifespan shutdown receive event |
132
+ | `lifespan.shutdown.complete` | `lifespan` | - | `lifespan.shutdown_complete` | ASGI lifespan shutdown completion send event |
133
+ | `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.shutdown_failed` | ASGI lifespan shutdown failure send event |
134
+ | `transport.emit.complete` | `http, websocket, webtransport` | `http.stream`, `jsonrpc`, `lifespan`, `rest`, `sse`, `websocket`, `webtransport` | `datagram.emit_complete`, `message.emit_complete`, `response.emit_complete`, `session.emit_complete`, `stream.emit_complete` | Completion emission event |
135
+ | `transport.emit.failed` | `http, websocket, webtransport` | - | `datagram.emit_failed`, `message.emit_failed` | Failed emission event |
136
+
137
+ ## Family Matrix
138
+
139
+ | Family | Subevent count | Required bindings | Optional bindings | Subevents |
140
+ | --- | --- | --- | --- | --- |
141
+ | `request` | 11 | `rest`, `jsonrpc`, `http.stream`, `sse` | - | `request.open`, `request.body_in`, `request.chunk_in`, `request.dispatch`, `request.close`, `request.disconnect`, `response.open`, `response.body_out`, `response.chunk_out`, `response.finalize`, `response.emit_complete` |
142
+ | `session` | 9 | `sse`, `websocket`, `webtransport` | - | `session.open`, `session.accept`, `session.reject`, `session.ready`, `session.heartbeat`, `session.sync`, `session.close`, `session.disconnect`, `session.emit_complete` |
143
+ | `message` | 10 | `sse`, `websocket` | - | `message.in`, `message.decode`, `message.decode_failed`, `message.handle`, `message.handle_failed`, `message.out`, `message.replay`, `message.snapshot`, `message.emit_complete`, `message.emit_failed` |
144
+ | `stream` | 9 | `http.stream`, `sse`, `webtransport` | `rest`, `jsonrpc` | `stream.open`, `stream.chunk_in`, `stream.chunk_out`, `stream.flush`, `stream.finalize`, `stream.reset`, `stream.stop_sending`, `stream.close`, `stream.emit_complete` |
145
+ | `datagram` | 5 | `webtransport` | - | `datagram.in`, `datagram.handle`, `datagram.out`, `datagram.emit_complete`, `datagram.emit_failed` |
146
+ | `lifespan` | 6 | `lifespan` | - | `lifespan.startup`, `lifespan.startup_complete`, `lifespan.startup_failed`, `lifespan.shutdown`, `lifespan.shutdown_complete`, `lifespan.shutdown_failed` |
147
+
148
+ ## Subevent Matrix
149
+
150
+ | Subevent | Family | Family legality | Required bindings | Optional bindings | Derived bindings | Related transport events |
151
+ | --- | --- | --- | --- | --- | --- | --- |
152
+ | `request.open` | `request` | `R` required | `rest`, `jsonrpc`, `http.stream`, `sse` | - | - | `http.request` |
153
+ | `request.body_in` | `request` | `R` required | `rest`, `jsonrpc` | `http.stream`, `sse` | - | `http.request` |
154
+ | `request.chunk_in` | `request` | `R` required | - | - | `http.stream` | `http.request` |
155
+ | `request.dispatch` | `request` | `R` required | - | - | `rest`, `jsonrpc`, `http.stream`, `sse` | - |
156
+ | `request.close` | `request` | `R` required | `rest`, `jsonrpc`, `http.stream`, `sse` | - | - | `http.request` |
157
+ | `request.disconnect` | `request` | `R` required | - | `rest`, `jsonrpc`, `http.stream`, `sse` | - | `http.disconnect` |
158
+ | `response.open` | `request` | `R` required | `rest`, `jsonrpc`, `http.stream` | `sse` | - | `http.response.start` |
159
+ | `response.body_out` | `request` | `R` required | `rest`, `jsonrpc` | `http.stream` | - | `http.response.body` |
160
+ | `response.chunk_out` | `request` | `R` required | - | - | `http.stream`, `sse` | `http.response.body` |
161
+ | `response.finalize` | `request` | `R` required | - | `rest`, `jsonrpc`, `http.stream`, `sse` | - | `http.response.body` |
162
+ | `response.emit_complete` | `request` | `R` required | `rest`, `jsonrpc`, `http.stream`, `sse` | - | - | `transport.emit.complete` |
163
+ | `session.open` | `session` | `R` required | `sse`, `websocket`, `webtransport` | - | - | `websocket.connect`, `webtransport.connect` |
164
+ | `session.accept` | `session` | `R` required | `sse`, `websocket`, `webtransport` | - | - | `websocket.accept`, `webtransport.accept` |
165
+ | `session.reject` | `session` | `R` required | - | `websocket`, `webtransport` | - | `websocket.close`, `webtransport.close` |
166
+ | `session.ready` | `session` | `R` required | `sse`, `websocket`, `webtransport` | - | - | `websocket.accept`, `webtransport.accept` |
167
+ | `session.heartbeat` | `session` | `R` required | - | `sse`, `websocket`, `webtransport` | - | `websocket.send`, `webtransport.stream.send` |
168
+ | `session.sync` | `session` | `R` required | - | `sse`, `websocket`, `webtransport` | - | `websocket.send`, `webtransport.stream.send` |
169
+ | `session.close` | `session` | `R` required | `sse`, `websocket`, `webtransport` | - | - | `websocket.close`, `webtransport.close` |
170
+ | `session.disconnect` | `session` | `R` required | - | `sse`, `websocket`, `webtransport` | - | `websocket.disconnect`, `webtransport.disconnect` |
171
+ | `session.emit_complete` | `session` | `R` required | - | `sse`, `websocket`, `webtransport` | - | `transport.emit.complete` |
172
+ | `message.in` | `message` | `R` required | `websocket` | - | - | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
173
+ | `message.decode` | `message` | `R` required | - | `websocket` | `jsonrpc` | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
174
+ | `message.decode_failed` | `message` | `R` required | - | `websocket` | `jsonrpc` | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
175
+ | `message.handle` | `message` | `R` required | `websocket` | - | - | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
176
+ | `message.handle_failed` | `message` | `R` required | - | `websocket` | - | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
177
+ | `message.out` | `message` | `R` required | `sse`, `websocket` | - | - | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
178
+ | `message.replay` | `message` | `R` required | - | `sse`, `websocket` | - | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
179
+ | `message.snapshot` | `message` | `R` required | - | `sse`, `websocket` | - | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
180
+ | `message.emit_complete` | `message` | `R` required | `sse`, `websocket` | - | - | `transport.emit.complete` |
181
+ | `message.emit_failed` | `message` | `R` required | - | `sse`, `websocket` | - | `transport.emit.failed` |
182
+ | `stream.open` | `stream` | `R` required | `http.stream`, `sse`, `webtransport` | `rest`, `jsonrpc` | - | `webtransport.stream.send`, `http.response.start` |
183
+ | `stream.chunk_in` | `stream` | `R` required | `http.stream`, `webtransport` | `rest`, `jsonrpc` | - | `webtransport.stream.receive`, `http.request` |
184
+ | `stream.chunk_out` | `stream` | `R` required | `http.stream`, `sse`, `webtransport` | `rest`, `jsonrpc` | - | `webtransport.stream.send`, `http.response.body` |
185
+ | `stream.flush` | `stream` | `R` required | - | `http.stream`, `sse`, `webtransport` | - | `webtransport.stream.send`, `http.response.body` |
186
+ | `stream.finalize` | `stream` | `R` required | `http.stream`, `webtransport` | `rest`, `jsonrpc`, `sse` | - | `webtransport.stream.send`, `http.response.body` |
187
+ | `stream.reset` | `stream` | `R` required | - | `http.stream`, `sse`, `webtransport` | - | `webtransport.stream.reset`, `http.disconnect` |
188
+ | `stream.stop_sending` | `stream` | `R` required | - | `webtransport` | - | `webtransport.stream.stop_sending` |
189
+ | `stream.close` | `stream` | `R` required | `http.stream`, `sse`, `webtransport` | `rest`, `jsonrpc` | - | `webtransport.stream.close`, `http.response.body` |
190
+ | `stream.emit_complete` | `stream` | `R` required | `http.stream`, `sse`, `webtransport` | `rest`, `jsonrpc` | - | `transport.emit.complete` |
191
+ | `datagram.in` | `datagram` | `R` required | `webtransport` | - | - | `webtransport.datagram.receive` |
192
+ | `datagram.handle` | `datagram` | `R` required | `webtransport` | - | - | `webtransport.datagram.receive` |
193
+ | `datagram.out` | `datagram` | `R` required | `webtransport` | - | - | `webtransport.datagram.send` |
194
+ | `datagram.emit_complete` | `datagram` | `R` required | `webtransport` | - | - | `transport.emit.complete` |
195
+ | `datagram.emit_failed` | `datagram` | `R` required | - | `webtransport` | - | `transport.emit.failed` |
196
+ | `lifespan.startup` | `lifespan` | `R` required | `lifespan` | - | - | `lifespan.startup` |
197
+ | `lifespan.startup_complete` | `lifespan` | `R` required | `lifespan` | - | - | `lifespan.startup.complete` |
198
+ | `lifespan.startup_failed` | `lifespan` | `R` required | - | `lifespan` | - | `lifespan.startup.failed` |
199
+ | `lifespan.shutdown` | `lifespan` | `R` required | `lifespan` | - | - | `lifespan.shutdown` |
200
+ | `lifespan.shutdown_complete` | `lifespan` | `R` required | `lifespan` | - | - | `lifespan.shutdown.complete` |
201
+ | `lifespan.shutdown_failed` | `lifespan` | `R` required | - | `lifespan` | - | `lifespan.shutdown.failed` |
202
+
203
+ ## Binding Subevent Matrix
204
+
205
+ Every row is a concrete `binding x subevent` record sourced from the legality registries.
206
+
207
+ | Binding | Protocols | Exchange | ASGI3 scope type | Scope ext fields | Scope event types | Required families | Optional families | Subevent | Family | Family legality | Binding legality | Related transport events |
208
+ | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
209
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.open` | `request` | `R` required | `R` required | `http.request` |
210
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.body_in` | `request` | `R` required | `R` required | `http.request` |
211
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
212
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.dispatch` | `request` | `R` required | `D` derived | - |
213
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.close` | `request` | `R` required | `R` required | `http.request` |
214
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.disconnect` | `request` | `R` required | `O` optional | `http.disconnect` |
215
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.open` | `request` | `R` required | `R` required | `http.response.start` |
216
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.body_out` | `request` | `R` required | `R` required | `http.response.body` |
217
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.chunk_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
218
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.finalize` | `request` | `R` required | `O` optional | `http.response.body` |
219
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.emit_complete` | `request` | `R` required | `R` required | `transport.emit.complete` |
220
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.open` | `session` | `R` required | `F` forbidden | `websocket.connect`, `webtransport.connect` |
221
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.accept` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
222
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.reject` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
223
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.ready` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
224
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.heartbeat` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
225
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.sync` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
226
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.close` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
227
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.disconnect` | `session` | `R` required | `F` forbidden | `websocket.disconnect`, `webtransport.disconnect` |
228
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.emit_complete` | `session` | `R` required | `F` forbidden | `transport.emit.complete` |
229
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
230
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.decode` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
231
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.decode_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
232
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
233
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
234
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.out` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
235
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.replay` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
236
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.snapshot` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
237
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.emit_complete` | `message` | `R` required | `F` forbidden | `transport.emit.complete` |
238
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.emit_failed` | `message` | `R` required | `F` forbidden | `transport.emit.failed` |
239
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.open` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.start` |
240
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.chunk_in` | `stream` | `R` required | `O` optional | `webtransport.stream.receive`, `http.request` |
241
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.chunk_out` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
242
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.flush` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
243
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.finalize` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
244
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.reset` | `stream` | `R` required | `F` forbidden | `webtransport.stream.reset`, `http.disconnect` |
245
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
246
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.close` | `stream` | `R` required | `O` optional | `webtransport.stream.close`, `http.response.body` |
247
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.emit_complete` | `stream` | `R` required | `O` optional | `transport.emit.complete` |
248
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
249
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
250
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
251
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
252
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
253
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
254
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
255
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
256
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
257
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
258
+ | `rest` | `http.rest`, `https.rest` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
259
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.open` | `request` | `R` required | `R` required | `http.request` |
260
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.body_in` | `request` | `R` required | `R` required | `http.request` |
261
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
262
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.dispatch` | `request` | `R` required | `D` derived | - |
263
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.close` | `request` | `R` required | `R` required | `http.request` |
264
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `request.disconnect` | `request` | `R` required | `O` optional | `http.disconnect` |
265
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.open` | `request` | `R` required | `R` required | `http.response.start` |
266
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.body_out` | `request` | `R` required | `R` required | `http.response.body` |
267
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.chunk_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
268
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.finalize` | `request` | `R` required | `O` optional | `http.response.body` |
269
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `response.emit_complete` | `request` | `R` required | `R` required | `transport.emit.complete` |
270
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.open` | `session` | `R` required | `F` forbidden | `websocket.connect`, `webtransport.connect` |
271
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.accept` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
272
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.reject` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
273
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.ready` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
274
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.heartbeat` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
275
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.sync` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
276
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.close` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
277
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.disconnect` | `session` | `R` required | `F` forbidden | `websocket.disconnect`, `webtransport.disconnect` |
278
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `session.emit_complete` | `session` | `R` required | `F` forbidden | `transport.emit.complete` |
279
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
280
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.decode` | `message` | `R` required | `D` derived | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
281
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.decode_failed` | `message` | `R` required | `D` derived | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
282
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
283
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
284
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.out` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
285
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.replay` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
286
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.snapshot` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
287
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.emit_complete` | `message` | `R` required | `F` forbidden | `transport.emit.complete` |
288
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `message.emit_failed` | `message` | `R` required | `F` forbidden | `transport.emit.failed` |
289
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.open` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.start` |
290
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.chunk_in` | `stream` | `R` required | `O` optional | `webtransport.stream.receive`, `http.request` |
291
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.chunk_out` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
292
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.flush` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
293
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.finalize` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
294
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.reset` | `stream` | `R` required | `F` forbidden | `webtransport.stream.reset`, `http.disconnect` |
295
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
296
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.close` | `stream` | `R` required | `O` optional | `webtransport.stream.close`, `http.response.body` |
297
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `stream.emit_complete` | `stream` | `R` required | `O` optional | `transport.emit.complete` |
298
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
299
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
300
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
301
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
302
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
303
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
304
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
305
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
306
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
307
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
308
+ | `jsonrpc` | `http.jsonrpc`, `https.jsonrpc` | `unary` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request` | `stream` | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
309
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.open` | `request` | `R` required | `R` required | `http.request` |
310
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.body_in` | `request` | `R` required | `O` optional | `http.request` |
311
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.chunk_in` | `request` | `R` required | `D` derived | `http.request` |
312
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.dispatch` | `request` | `R` required | `D` derived | - |
313
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.close` | `request` | `R` required | `R` required | `http.request` |
314
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `request.disconnect` | `request` | `R` required | `O` optional | `http.disconnect` |
315
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `response.open` | `request` | `R` required | `R` required | `http.response.start` |
316
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `response.body_out` | `request` | `R` required | `O` optional | `http.response.body` |
317
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `response.chunk_out` | `request` | `R` required | `D` derived | `http.response.body` |
318
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `response.finalize` | `request` | `R` required | `O` optional | `http.response.body` |
319
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `response.emit_complete` | `request` | `R` required | `R` required | `transport.emit.complete` |
320
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.open` | `session` | `R` required | `F` forbidden | `websocket.connect`, `webtransport.connect` |
321
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.accept` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
322
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.reject` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
323
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.ready` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
324
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.heartbeat` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
325
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.sync` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
326
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.close` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
327
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.disconnect` | `session` | `R` required | `F` forbidden | `websocket.disconnect`, `webtransport.disconnect` |
328
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `session.emit_complete` | `session` | `R` required | `F` forbidden | `transport.emit.complete` |
329
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
330
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.decode` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
331
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.decode_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
332
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
333
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
334
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.out` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
335
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.replay` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
336
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.snapshot` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
337
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.emit_complete` | `message` | `R` required | `F` forbidden | `transport.emit.complete` |
338
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `message.emit_failed` | `message` | `R` required | `F` forbidden | `transport.emit.failed` |
339
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.open` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.start` |
340
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.chunk_in` | `stream` | `R` required | `R` required | `webtransport.stream.receive`, `http.request` |
341
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.chunk_out` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.body` |
342
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.flush` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
343
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.finalize` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.body` |
344
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.reset` | `stream` | `R` required | `O` optional | `webtransport.stream.reset`, `http.disconnect` |
345
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
346
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.close` | `stream` | `R` required | `R` required | `webtransport.stream.close`, `http.response.body` |
347
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `stream.emit_complete` | `stream` | `R` required | `R` required | `transport.emit.complete` |
348
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
349
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
350
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
351
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
352
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
353
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
354
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
355
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
356
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
357
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
358
+ | `http.stream` | `http.stream`, `https.stream` | `server_stream` | `http` | `transport`, `family_capabilities` | `http.request`, `http.disconnect`, `http.response.start`, `http.response.body`, `transport.emit.complete`, `transport.emit.failed` | `request`, `stream` | - | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
359
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.open` | `request` | `R` required | `R` required | `http.request` |
360
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.body_in` | `request` | `R` required | `O` optional | `http.request` |
361
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
362
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.dispatch` | `request` | `R` required | `D` derived | - |
363
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.close` | `request` | `R` required | `R` required | `http.request` |
364
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `request.disconnect` | `request` | `R` required | `O` optional | `http.disconnect` |
365
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `response.open` | `request` | `R` required | `O` optional | `http.response.start` |
366
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `response.body_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
367
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `response.chunk_out` | `request` | `R` required | `D` derived | `http.response.body` |
368
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `response.finalize` | `request` | `R` required | `O` optional | `http.response.body` |
369
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `response.emit_complete` | `request` | `R` required | `R` required | `transport.emit.complete` |
370
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.open` | `session` | `R` required | `R` required | `websocket.connect`, `webtransport.connect` |
371
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.accept` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
372
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.reject` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
373
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.ready` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
374
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.heartbeat` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
375
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.sync` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
376
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.close` | `session` | `R` required | `R` required | `websocket.close`, `webtransport.close` |
377
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.disconnect` | `session` | `R` required | `O` optional | `websocket.disconnect`, `webtransport.disconnect` |
378
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `session.emit_complete` | `session` | `R` required | `O` optional | `transport.emit.complete` |
379
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
380
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.decode` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
381
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.decode_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
382
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
383
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
384
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.out` | `message` | `R` required | `R` required | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
385
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.replay` | `message` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
386
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.snapshot` | `message` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
387
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.emit_complete` | `message` | `R` required | `R` required | `transport.emit.complete` |
388
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `message.emit_failed` | `message` | `R` required | `O` optional | `transport.emit.failed` |
389
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.open` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.start` |
390
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.chunk_in` | `stream` | `R` required | `F` forbidden | `webtransport.stream.receive`, `http.request` |
391
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.chunk_out` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.body` |
392
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.flush` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
393
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.finalize` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
394
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.reset` | `stream` | `R` required | `O` optional | `webtransport.stream.reset`, `http.disconnect` |
395
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
396
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.close` | `stream` | `R` required | `R` required | `webtransport.stream.close`, `http.response.body` |
397
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `stream.emit_complete` | `stream` | `R` required | `R` required | `transport.emit.complete` |
398
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
399
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
400
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
401
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
402
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
403
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
404
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
405
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
406
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
407
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
408
+ | `sse` | `http.sse`, `https.sse` | `server_stream` | `http` | `transport`, `family_capabilities`, `sse` | `http.disconnect`, `http.request`, `http.response.body`, `http.response.start`, `transport.emit.complete`, `transport.emit.failed` | `request`, `session`, `message`, `stream` | - | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
409
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.open` | `request` | `R` required | `F` forbidden | `http.request` |
410
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.body_in` | `request` | `R` required | `F` forbidden | `http.request` |
411
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
412
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.dispatch` | `request` | `R` required | `F` forbidden | - |
413
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.close` | `request` | `R` required | `F` forbidden | `http.request` |
414
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `request.disconnect` | `request` | `R` required | `F` forbidden | `http.disconnect` |
415
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `response.open` | `request` | `R` required | `F` forbidden | `http.response.start` |
416
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `response.body_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
417
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `response.chunk_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
418
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `response.finalize` | `request` | `R` required | `F` forbidden | `http.response.body` |
419
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `response.emit_complete` | `request` | `R` required | `F` forbidden | `transport.emit.complete` |
420
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.open` | `session` | `R` required | `R` required | `websocket.connect`, `webtransport.connect` |
421
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.accept` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
422
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.reject` | `session` | `R` required | `O` optional | `websocket.close`, `webtransport.close` |
423
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.ready` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
424
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.heartbeat` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
425
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.sync` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
426
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.close` | `session` | `R` required | `R` required | `websocket.close`, `webtransport.close` |
427
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.disconnect` | `session` | `R` required | `O` optional | `websocket.disconnect`, `webtransport.disconnect` |
428
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `session.emit_complete` | `session` | `R` required | `O` optional | `transport.emit.complete` |
429
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.in` | `message` | `R` required | `R` required | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
430
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.decode` | `message` | `R` required | `O` optional | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
431
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.decode_failed` | `message` | `R` required | `O` optional | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
432
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.handle` | `message` | `R` required | `R` required | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
433
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.handle_failed` | `message` | `R` required | `O` optional | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
434
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.out` | `message` | `R` required | `R` required | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
435
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.replay` | `message` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
436
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.snapshot` | `message` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
437
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.emit_complete` | `message` | `R` required | `R` required | `transport.emit.complete` |
438
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `message.emit_failed` | `message` | `R` required | `O` optional | `transport.emit.failed` |
439
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.open` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.start` |
440
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.chunk_in` | `stream` | `R` required | `F` forbidden | `webtransport.stream.receive`, `http.request` |
441
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.chunk_out` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
442
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.flush` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
443
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.finalize` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
444
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.reset` | `stream` | `R` required | `F` forbidden | `webtransport.stream.reset`, `http.disconnect` |
445
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
446
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.close` | `stream` | `R` required | `F` forbidden | `webtransport.stream.close`, `http.response.body` |
447
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `stream.emit_complete` | `stream` | `R` required | `F` forbidden | `transport.emit.complete` |
448
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
449
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
450
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
451
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
452
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
453
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
454
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
455
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
456
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
457
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
458
+ | `websocket` | `ws`, `wss` | `duplex` | `websocket` | `transport`, `family_capabilities`, `websocket` | `websocket.connect`, `websocket.receive`, `websocket.disconnect`, `websocket.accept`, `websocket.send`, `websocket.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `message` | - | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
459
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.open` | `request` | `R` required | `F` forbidden | `http.request` |
460
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.body_in` | `request` | `R` required | `F` forbidden | `http.request` |
461
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
462
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.dispatch` | `request` | `R` required | `F` forbidden | - |
463
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.close` | `request` | `R` required | `F` forbidden | `http.request` |
464
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `request.disconnect` | `request` | `R` required | `F` forbidden | `http.disconnect` |
465
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `response.open` | `request` | `R` required | `F` forbidden | `http.response.start` |
466
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `response.body_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
467
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `response.chunk_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
468
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `response.finalize` | `request` | `R` required | `F` forbidden | `http.response.body` |
469
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `response.emit_complete` | `request` | `R` required | `F` forbidden | `transport.emit.complete` |
470
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.open` | `session` | `R` required | `R` required | `websocket.connect`, `webtransport.connect` |
471
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.accept` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
472
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.reject` | `session` | `R` required | `O` optional | `websocket.close`, `webtransport.close` |
473
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.ready` | `session` | `R` required | `R` required | `websocket.accept`, `webtransport.accept` |
474
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.heartbeat` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
475
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.sync` | `session` | `R` required | `O` optional | `websocket.send`, `webtransport.stream.send` |
476
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.close` | `session` | `R` required | `R` required | `websocket.close`, `webtransport.close` |
477
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.disconnect` | `session` | `R` required | `O` optional | `websocket.disconnect`, `webtransport.disconnect` |
478
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `session.emit_complete` | `session` | `R` required | `O` optional | `transport.emit.complete` |
479
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
480
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.decode` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
481
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.decode_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
482
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
483
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
484
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.out` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
485
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.replay` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
486
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.snapshot` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
487
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.emit_complete` | `message` | `R` required | `F` forbidden | `transport.emit.complete` |
488
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `message.emit_failed` | `message` | `R` required | `F` forbidden | `transport.emit.failed` |
489
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.open` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.start` |
490
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.chunk_in` | `stream` | `R` required | `R` required | `webtransport.stream.receive`, `http.request` |
491
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.chunk_out` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.body` |
492
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.flush` | `stream` | `R` required | `O` optional | `webtransport.stream.send`, `http.response.body` |
493
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.finalize` | `stream` | `R` required | `R` required | `webtransport.stream.send`, `http.response.body` |
494
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.reset` | `stream` | `R` required | `O` optional | `webtransport.stream.reset`, `http.disconnect` |
495
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.stop_sending` | `stream` | `R` required | `O` optional | `webtransport.stream.stop_sending` |
496
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.close` | `stream` | `R` required | `R` required | `webtransport.stream.close`, `http.response.body` |
497
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `stream.emit_complete` | `stream` | `R` required | `R` required | `transport.emit.complete` |
498
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `datagram.in` | `datagram` | `R` required | `R` required | `webtransport.datagram.receive` |
499
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `datagram.handle` | `datagram` | `R` required | `R` required | `webtransport.datagram.receive` |
500
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `datagram.out` | `datagram` | `R` required | `R` required | `webtransport.datagram.send` |
501
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `datagram.emit_complete` | `datagram` | `R` required | `R` required | `transport.emit.complete` |
502
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `datagram.emit_failed` | `datagram` | `R` required | `O` optional | `transport.emit.failed` |
503
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.startup` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup` |
504
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.startup_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.complete` |
505
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.startup_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.startup.failed` |
506
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.shutdown` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown` |
507
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.shutdown_complete` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.complete` |
508
+ | `webtransport` | `webtransport` | `duplex` | `webtransport` | `transport`, `family_capabilities`, `webtransport` | `webtransport.connect`, `webtransport.accept`, `webtransport.stream.receive`, `webtransport.stream.send`, `webtransport.stream.close`, `webtransport.stream.reset`, `webtransport.stream.stop_sending`, `webtransport.datagram.receive`, `webtransport.datagram.send`, `webtransport.disconnect`, `webtransport.close`, `transport.emit.complete`, `transport.emit.failed` | `session`, `stream`, `datagram` | - | `lifespan.shutdown_failed` | `lifespan` | `R` required | `F` forbidden | `lifespan.shutdown.failed` |
509
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.open` | `request` | `R` required | `F` forbidden | `http.request` |
510
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.body_in` | `request` | `R` required | `F` forbidden | `http.request` |
511
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.chunk_in` | `request` | `R` required | `F` forbidden | `http.request` |
512
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.dispatch` | `request` | `R` required | `F` forbidden | - |
513
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.close` | `request` | `R` required | `F` forbidden | `http.request` |
514
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `request.disconnect` | `request` | `R` required | `F` forbidden | `http.disconnect` |
515
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `response.open` | `request` | `R` required | `F` forbidden | `http.response.start` |
516
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `response.body_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
517
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `response.chunk_out` | `request` | `R` required | `F` forbidden | `http.response.body` |
518
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `response.finalize` | `request` | `R` required | `F` forbidden | `http.response.body` |
519
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `response.emit_complete` | `request` | `R` required | `F` forbidden | `transport.emit.complete` |
520
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.open` | `session` | `R` required | `F` forbidden | `websocket.connect`, `webtransport.connect` |
521
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.accept` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
522
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.reject` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
523
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.ready` | `session` | `R` required | `F` forbidden | `websocket.accept`, `webtransport.accept` |
524
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.heartbeat` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
525
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.sync` | `session` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send` |
526
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.close` | `session` | `R` required | `F` forbidden | `websocket.close`, `webtransport.close` |
527
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.disconnect` | `session` | `R` required | `F` forbidden | `websocket.disconnect`, `webtransport.disconnect` |
528
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `session.emit_complete` | `session` | `R` required | `F` forbidden | `transport.emit.complete` |
529
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.in` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
530
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.decode` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
531
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.decode_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
532
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.handle` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
533
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.handle_failed` | `message` | `R` required | `F` forbidden | `websocket.receive`, `webtransport.stream.receive`, `webtransport.datagram.receive` |
534
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.out` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
535
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.replay` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
536
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.snapshot` | `message` | `R` required | `F` forbidden | `websocket.send`, `webtransport.stream.send`, `http.response.body` |
537
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.emit_complete` | `message` | `R` required | `F` forbidden | `transport.emit.complete` |
538
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `message.emit_failed` | `message` | `R` required | `F` forbidden | `transport.emit.failed` |
539
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.open` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.start` |
540
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.chunk_in` | `stream` | `R` required | `F` forbidden | `webtransport.stream.receive`, `http.request` |
541
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.chunk_out` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
542
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.flush` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
543
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.finalize` | `stream` | `R` required | `F` forbidden | `webtransport.stream.send`, `http.response.body` |
544
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.reset` | `stream` | `R` required | `F` forbidden | `webtransport.stream.reset`, `http.disconnect` |
545
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.stop_sending` | `stream` | `R` required | `F` forbidden | `webtransport.stream.stop_sending` |
546
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.close` | `stream` | `R` required | `F` forbidden | `webtransport.stream.close`, `http.response.body` |
547
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `stream.emit_complete` | `stream` | `R` required | `F` forbidden | `transport.emit.complete` |
548
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `datagram.in` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
549
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `datagram.handle` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.receive` |
550
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `datagram.out` | `datagram` | `R` required | `F` forbidden | `webtransport.datagram.send` |
551
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `datagram.emit_complete` | `datagram` | `R` required | `F` forbidden | `transport.emit.complete` |
552
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `datagram.emit_failed` | `datagram` | `R` required | `F` forbidden | `transport.emit.failed` |
553
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.startup` | `lifespan` | `R` required | `R` required | `lifespan.startup` |
554
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.startup_complete` | `lifespan` | `R` required | `R` required | `lifespan.startup.complete` |
555
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.startup_failed` | `lifespan` | `R` required | `O` optional | `lifespan.startup.failed` |
556
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.shutdown` | `lifespan` | `R` required | `R` required | `lifespan.shutdown` |
557
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.shutdown_complete` | `lifespan` | `R` required | `R` required | `lifespan.shutdown.complete` |
558
+ | `lifespan` | `lifespan` | `unary` | `lifespan` | `transport`, `family_capabilities` | `lifespan.startup`, `lifespan.startup.complete`, `lifespan.startup.failed`, `lifespan.shutdown`, `lifespan.shutdown.complete`, `lifespan.shutdown.failed` | `lifespan` | - | `lifespan.shutdown_failed` | `lifespan` | `R` required | `O` optional | `lifespan.shutdown.failed` |