Torch is weird and so uv has a dedicated page for how to set up pyproject.toml for uv to work with it correctly. I think we want this setup, using optional dependencies to allow switching between cpu and cuda (this is useful for development, where we want to easily test both).