Release v2.5.0
Added
theme <Name>- an application-level block (alongsideui profile) declaring a named visual theme and the component packages it is compatible with, via one or morecompatible with <Package>lines.ui profilegains an optionaltheme <Name>line selecting a theme.- A
ui profileselecting a theme not declared compatible with one of the profile's own packages is reported at compile time - the same warning class as an ambiguous or unknown name, naming the incompatible package. Selecting a theme nothing in the document declares gets the same unresolved-name treatment. - New Theme documentation page, cross-linked from UI profile.
(#96)
Notes for reviewers
The compatibility check applies uniformly to every package literally listed in a profile's packages block, including core when a profile lists it explicitly - there is no implicit "core is always compatible" special case. A theme that wants broad applicability declares compatible with core itself (matching the issue's own theme Midnight example); nothing is assumed on its behalf. This keeps the rule simple and free of hidden magic, at the cost of requiring every theme meant to be broadly usable to say so explicitly.
The issue's own diagnostic-numbering note ("start new ones at SP0035") uses the wrong prefix for this repo - codes here are PLAY-prefixed (confirmed on #94, the same mistake recurred in this issue's text). New codes continue from the actual highest allocated, PLAY0224, through PLAY0232.