So I noticed OnAwake doesn’t work for me just like others have noted. I followed the advice to use OnValidate but OnValidate only runs in a limited set of circumstances (such as domain reloads or edits in inspector UI).
And so it doesn’t reliably check if the node list is not empty. I created multiple objects that have 0 nodes. The only thing it reliably does is that it doesn’t let me delete the first (or 0th) node in the list but only once I already have one.
I’m curious what was the purpose of this exercise. I learned how to check the consistency of entries in the inspector which is something I was genuinely interested in. But it seems Sam was trying to teach us something else.