opentype.js 2.0.0 returns no fontSubfamily name for fonts whose
Macintosh name table only holds custom records. That made
parse-font-weight/parse-font-style call re-seq on nil and crash the
upload.
Treat a nil or blank variant as no match in app.common.media, and
add resolve-font-metadata to app.main.data.fonts so the parsed branch
falls back to the filename-derived family, weight and style. The
woff2 branch now shares the same helper, so metadata is preserved
instead of collapsing every face to weight 400.
Closes#10436
AI-assisted-by: deepseek-v4.1-flash