System, Display, Graphics, Sprite, Sound, File, JSON, Lua, Scoreboards,
Network, Rect, SystemEvent, and AccessReply now live at module scope
instead of being nested in the Playdate enum; consumers write
System.log(...) instead of Playdate.System.log(...), and can qualify with
the module name (PlayDate.System) on collision. The Playdate enum remains
only as the raw C API bootstrap (initialize(with:), api, apiPointer), and
Playdate.Error is renamed PlaydateError so no top-level type shadows
Swift.Error.
Breaking change for any existing consumers.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Three jobs in GitHub Actions:
- Build & test on macOS against SDK headers fetched from Panic (cached),
with the pkg-config module generated into PKG_CONFIG_PATH.
- A consumer smoke test (Scripts/consumer-test.sh) generating a scratch
package that depends on play-date, guarding setting propagation.
- An Embedded Swift cross-compile for armv7em-none-none-eabi
(Scripts/build-embedded.sh) on a swift.org snapshot toolchain — the
check that enforces the Embedded Swift subset promise. Verified locally:
the full module compiles for the device triple with no violations.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>