
Is the result of a discussion
Once goal and requirements are defined, and some ideas have popped into your mind, it's time to have an early confrontation with other designers or the rest of the team that will be in charge of developing the feature.
It's never early enough to share ideas! The earlier you start brainstorming and sharing, the earlier you'll be able to catch pitfalls in your design or evolve your ideas to a more effective level.
Don't think that this part belongs to you. What you are thinking might be not feasible for technical reasons you're not aware of. Get the rest of the team involved!
Game programmers are the most important interlocutors at this point. They are the ones who will implement your design. You want to get them involved in the creative process and you want to make sure they know what they are going to work on before giving them the final document.
It's only after you have interrogated your ideas and designs with others that you'll finally be able to decide what to write. Remember that everything you'll be writing will be transformed into software and will require a lot of work by many different people. You don't want to get it wrong. Small mistakes and imprecision can trigger an avalanche effect that can translate into a massive waste of work for the team down the line. Again, this doesn't mean that everything must be written like in an instruction manual, but whatever you decide to write down needs to reduce confusion and ambiguities, not create more! If something cannot be precisely defined at this stage, don't be afraid to write that into the document!