prometeu-runtime/discussion/workflow/plans/PLN-0065-pixel-operator-font-integration.md
2026-05-15 17:50:59 +01:00

89 lines
3.5 KiB
Markdown

---
id: PLN-0065
ticket: prometeu-hub-ui-direction
title: Pixel Operator Font Integration
status: open
created: 2026-05-15
ref_decisions: [DEC-0028]
tags: [hub, ui, shell, system-apps, lifecycle, design-system]
---
## Briefing
Integrate the already-available Pixel Operator font asset into the first Hub UI slice when the existing rendering path can support it without creating a new public font system.
Source decision: `DEC-0028`.
## Objective
Use pixel-style typography for the Hub/Home and fake Shell app labels while keeping font work scoped to the initial UI slice.
## Dependencies
- `DEC-0028` must remain accepted.
- `PLN-0064` can proceed without this plan if font integration exposes unrelated architecture work.
- The asset is expected to exist already under `assets/pixel_operator` or from `assets/pixel_operator.zip`.
## Scope
- Locate and verify the extracted Pixel Operator asset.
- Determine the current text rendering path available to Hub/System UI.
- Add a local font binding or asset loading path if one already fits the runtime.
- Use the font for Hub button labels and simple Shell app text.
- Document any reason this must be deferred.
## Non-Goals
- No general font manager unless one already exists and only needs registration.
- No text layout engine.
- No multilingual shaping.
- No public asset/font spec change unless implementation requires a durable contract.
- No dependency download.
## Execution Method
1. Verify the asset.
- What changes: confirm exact files and format under `assets/pixel_operator`.
- How: inspect asset directory and identify usable font/bitmap files.
- Files: `assets/pixel_operator*`.
2. Inspect current text rendering.
- What changes: determine whether Hub can draw text through existing HAL/GFX primitives or asset-backed glyph rendering.
- How: search current text/glyph/font rendering APIs and examples.
- Files: `crates/console/prometeu-hal`, `crates/console/prometeu-system`, current asset/glyph code.
3. Add the narrowest local integration.
- What changes: make Hub text use Pixel Operator if the path is straightforward.
- How: register/load the asset in the same style as existing assets; keep code local to Hub UI if there is no general font contract.
- Files: Hub module and asset-loading modules identified in step 2.
4. Add fallback behavior.
- What changes: if font rendering is not currently suitable, keep the visual slice working with existing text/primitive rendering and record a follow-up.
- How: do not block `PLN-0064` on broad font architecture.
- Files: Hub module and this plan's execution notes.
5. Validate typography use.
- What changes: button labels and simple Shell app labels render legibly in 270p.
- How: manual visual verification plus any available render tests.
- Files: Hub render path.
## Acceptance Criteria
- [ ] Pixel Operator asset location and format are verified.
- [ ] Hub text rendering uses Pixel Operator when the existing rendering path supports it.
- [ ] If deferred, the reason is recorded and `PLN-0064` remains executable.
- [ ] No broad font/text toolkit is introduced.
- [ ] Text remains legible at 270p.
## Tests
- Compile tests for any asset/font binding.
- Unit tests only if new parsing/registration logic is added.
- Manual visual verification of button labels and Shell labels.
## Affected Artifacts
- `assets/pixel_operator*`
- `crates/console/prometeu-system/src/programs/prometeu_hub/`
- Existing HAL/GFX/asset modules if they already host font or glyph rendering