Part 5 of the split in #25, alongside storage (#26), network (#27), and the resolver (#28), because packs are covered by none of them.
ModPackMetadata still carries the pre-RFC shape.
RFC 0031 defines a pack as the shared authored core plus a small extension, so the class needs:
- the shared core:
spec_version, type, authors as a list (currently a single string), required abstract with optional description (currently one required description), license, tags, status and superseded_by, and links with the required forums entry,
- game compatibility as
game_min (which may be a month, a form GameVersion cannot represent) with optional game_max and os, replacing the single BuiltForGameVersion,
- the pack extension:
version, released_at, optional changelog, the pinned [[mods]] list, and the [[vehicles]] and [[saves]] sections with the same entry shape,
- pack ids validated by the same id rules as mods (
ModIds), since the namespace is global across content types.
A pack document is immutable once published, so the class can stay a plain snapshot: there is no generated half and no watcher involved.
Part 5 of the split in #25, alongside storage (#26), network (#27), and the resolver (#28), because packs are covered by none of them.
ModPackMetadatastill carries the pre-RFC shape.RFC 0031 defines a pack as the shared authored core plus a small extension, so the class needs:
spec_version,type,authorsas a list (currently a single string), requiredabstractwith optionaldescription(currently one required description),license,tags,statusandsuperseded_by, andlinkswith the required forums entry,game_min(which may be a month, a formGameVersioncannot represent) with optionalgame_maxandos, replacing the singleBuiltForGameVersion,version,released_at, optionalchangelog, the pinned[[mods]]list, and the[[vehicles]]and[[saves]]sections with the same entry shape,ModIds), since the namespace is global across content types.A pack document is immutable once published, so the class can stay a plain snapshot: there is no generated half and no watcher involved.