A Space object is a sequence of bits/bytes/characters(hereafter abbreviated as chars). There are two special chars in Space which turn an otherwise unstructured linear sequence of chars into a structured recursive object. Those two special chars are: space character Keyboard: Space Key Binary: 00100000 Hex: 20 Decimal: 32 newline character Keyboard: Enter Key Binary: 00001010 Hex: 0A Decimal: 10 At a higher level, a Space object consists of a sequence of pairs. A pair holds two sequences of chars (hereafter referred to as strings): one named "Property" and one named "Value". "Property" is a sequence of any char other than the space char or newline char. "Property" is terminated by a space char or newline. If "Property" is terminated by a space char, its associated "Value" will be a string. If "Property" is terminated by a newline char, its associated "Value" will be a Space object. If "Property" is terminated by an end-of-file char its associated "Value" will be an empty Space object. "Value" can contain any char, but newline chars must be escaped. To escape a newline char in "Value", precede the newline char with a newline char + N space chars, where N is equal to the number of spaces preceding the "Property" + 1. "Value" is terminated by an unescaped newline char. "Value" can also be terminated by an end-of-file char. This is the full spec of Space.