Problem
Currently, all Items are created based on an ItemType (think of it as a catalog). Wherever that catalog gets loaded from is not really important, BUT what's important is that these get looked up and instantiated using a numeric ID which is client version specific.
If we want to support multiple versions, we need to make the item instantiation and identification version agnostic.
Solution
One proposed solution would be to use the item name (singular, no article) or another unique string as the identifier, and then map that identifier to the actual numeric value supported by the client in the relevant protocol specific libraries used with dependency injection.
Problem
Currently, all Items are created based on an ItemType (think of it as a catalog). Wherever that catalog gets loaded from is not really important, BUT what's important is that these get looked up and instantiated using a numeric ID which is client version specific.
If we want to support multiple versions, we need to make the item instantiation and identification version agnostic.
Solution
One proposed solution would be to use the item name (singular, no article) or another unique string as the identifier, and then map that identifier to the actual numeric value supported by the client in the relevant protocol specific libraries used with dependency injection.