D296 - Privilege tier and application category are independent build inputs

Status: decided Date: 2026-09-26

A build declares a privilege tier (app, sysmodule, system, root - the authority id in the SELF header, PRIVILEGE) and an application category (bigapp, systemapp, miniapp - applicationCategoryType) separately. Direct memory and display ownership are governed by category, not privilege: a root build gets full resources as a big app and zero direct memory as a system app. A build that needs the screen declares category bigapp. obs_module_open_tier records which path provided each library.

Why: the two axes were measured on hardware to be orthogonal, and conflating them left a root build with a black screen and no direct memory. A root eboot can be a big app; no runtime escalation is needed for display output.

Rejected: registering privileged builds as system apps by default - loses display and direct memory.