@castarcade/game-contract
v0.3.1
Published
Manifest, bundle and policy rules shared by the Cast Arcade CLI and platform.
Readme
@castarcade/game-contract
Public beta manifest and castarcade.bundle.json validation for Cast Arcade. Validation checks the versioned technical packaging policy; it never authorizes publication. Every release still requires the runtime-behavior and content-safety manual checks reported by the validator.
The beta accepts self-contained browser games for solo and local shared-screen play. New games declare category as table when play happens primarily between people or video when it happens on a screen; legacy manifests without the field remain valid and resolve to video. Schema v2 supports shared-display phone rooms, private text/action projections, and versioned browser recovery. Optional server: { entry, tickHz } declares isolated server rules; the target deployment must activate its runner. External network services and native executables are unsupported.
Store listings
The executable game version and its Store listing are separate contracts. A game version contains code and game assets. It is locked after submission so a reviewer, player, or rollback always receives the exact files that were tested. Submit a new semantic version when those files change.
The Store listing contains the player-facing title, short and full description,
category, up to eight tags, access choice, cover ID, and up to six screenshot
IDs. listingSeed(manifest) creates a safe first draft from the game manifest.
validateListingInput(value, capabilities) applies the same closed-field,
plain-text, length, tag, artwork-ID, and commercial-access rules used by the
server. Listing copy and artwork can be revised without submitting a new game
version. Full descriptions may contain LF or CR paragraph breaks; call
normalizeListingInput before persistence to canonicalize CRLF and CR to LF.
Tabs, hidden formatting controls, surrogate code points, and markup remain
invalid. Only an approved listing revision is public.
Commercial access values are part of the versioned contract, but the current
server capability enables free only. Paid games, Cast Arcade+, billing, and
payouts remain planned until their services and terms are active.
@castarcade/game-contract/rules exports RulesModule, RulesProjection, context/action/result types, RULES_LIMITS, and pure JSON boundary validators. Rules default-export init, reduce, optional tick, and project. Validation does not execute or sandbox uploaded code; server rules run only through an activated isolated loader.
