Changelog
Notable changes to the Board Web SDK (@board.fun/web-sdk). The format follows Keep a Changelog, and the project adheres to Semantic Versioning.
Note: The Web SDK is at v1.0.0, first stable. v1.0.0 covers the full public-API surface of the Board platform and is the first version intended for shipping games.
[1.0.0] - 2026-05-31
First stable release. The SDK covers the full public-API surface of the Board platform across the input, session, save, avatar, pause, and application domains, exposed through a single frozen Board object. ESM-only, with full TypeScript types.
Added
Board.input: per-frame touch and Piece snapshot stream.subscribe(callback)/unsubscribe(callback). Each contact carriescontactId,type(BoardContactType.Finger/Glyph/Blob),glyphId,x,y,orientation, andphase. Positions are device pixels, origin top-left, Y down. Identify Pieces byglyphId. Games diff snapshots themselves to get discrete edges.Board.session: roster and profile management.getPlayers(),getPlayerCount(),addGuest(),removePlayer(),resetPlayers(),getActiveProfile(),presentAddPlayer(aiTypeIndices?)andpresentReplacePlayer(sessionId, aiTypeIndices?)(both resolvePromise<boolean>),setAIPlayerTypes(types), andareServicesReady(). The roster is OS-owned.Board.save:create,load,list,update, plusremovePlayersFromSave,removeActiveProfileFromSave,loadCoverImage,getAppStorageInfo(), andgetUniquePlayers(saves). There is no direct delete: a game removes its own players, and the system deletes the save once no players remain (matching the Unity SDK). Save metadata carrieshasCoverImage,payloadChecksum,coverImageChecksum,players[],playerCount, and the usual id/timestamps/version/size fields, plus max-size getters.Board.avatar: cached, player-scoped avatar loader.loadPNG(avatarId)andgetDefault()resolve to PNG data URIs;forPlayer(player)is a shortcut.Board.pause: system pause overlay.setContext(context),updateContext(partial),clearContext(), theonResult(callback)subscription (preferred), and a legacypollResult(). The OS owns the menu button.Board.application:quit()returns to the launcher;showProfileSwitcher()/hideProfileSwitcher()drive the OS profile switcher.Board.isOnDeviceandBoard.sdkVersiontop-level properties.web-packpackaging tool: builds a flat<appId>.webapp.zipand a harness-config v1 manifest from a static build directory, using a cross-platform pure-JS zip. Mints a random-UUIDappIdonce and persists it toboard.config.json. Optional--modelrecords a Piece Set Model’s sha256.
Compatibility
- ESM-only. Node 18 or newer for the build toolchain.
- Requires a Board device on the MP.1.9.x OS family or newer for the web-app install and logs workflow (confirm with
board-connect capabilities). - Cross-platform tooling (macOS, Linux, Windows).
Earlier Versions
The 0.x prerelease series is not documented here. v1.0.0 is the first stable release intended for shipping games.