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

Featureless Settings Specification: 0002 - Basic 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.
  A colon character:":" (unicode:"U+003A") followed by any white space until a new line terminates a valid Object.
  White space after the last printable character of the Object but before the colon character:":" (unicode:"U+003A") is not considered part of the Object.
  Non-white space printable characters may not follow the colon 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 the next valid Object is found.
  Any Content that could be interpreted as a valid Object must have the colon delimited.

  There is no single-quote (unicode:"U+0027"), double-quote (unicode:"U+0022"), or grave (unicode:"U+0060") delimitation in this specification.
  Only a colon character:":" (unicode:"U+003A") that would result in a valid Object can be delimited.

  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+003A").
    code:"\c" = Either white space or printable, including new line, that not interpretable as an Object.
    code:"\n" = New line.
    code:"*" = Zero or more occurrences.

  Before Structure\:
    code:""

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

  After Structure\:
    code:""

  Example\:
    \# fss-0002
    \# valid comments are ignored.
    "The Object"\:
      Does not need to be quoted.
      This: does not need to be delimited.
      This Does\\\:
    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.
         This Does\:
    2.1) Continues until EOS/EOF.
         All white space, including new line (and leading white space) is "part of content."
