The core-data-model plugin is responsible for the storage and interaction with the data model associated with a device. This includes all ZCL attributes and command handlers. For instance, when an attribute needs to be updated, the application interacts with the core-data-model. The data is a generated piece of code located in the gen directory associated with a given project. There is a gen directory located at /src/app/gen. This is not the gen directory for an application. It is merely an example of generated code used for unit testing the CHIP ZCL Application Framework.
When a ZCL attribute is updated in the data model, the core-data-model will call the postAttributeChangeCallback, if this callback is implemented by the device it will be informed of the attribute change. The device may react to the attribute change. For instance, if the on/off attribute in the On-Off Cluster changes, the application which implements the postAttributeChangeCallback may reflect this by toggling the actual pin tied to an LED.