FontRole
enum class FontRole(
val playoutKey: String,
val playoutNameKey: String,
val appConfigKey: String,
val appConfigNameKey: String
)
The two font roles a playout can set (#20287 / #19065): one font for headings, one for body
text. Each role is stored as an id/name pair, exactly as Channels stores
fontFamilyPrimaryId / fontFamilyPrimary (#20288 decision 14), and falls back to the
built-in Lato on its own - an unusable heading font never drags the body font down with it.
The absent-vs-cleared rule for partial playout payloads keys on [playoutKey] (the Id field): a payload without that key leaves the role alone. The Shorts app config carries the same two roles under camelCase keys ([appConfigKey] / [appConfigNameKey], #20286), and the same rule applies there.
The four key names are on the enum rather than spelled out at each call site because the SDKs need them as strings - they inspect the raw payload map, which a parsed model cannot do.