Issue #3: Split common defines into multiple files to avoid circular include dependencies