## 1. Component and Registry Foundation - [x] 1.1 Add the marker/application contracts, validated component ID, and public read-only Registry/service-manager interfaces with explicit nullability. - [x] 1.2 Implement the package-private Registry administration and synchronized Registry service with primary storage, recursive ordered interface indexing, typed lookup, immutable snapshots, and single-use startup. - [x] 1.3 Mark every required registered query interface as a Nenjim component and each registered no-argument lifecycle implementation as a Nenjim application without introducing a common stop API. ## 2. Composition and Migration - [x] 2.1 Rename the directly affected Ticker price-source packages and imports from `.plugins.pricesource` to `.pricesource`. - [x] 2.2 Replace the Ticker's temporary source-instance constructor with public Registry injection plus explicit source component IDs and clear required-dependency failures. - [x] 2.3 Implement the public Registry service manager as the sole hardcoded composition root with every required component ID and implementation registered in dependency order. - [x] 2.4 Preserve the explicit five-application startup order, deliberately inactive components, online message, blocking wait, and single-use manager lifecycle. - [x] 2.5 Replace the old Hub interface and `com.r35157.nenjim.hubd.impl.ref.Main`/`NenjimHubImpl` composition path with the thin `com.r35157.nenjim.hubd.Main` bootstrap, update every runtime entry point, and keep composition and lifecycle ownership in the Registry manager. ## 3. Documentation and Specification Consistency - [x] 3.1 Update Nenjim Markdown, terminology, and public HTML documentation for component identity, Registry views, composition ownership, selection/activation, and deferred boundaries. - [x] 3.2 Update directly affected alarm and canonical OpenSpec wording so removed Hub/plugin terminology does not describe current behavior. ## 4. Verification - [x] 4.1 Strictly validate the OpenSpec change and complete project material while leaving the change active and unarchived. - [x] 4.2 Run the existing Gradle build and Detag/Java compilation pipeline without invoking production `main()`. - [x] 4.3 Run temporary non-committed Registry probes covering IDs, duplicate/alias behavior, multi-view and inherited indexing, immutable order snapshots, missing/wrong type, pre-start, repeated start, and post-start registration. - [x] 4.4 Inspect the complete redacted final diff, package references, generated-source status, nullability, working tree, acceptance criteria, and out-of-scope boundaries.