So @Zotmeister pointed out that there were too many pre-filled squares in these, so I added some code to remove redundant ones and suddenly this puzzle is: markedly harder.
I'm *pretty sure* these are all still uniquely solvable but this is starting to feel like it'll need some thorough playtesting before I turn it into something Proper.
Also I am thinking of calling this game Ronin, because "sudoku" is Japanese for "single digit" (kind of) and Ronin is a Japanese lone warrior.