sco_widgets_v1.capabilities
caps[0] is the array length on entry (at least 2) and the number of elements written on success; the host fills the SCO_WIDGETS_CAP_* indices it knows up to that length: feature bits, then the running limits for panels, nodes/panel, live nodes, items, columns, text bytes and events per pass. 1.1 defines 9 elements. Failure writes nothing.
Signature
Section titled “Signature”sco_result (*)(sco_plugin *, uint32_t *)Service and availability
Section titled “Service and availability”| Property | Value |
|---|---|
| Symbol | sco_widgets_v1.capabilities |
| Record ID | sco-widgets-v1-capabilities |
| Service | sco.widgets |
| Table | sco_widgets_v1 |
| Version macro | SCO_WIDGETS_VERSION_1_1 |
| Packed table version | 65537 |
| Since / availability | size >= 48; 1.1 |
| Complete member extent (x64 bytes) | 48 |
| Table size (x64 bytes) | 48 |
Parameters and buffers
Section titled “Parameters and buffers”sco_result (*capabilities)(sco_plugin* self, uint32_t* caps);
caps[0] is the array length on entry (at least 2) and the number of elements written on success; the host fills the SCO_WIDGETS_CAP_* indices it knows up to that length: feature bits, then the running limits for panels, nodes/panel, live nodes, items, columns, text bytes and events per pass. 1.1 defines 9 elements. Failure writes nothing.
Results and failures
Section titled “Results and failures”OK; WRONG_THREAD off game thread; UNAVAILABLE stopped service/host; BAD_ARG invalid/released owner, NULL caps or caps[0] below 2.
Absent capability
Section titled “Absent capability”Check the table size covers the member and the pointer is non-NULL: a 1.0 table (24 bytes) has no 1.1 members. query_service answers UNAVAILABLE for 1.1 against a 1.0 host.
Ownership
Section titled “Ownership”Caller-owned array written in place. No allocation transfer.
Thread affinity
Section titled “Thread affinity”Game thread only; WRONG_THREAD elsewhere. No callbacks.
Callback context
Section titled “Callback context”No plugin callback.
Reentrancy
Section titled “Reentrancy”Callable from an event callback; reads constants under the registry lock, never held during plugin code.
Cleanup and cancellation
Section titled “Cleanup and cancellation”Synchronous query; nothing to release. No cancellation entrypoint.
Language mappings
Section titled “Language mappings”Status labels are copied verbatim from the catalogue: direct is native access; typed-wrapper is wrapper-backed; restricted is a subset/adaptation; unsupported means no supported route is established. No status implies universal safety.
| Language | Catalogue status | Source evidence / wrapper tokens |
|---|---|---|
| c | direct | include/sco_widgets.h(*capabilities) |
| cpp | direct | include/sco_widgets.h(*capabilities) |
| csharp | unsupported | docs/contracts.mdC# and Lua sco.widgets 1.1 routes are unsupported. |
| lua | unsupported | docs/contracts.mdC# and Lua sco.widgets 1.1 routes are unsupported. |
Examples
Section titled “Examples”None identified in the catalogue; this is not proof none can exist.
ABI pins prove layout, not semantic behavior or a live game session.