Java Design Document. See JDK Release Notes for information about new features, enhancements, and removed or deprecated options for all JDK releases. UML is typically part of the document.
There are lots of writings already on why it's important to write a design doc before diving into coding.
This document gives a detailed explanation of all of the game characters, the stages or levels, the game mechanics, the views and scenarios, the storyline, various menus and options implemented etc for the game.
Here is the outline of the proposed template for software design specifications. Increase productivity, improve quality, and reduce risk. Note that whenever a model is registered, the controller also registers itself as a property change listener on the model.