The ending to match, e.g. .msg.json. Longest match wins across all kinds.
OptionalextractThis file's contribution to its contents.json entry, or null for "nothing to say".
null does NOT omit the file — the listing always names every file present.
OptionalplaceWhere the file goes within <kind>/<pkg>/, given the caller-supplied location remainder.
null means it cannot be determined and the caller must supply more.
One recognized file ending within a kind.
No
kindfield: a file type is registered INTO a kind, which is what makes the containment real rather than a string that has to match something.