Most software problems presented as technical are actually unresolved decisions about scope.
We write down what is explicitly out of scope, because an unstated exclusion is an assumed inclusion.
A first version should be small enough to ship and complete enough to teach you something.