The single source of truth for every asset pack the dev tool knows about. Anything not in this list cannot be uploaded under asset-packs/. Add a new pack ⇒ add a row here in the same PR.
Fleet-wide taxonomy lives on ObjectStore (not a second system):
| Catalog | URL |
|---|---|
| Era taxonomy | https://objectstore.grudge-studio.com/api/v1/era-asset-taxonomy.json |
| Era recognition | …/era-recognition.json |
| Era characters | …/era-characters.json |
| Media types (2D/3D) | …/asset-media-types.json |
| Era | Upload roots |
|---|---|
| warlords (fantasy/medieval) | models/grudge6/, models/nature/, models/environment/sectors/{id}/, asset-packs/ |
| nexus (modern) | models/nexus/, sprites/nexus/ |
| armada (sci-fi) | grudge-armada/, models/armada/, models/ships/ |
| voxel (style) | models/voxel/ |
| shared 2D | icons/, sprites/, ui/, effects/, fonts/ |
Pack manifests must include "era": "warlords"|"nexus"|"armada"|"shared" and optional "style": "voxel".
Classify before upload: node scripts/recognize-era.mjs --path <r2-relative> (ObjectStore repo).
asset-packs/<pack-id>/v<version>/<category>/<file> # source assets
asset-packs/<pack-id>/v<version>/_thumbs/<category>/<file> # 256px JPEG thumbnails
asset-packs/<pack-id>/v<version>/_originals/<category>/... # only when --keep-source
asset-packs/<pack-id>/v<version>/_blends/<category>/... # raw .blend kept alongside .glb
asset-packs/<pack-id>/manifest.json # full catalog with Grudge UUIDs + era
asset-packs/<pack-id>/CHANGELOG.txt # provenance
asset-packs/<pack-id>/README.txt # license + author
Public CDN mirror: https://assets.grudge-studio.com/asset-packs/<pack-id>/v<version>/...
<pack-id> is lower-kebab. No spaces, no version, no scope.<version> is the upstream pack version, prefixed with v in the bucket only.CC0, CC-BY, MIT, Apache-2.0) or explicit Grudge-owned.Grudge Studio.dev/private/<pack-id>/ instead.
classic64 v0.6 — Classic 64 Asset LibraryC:\Users\nugye\Documents\- Classic 64 Asset Pack 0.6\- Classic 64 Asset Pack 0.6\asset-packs/classic64/v0.6/https://assets.grudge-studio.com/asset-packs/classic64/v0.6/Ground (89) · Misc (79) · Food (77) · Wood (66) · Metal (57) · Rocks (37) · Signs (37) · Walls (37) · Nature (36) · Windows (36)grudge-dev-tool/classic64-dry-run.json); upload pending backend deploy
npm run upload-pack -- --root <path> --pack-id <id> --version <ver> --license <SPDX> --author "<name>" --dry-run.grudge-dev-tool/manifest-preview-<id>.json.<pack-id>).--dry-run. The CLI calls /api/objectstore/upload-url per file, then /api/objectstore/manifest at the end.asset-packs/<id>/v<ver>/ is populated.