Release v0.5.0
Added
ThemeCompatibility.IncompatiblePackages()/incompatiblePackages()andIsCompatible()/isThemeCompatible()- reuse the exact rule Screenplay's compiler already applies (ValidateThemes): every package aui profiledeclares must be in the theme'scompatibleWithlist, with no implicit exemption forcore. Sharing this rule here means Stage's build-time warning and Studio's design-time theme-picker filtering don't each reimplement it. (#5)ThemeCompatibility.ApplicablePackages()/applicableThemePackages()- the renderer-facing half: the packages a profile activates that a theme also declares compatible, whichScene.Reactscopes token application to (rather than applying a theme's tokens globally). Computing it fresh from the current theme/profile pair, rather than caching a resolved result, is what makes theme switching a live re-resolution with no reload. (#5)- A shared JSON fixture corpus (
theme-compatibility-fixtures.json) asserted independently by both the C# and TypeScript specs, following the pattern established in #3/#4.
Notes
The theme token model's own shape (colors, spacing, typography) is explicitly out of scope for this issue, confirmed by its own text - this PR only builds the compatibility check and the package-scoping helper a future token-application layer in Scene.React will consume; it does not attempt to design or apply actual tokens.