--- id: PLN-0085 ticket: render-frame-packet-boundary title: PBS Stdlib and Syscall Declarations status: open created: 2026-05-25 ref_decisions: [DEC-0030] tags: [gfx, renderer, runtime, frame-composer, architecture, ui, pipeline] --- ## Briefing Source decision: `DEC-0030`. Update PBS Game and Shell stdlibs so high-level APIs map to app-mode-specific ABI domains: Game uses `composer.*` and `gfx2d.*`; Shell uses `gfxui.*`. ## Target PBS authors can keep ergonomic high-level APIs where appropriate, but generated or declared syscalls use the correct DEC-0030 ABI domain for the active app mode. ## Scope - Update Game stdlib declarations for `composer.*` and `gfx2d.*`. - Update Shell stdlib declarations for `gfxui.*`. - Remove old primitive `gfx.*` ABI declarations. - Keep author-facing wrappers clear about mode-specific behavior. - Update examples/tests that compile PBS code. ## Out of Scope - Runtime implementation of the syscall handlers. - New visual APIs beyond the domain split. - Backward compatibility for old primitive `gfx.*` ABI declarations. - Widget/layout redesign. ## Execution Sequence 1. Inventory PBS stdlib files and syscall declaration generation. 2. Map Game scene/camera/sprites/HUD APIs to `composer.*`. 3. Map Game primitive APIs to `gfx2d.*`. 4. Map Shell primitive APIs to `gfxui.*`. 5. Remove or fail old primitive `gfx.*` ABI declarations. 6. Update PBS compile tests, examples, and syscall metadata expectations. ## Acceptance Criteria - PBS Game code emits only Game-allowed render ABI domains. - PBS Shell code emits only Shell-allowed render ABI domains. - Old primitive `gfx.*` ABI declarations are gone or explicitly rejected. - Existing examples are updated to the new declarations. ## Tests / Validation - Run PBS stdlib and compiler tests. - Add Game and Shell declaration tests for emitted syscall names. - Add negative tests for wrong-domain declarations. ## Risks - User-facing API names may remain similar while ABI names change; tests must assert emitted syscall domains, not just wrapper names. - Examples can mask stale declarations if they do not compile in both Game and Shell contexts. ## Affected Artifacts - PBS stdlib files - Syscall declaration generation - PBS tests and examples