Requirements:
SERIALIZATION:
- identifier of a component is its "id" (family/name at minimum, plugin nice to include - this is what does the "id" field)
- version to take into account
- @Credential should be honored, it is ok to serialized the whole output as encrypted if easier
- no constraint on the way it is serialized but recommandation is to use the flat map format of the tcomp configuration (key=value). You can have a look into the doc for the way it works but quickly the key is the path of the property which is used as an id in the context of a component.
DESERIALIZATION:
- if current component version (ComponentDetail) != saved version
- call the migrate endpoint (from WebSocketClient) - will convert a key/value instance to another one. Tip: likely done from the javajet
- update the storage if the key/values changed