flair v0.14.0 — lottery config font + stickers scale-1 fix
Lottery: config-selected font + crisp pixel fonts
flair.lottery now accepts a font in config (previously locked to Inter-Bold). Requires core ≥ 4.27 (the RESOLVES_OWN_FONT opt-out) — the widget auto-sizes the chosen font to each ball face; an unknown font name errors clearly, and omitting font keeps the Inter-Bold default.
When the chosen font is a pixel font (e.g. spleen-6x12, core ≥ 4.25), the ball-face auto-sizer snaps to the font's native grid (12/24/…) so the text renders exact 1-bit instead of blurring off-grid. Outline fonts keep the existing continuous auto-size.
[[playlist.section.widget]]
type = "flair.lottery"
words = ["HALAL", "GYRO", "RICE"]
font = "spleen-6x12" # crisp pixel faces (core >= 4.27)Fix: stickers crash at scale 1
flair.stickers crashed at scale 1 (min() iterable argument is empty). The standard-emoji pack (core ≥ 4.21) grew emoji_slugs() to ~1,400 slugs, ~1,360 of them hires-only — they render nothing at scale 1, so a smallsign firing could compose an empty sprite. The random-mode pool now filters to slugs that actually rasterize at the target scale; compose_sticker also guards an empty sprite as defense-in-depth.
Core floor raised to ≥ 4.27.