@chrisyan Take a look at this page for the best practices,
https://experienceleague.adobe.com/en/docs/experience-platform/xdm/schema/best-practices
For the 1st question, specifying the offer code works effectively as opposed to does not contain logic.