# Spec Delta ## MODIFIED Requirements ### Requirement: Component IDs are canonical validated values `NenjimComponentId` SHALL reject null, strip surrounding Unicode whitespace before storage and validation, and accept only lower-case ASCII dot-separated segments whose first character is a letter and whose remaining subparts contain lower-case letters or digits separated by single internal hyphens. Standard record value equality and hashing SHALL define ID equality. #### Scenario: Surrounding whitespace is canonicalized - **WHEN** an ID is constructed from ` nenjim.registry.service ` - **THEN** its stored value is `nenjim.registry.service` #### Scenario: Valid component IDs are accepted - **WHEN** IDs such as `nenjim.registry.service`, `assetaz.price-source.raydium-pool`, or `evelyn.status.prod` are constructed - **THEN** construction succeeds #### Scenario: Invalid component IDs are rejected - **WHEN** an ID is null or contains uppercase letters, underscores, internal whitespace, an empty segment, a leading or trailing dot, or a malformed hyphen - **THEN** construction fails with the specified null or argument exception category and identifies the invalid canonicalized value without exposing secrets