3.9 KiB
| id | ticket | title | status | created | completed | ref_decisions | tags | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| PLN-0081 | studio-packer-rgba8888-asset-pipeline | RGBA8888 Packer and Studio Spec Propagation | done | 2026-05-23 | 2026-05-23 |
|
|
Objective
Propagate DEC-0037 into the normative Studio and packer specifications before
code implementation starts.
Background
DEC-0037 keeps GLYPH/indexed_v1 but changes its palette contract from
RGB565 to RGBA8888. Specs currently still describe RGB565 palette bytes,
convertedRgb565, and a 2048-byte palette block.
Scope
Included
- Update packer specs for
asset.jsonpalette metadata andassets.paglyph-bank payload layout. - Update Studio asset workspace specs if they expose palette metadata or details/read projection behavior.
- Preserve the fixed 64-palette model and explicitly leave
DSC-0005for a later palette-count optimization.
Excluded
- Code changes.
- Test changes.
- Variable palette-count serialization.
- Runtime spec changes, except references to runtime
DEC-0029.
Execution Steps
Step 1 - Update asset declaration palette fields
What: Replace originalArgb8888/convertedRgb565 examples and rules with
canonical rgba8888.
How: Edit the palette portions of the asset declaration spec so
output.pipeline.palettes[*].palette.rgba8888 is the canonical field. State
that ARGB may be an input API detail but is not canonical authored/projected
palette data.
File(s):
docs/specs/packer/3. Asset Declaration and Virtual Asset Contract Specification.md
Step 2 - Update glyph-bank payload layout
What: Change GLYPH/indexed_v1 palette layout from RGB565 to RGBA8888.
How: Keep the format name. Change the palette block from
64 * 16 * 2 = 2048 bytes to 64 * 16 * 4 = 4096 bytes. Update size and
decoded-size formulas. State that palette entries use runtime RGBA channel
order.
File(s):
docs/specs/packer/4. Build Artifacts and Deterministic Packing Specification.md
Step 3 - Document alpha and index semantics
What: Document that palette index 0 is ordinary and all 16 palette entries
are usable.
How: Add normative rules that transparency and partial transparency are encoded only by RGBA alpha, magenta color-key is removed, and partial alpha is valid palette data.
File(s):
docs/specs/packer/3. Asset Declaration and Virtual Asset Contract Specification.mddocs/specs/packer/4. Build Artifacts and Deterministic Packing Specification.md
Step 4 - Update Studio-facing projection rules
What: Ensure Studio-facing docs use rgba8888 where palette metadata is
visible.
How: Update asset workspace language only where it describes palette read,
details, scene preview, or palette default behavior. Keep scene palette_id
semantics unchanged.
File(s):
docs/specs/studio/4. Assets Workspace Specification.md
Test Requirements
Unit Tests
- Not applicable for this spec-only plan.
Integration Tests
- Not applicable for this spec-only plan.
Manual Verification
- Search specs for stale
RGB565,convertedRgb565, 2048-byte palette block, reserved index0, and magenta color-key language.
Acceptance Criteria
- Packer specs define
rgba8888as the canonical palette field. GLYPH/indexed_v1remains named exactly that.- Palette block formulas use
64 * 16 * 4 = 4096. - Specs state palette index
0is ordinary and all 16 entries are usable. - Specs state partial alpha is valid and magenta color-key is removed.
- Specs leave
DSC-0005variable palette-count work out of scope.
Dependencies
- Depends on accepted
DEC-0037. - Should complete before code plans are implemented.
Risks
- Leaving stale RGB565 examples in specs will make implementation review ambiguous.
- Over-editing scene specs could accidentally imply a scene payload change that
DEC-0037does not authorize.