I ended up using a symlink for a specific package under commonMain in both projects. This way, both projects can still add code under their respective commonMain source sets, but have the freedom to share the code more widely by adding it to the symlinked package. This doesn't seem as bad as I first imagined. I'm open to other suggestions if anyone has any.