refactor!: multi platform support
Managing similar changes across 2 repos have become annoying enough that
I'm willing to take on the pain of managing multi-platform monorepo.
macOS-specific stuff are isolated in separate files, so when I don't
have any macOS machine anymore I can just cleanly remove them.