## MODIFIED Requirements ### Requirement: Immutable conflict-free hardcoded catalogue The hardcoded Currency Identity Service SHALL preserve the existing AssetAZ currency UUIDs, maintain one current currency value for each UUID, support multiple external references per UUID, reject conflicting UUID or external-identity mappings during initialization, expose no public mutation operation, and be safe for concurrent reads after construction. The Nenjim Registry service manager SHALL create exactly one hardcoded service instance for the current hardcoded component graph, register it as `assetaz.currency-identity.hardcoded`, and SHALL pass that same instance to every component in that graph that requires currency identities. #### Scenario: Conflicting external mapping - **WHEN** initialization maps the same namespace and external identifier to two different AssetAZ UUIDs - **THEN** initialization fails with a clear conflict exception #### Scenario: Conflicting currency metadata - **WHEN** initialization provides conflicting current values for the same UUID - **THEN** initialization fails with a clear conflict exception #### Scenario: Compose hardcoded components - **WHEN** the Registry service manager constructs the current hardcoded component graph - **THEN** it creates and registers one hardcoded Currency Identity Service and injects that same instance into every component that requires it