sc_container_contents_v1.snapshot
Copy at most 64 stored-item records for a session-local container into caller-owned storage; count is capacity in and copied count out, total_seen reports omitted items and generation identifies the provider snapshot. Quantity is positive; volume is meaningful only with VOLUME_KNOWN. No engine pointers or mutation cross the ABI.
Signature
Section titled “Signature”sco_result (*)(sco_plugin *, uint64_t, sc_container_snapshot *)Service and availability
Section titled “Service and availability”| Property | Value |
|---|---|
| Symbol | sc_container_contents_v1.snapshot |
| Record ID | sc-container-contents-v1-snapshot |
| Service | game.inventory.contents |
| Table | sc_container_contents_v1 |
| Version macro | SC_CONTAINER_CONTENTS_VERSION_1_0 |
| Packed table version | 65536 |
| Since / availability | size >= 16; 1.0 |
| Complete member extent (x64 bytes) | 16 |
| Table size (x64 bytes) | 16 |
Parameters and buffers
Section titled “Parameters and buffers”sco_result (*snapshot)(sco_plugin* self, uint64_t container_id, sc_container_snapshot* out);
Copy at most 64 stored-item records for a session-local container into caller-owned storage; count is capacity in and copied count out, total_seen reports omitted items and generation identifies the provider snapshot. Quantity is positive; volume is meaningful only with VOLUME_KNOWN. No engine pointers or mutation cross the ABI.
Results and failures
Section titled “Results and failures”OK snapshot; BAD_ARG invalid handle, id, output size or capacity; WRONG_THREAD off game thread; NOT_FOUND unknown container; UNAVAILABLE unbound or stopping; FAILED malformed provider or exception. Known output prefix is cleared on failure, future caller tail untouched.
Absent capability
Section titled “Absent capability”game.inventory.contents.read defaults OFF; no native engine adapter. Synthetic evidence only, not run in game.
Ownership
Section titled “Ownership”Caller owns output; provider receives service-owned scratch storage only. IDs are session-local, no pointers retained.
Thread affinity
Section titled “Thread affinity”Game thread only.
Callback context
Section titled “Callback context”No plugin callback.
Reentrancy
Section titled “Reentrancy”Recursive provider reads fail with FAILED.
Cleanup and cancellation
Section titled “Cleanup and cancellation”Service stop withdraws table and drops host-owned backend references. Read-only, no engine state to restore.
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/sc_container_contents.h(*snapshot) |
| cpp | typed-wrapper | include/scosdk/game/container_contents.hpptable_->snapshot(owner_, container, &out) |
| csharp | unsupported | docs/game/container-contents.mdNo C# |
| lua | unsupported | docs/game/container-contents.mdNo C# |
Examples
Section titled “Examples”None identified in the catalogue; this is not proof none can exist.
Find by task
Section titled “Find by task”read container contents; list stored items in a container
This is a search phrase for the existing contract, not an additional API alias.ABI pins prove layout, not semantic behavior or a live game session.