Pack order and ownership
grounds-global contains grounds-content first and grounds-platform second. The later platform pack has higher client priority. The order is part of the contract; preserve it when building an Adventure request.
Four identities to keep separate
An asset catalog pin is exact. A runtime compiled against
resourcepacks-catalog:1.0.0 does not automatically acquire a different catalog because the client receives a newer ZIP. The action catalog has its own independent revision and Maven artifact.
Distribution layout
The CDN origin ishttps://cdn.grounds.gg:
Manifest schema
Manifest schema is 2. Config and scene schema numbers are separate.
SHA-1 is the Minecraft delivery hash. SHA-256 and sizes bind distribution/catalog bytes. A fixed UUID identifies each logical pack; it is not a unique request ID or release identity.
The JVM contract rejects noncanonical JSON, duplicate keys, invalid field/type/value combinations, and mismatched origins/publication roots. The resolver checks the expected target, manifest hash/size, and requested source before accepting state. Do not hand-edit a published manifest or treat a hash as permission to accept an arbitrary URL.
Channel and pin semantics
Withsource.pin absent or null, the plugin follows source.channel. A release pin overrides the channel but retains that channel in the document for use when the pin is cleared. Release IDs are canonical v<major>.<minor>.<patch> without prerelease suffixes; the Portal/Forge request uses the version without v.
A channel switch clears a pin. A release pin does not advance Stable or Edge. A rollback selects an older compatible immutable release; it does not overwrite CDN objects.
Minecraft compatibility
Current product/contract baseline is Minecraft 26.3, pack format 97. Forge can inspect historical manifests, but its Stage selection mutation rejects release pins with a different Minecraft version or format. For example, a 26.2/88 publication is inspectable but cannot be pinned through the current Stage selector.Publication, configuration, proxy resolution, and client acceptance are four distinct states. A successful publish does not activate the product; a successful selection write does not prove every player has accepted it.
