As per discord discussion, so far this made a lot of sense:
cf_text_effect_set_font(const char* effect_name, const char* font);
We can add a font field to the internal effect that gets registered:
struct CF_TextEffectDefinition {
const char* font_override;
CF_TextEffectFn fn;
}
For a particular effect that has not been registered, we can just auto-register a stub function pointer to get the text code working. Example use:
cf_text_effect_set_font("b", "calibri bold");
// ...
cf_draw_text("<b>bold</b>", ...);