TL;DR:
Domain Driven Design has a flaw: not all types can be categorized into "valid" and "invalid", since it often depends on context.
Solution: you just haven't modeled your domain correctly. You have a type for "MyData" but you don't have a type for "MyDataThatIsBeingEditedByTheUser".
So the "final" type should be valid, but often you should have intermediate type(s) that model incomplete input.
Basically, when doing DDD don't forget your builder types.
I don't think the difference is the minimum education for entry.
I'd say the difference is how much of your paycheck is because of you specifically and how much is for just general labor.
So a physics researcher job is "skilled" because most of the pay is because the specific researcher knows about physics.
But a waiter job is "unskilled" since the skills needed to do the job are the skills needed for basically any job:
Of those, only physical endurance and people skills are "exclusive" to being a waiter. There are some actual jobs that require no physical endurance. And some jobs don't require as much people skills as being a waiter does. But the rest of them are general across basically every job.
Of course, "unskilled job"s do require skills, I just listed a bunch of them. But most of those skills, any other worker that does any other job would have. Therefore I count payment for those skills as payment for "general labor" and not "payment for you specifically".