The support library and test IOC were not properly separated: base.dbd was included in the support library's dbd instead of the test app's dbd, and registration code for the test app was generated from the support module's dbd. Consequently, any application that used the s7plc module had to include s7plc.dbd first, and not include base.dbd itself. This is contrary to the usual practice, and can be confusing because it's not obvious why the ordering of s7plc relative to unrelated support modules should matter.
The support library and test IOC were not properly separated: base.dbd was included in the support library's dbd instead of the test app's dbd, and registration code for the test app was generated from the support module's dbd. Consequently, any application that used the s7plc module had to include s7plc.dbd first, and not include base.dbd itself. This is contrary to the usual practice, and can be confusing because it's not obvious why the ordering of s7plc relative to unrelated support modules should matter.