Resolve the article-type slug from a manifest, tolerating legacy schemas.
Resolution order (highest precedence first):
articleType
articleTypes[0]
runType
Falls back to 'unknown' when none of the above is a non-empty string.
'unknown'
Parsed manifest (any of the supported schemas)
Article-type slug usable as a filename component
Resolve the article-type slug from a manifest, tolerating legacy schemas.
Resolution order (highest precedence first):
articleType— canonical singular fieldarticleTypes[0]— pre-aggregator-pipeline plural arrayrunType— legacy field on older breaking-run manifestsFalls back to
'unknown'when none of the above is a non-empty string.