FnHCI Namespace Map
This note maps the broader FnHCI concern to the narrower FnUI system line.
The governing decision is:
docs/decisions/0015-fnhci-owns-the-top-interaction-namespace.mddocs/fnhci-ui-blazor-requirements.mddocs/fnhci-penpot-abstraction.md
Core Distinction
FnHCIthe broader human-computer interaction concern lineFnUIthe concrete visual/UI-specific system line inside that broader concern
Intended Layering
- concern line
FnHCI - top internal namespace
FnTools.FnHCI - visual subsystem namespace
FnTools.FnHCI.UI - Blazor-specific host/runtime seam
FnTools.FnHCI.UI.Blazor - outward-facing package or product line
FnUI,FnUI.Blazor, or similar
Why This Split Helps
FnHCIcan keep the wider meaning for CLI, API, accessibility, and other interaction modes- the Bolero-replacement system can stay clearly visual/UI-specific
- internal code namespaces can remain structurally honest
- package naming can remain clear and memorable
Current Reading
Based on the current discussions, the likely interpretation is:
FnHCIthe umbrella interaction namespace and concernFnUIthe branded/public line for the visual system that replaces Bolero while sitting on top of Blazor
Evidence From Recorded Conversation
The strongest current reference point is:
That conversation currently captures three especially relevant steps:
FnHCIat the top withFnUI,FnCLI,FnAPI, andFnA11yunder it- concrete visual naming like
FnUI.Blazor,FnUI.HTML, andFnUI.android - the explicit statement that
FnUImight be used as a lens overFnHCI.UI.Blazoras the NuGet and "marketing" term
That is the clearest current signal that:
FnHCIshould own the broader namespace- the Blazor-based replacement layer belongs under that namespace
FnUIcan remain the outward-facing visual system line
First Likely Code Shapes
If this direction holds, early code and project shapes may look more like:
FnTools.FnHCIinteraction primitives and shared abstractionsFnTools.FnHCI.UIvisual view/state/composition modelFnTools.FnHCI.UI.BlazorBlazor host/runtime adapter
with package and outward naming such as:
FnUIFnUI.Blazor
The current Penpot direction fits this same split:
FnTools.FnHCIshould own the semantic interaction primitive- Penpot should provide design and authoring projections over that primitive
- runtime lines such as Blazor, HTML, Android, and iOS should adapt the primitive into concrete widgets
Open Questions
- Should the public package line use
FnUIalone, or shouldFnHCIappear in some package names too? - Which primitives belong in
FnTools.FnHCIversusFnTools.FnHCI.UI? - How much of the eventual NEXUS GUI belongs to the reusable
FnUIsystem versus app-specific composition?
Current Scaffold Note
The current code namespace inside this repo now uses FnTools.FnHCI.*.
Project and filesystem paths may still temporarily use the older Nexus.FnHCI project-path names while the extraction into a dedicated FnTools repo is being prepared.