Skip to main content

FontClip

class FontClip( val id: String? = null, val type: String? = null, val mediatype: String? = null, val originalfilename: String? = null, /** Parsed, not consulted - see [FontAsset.status]. */ val status: String? = null, /** * Top-level clip src. Present but unreliable: on some clips it points at the dead * pre-conversion `/upload/...` path, on others it is the only working path while the * per-asset `src` values are `/media/` stubs (#20224). Not used for resolution. */ val src: String? = null, val assets: List<FontAsset>? = null )

A font media clip as returned by /json/mediaclip/<id> (public for published clips).

Deliberately not [MediaClip]: [FontResolver][com.bluebillywig.bbnativeshared.FontResolver] only ever needs an id, an [originalfilename] and a list of assets, so [FontClip] is a minimal read model with just those fields rather than a dependency on the large polymorphic [MediaClip]/[ContentItem] hierarchy and its ContentLoader.fixDataInconsistencies post-processing. Unknown keys are ignored, so whatever shape the backend sends decodes as well.

The family name is [originalfilename] minus its extension, which is how Channels has resolved font names since #19081. No filename means the clip is unusable.

Properties​

status​

val status: String?

Parsed for completeness and deliberately not consulted: an unpublished clip 404s on /json/mediaclip/<id>, so a clip that arrives at all is one the resolver may use, and gating on this string would add a way to reject a font that is demonstrably there.

format​

val format: String?

Lower-cased, trimmed [mediatype] ("ttf", "otf", "woff", ...), or null when absent.

status​

val status: String?

Parsed, not consulted - see [FontAsset.status].

src​

val src: String?

Top-level clip src. Present but unreliable: on some clips it points at the dead pre-conversion /upload/... path, on others it is the only working path while the per-asset src values are /media/ stubs (#20224). Not used for resolution.