### Phase 03 — Frontend API Boundary (Canon Contract) This document codifies the FE/BE boundary invariants for Phase 03. - BE is the source of truth. The `frontend-api` crate defines canonical models that all Frontends must produce. - No string protocols across layers. Strings are only for display/debug. No hidden prefixes like `svc:` or `@dep:`. - No FE implementation imports from other FE implementations. - No BE imports PBS modules (hard boundary). The Backend consumes only canonical data structures from `frontend-api`. - Overload resolution is signature-based. Arity alone is not sufficient; use canonical signatures/keys. Implementation notes (PBS): - The PBS adapter must not synthesize ownership or module info from string prefixes. All owner/module data should come from canonical types. - Export/import surfaces are expressed exclusively via `frontend-api` types (e.g., `ItemName`, `ProjectAlias`, `ModulePath`, `ImportRef`, `ExportItem`). Enforcement: - A test in `prometeu-build-pipeline` scans `src/backend/**` to ensure no references to `frontends::pbs` are introduced. - Code review should reject any PRs that reintroduce prefix-based heuristics or FE-to-FE coupling.