# fss-0002 iki-0000
#
# license open-standard-license-1.0-or-later
# version 2024/08/30
#
# This file (assumed to be named fss-0003.txt) can be more easily read using the following iki_read commands:
#   iki_read fss-0003.txt +Q -w -WW character "'" "'" code '"' '"'
#
# To read the "Featureless Settings Specification: 0003 - Extended List" section of this file, use this command sequence:
#   fss_basic_list_read fss-0003.txt +Q -cn "Featureless Settings Specification: 0003 - Extended List" | iki_read +Q -w -WW character "'" "'" code '"' '"'
#

Featureless Settings Specification: 0003 - Extended List:
  Each Object starts at the beginning of a line and white space to the left of the Object is not treated as an Object.
  An open-brace character:"{" (unicode:"U+007B") followed by any white space until a new line terminates a possible valid Object.
  White space after the last printable character of the Object but before the brace character:"{" (unicode:"U+0037B") is not considered part of the Object.
  An Object is not considered fully valid until a valid close-brace character:"}" (unicode:"U+007D") is found, designating the end of the Content.
  Non-white space printable characters may not follow the open-brace character:"{" (unicode:"U+007B") of a valid Object.
  Implementations of the standard may choose to include the white space to the left and to the right of a valid Object may be included as an untrimmed Object.

  Content is represented as a single Content column of every line following a valid Object until the end of file (or string) or until a non-delimited close-brace character:"}" (unicode:"U+007D").
  Any Content column that could be interpreted as an end of Content must be delimited if it should be part of the Content.
  White space may follow a valid close-brace character:"}" (unicode:"U+007D") but a terminating new line must be present to designate a valid end of Content.

  There is no single-quote (unicode:"U+0027"), double-quote (unicode:"U+0022"), or grave (unicode:"U+0060") delimitation in this specification.
  Only an open-brace character:"{" (unicode:"U+007B") that would result in a valid Object or the close-brace character:"}" (unicode:"U+007D") that would terminate valid Content can be delimited.
  When inside potentially valid Content (which follows a valid Object) the open-brace character:"{" (unicode:"U+007B") cannot be delimited because this standard is not-recursive.
  When not inside any potentially valid Content (that is, there is no previous unclosed Object), then the Object may be delimited.
  Likewise, the close-brace character:"}" (unicode:"U+007D") may only be delimited if it is within any potentially valid Content.

  Each delimit slash in a delimitable open-brace character:"{" (unicode:"U+007B") is treated as a potential delimit such that two slashes represents a single delimited slash (code:"\\{" would represent code:"\{").
  Only the first delimit slash in a delimitable close-brace character:"}" (unicode:"U+007D") is treated as a potential delimit (code:"\\\}" would represent code:"\\}").

  Empty Objects are allowed, that is, the length of the Object may be zero.

  Key\:
    code:"\s" = White space, except new line.
    code:"\o" = Any printable character, except unescaped character:"{" (unicode:"U+007B").
    code:"\c" = Either white space or printable, including new line, that is not interpretable as an Object.
    code:"\n" = Newline.
    code:"*" = Zero or more occurrences.

  Before Structure\:
    code:""

  Structure\:
    code:"\s*\o\s*{\s*\n\c*\n\s*}\s*\n"

  After Structure\:
    code:""

  Example\:
    \# fss-0003
    \# valid comments are ignored.
    "The Object" {
      Does not need to be quoted.
      This: does not need to be delimited.
      \}
    }

    Second {
      Continues until EOS/EOF.
      All white space, including new line (and leading white space) is "part of content."
      \# Valid comments are still ignored.
    }

  Objects would be\:
    1) "The Object"
    2) Second

  Contents would be\:
    1.1) Does not need to be quoted.
         This: does not need to be delimited.
         }
    2.1) Continues until EOS/EOF.
         All white space, including new line (and leading white space) is "part of content."
