I did software contracting for a while. It’s certainly appropriate to define parameters like “use language x, code these features, by this deadline and keep a synchronized copy of the code in this repo.”
You can’t set hours and direct particular tasks day to day.
Having personally been through the employee vs contractor maelstrom when, for some unknown reason, the state government got a bug up it's ass, I'd have to say that the state requirements become quite arbitrary.
What you might think is appropriate is sort of besides the point.
I too have been through the maelstrom. What I think is appropriate for me as it all boils down to interpreting the IRS regs and hiring a good lawyer who successfully avoids and navigates lawsuits for me. Just because I navigated it successfully doesn’t mean I’m right or my interpretation is appropriate for all.
But I think it’s pretty useful and certainly disproves that it’s not possible to hire software contractors.
This gets into a big grey area and I’m not sure there’s an absolute rule. If I were writing the contract I would say “must pair program with employees” and let the contractor figure iut how to meet the req.
You can’t set hours and direct particular tasks day to day.