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.