{
  "booleans" : {
      "trueVal" : true,
      "trueValAgain" : ${booleans.trueVal},
      "falseVal" : false,
      "falseValAgain" : ${booleans.falseVal},
      "on" : "on",
      "off" : "off"
  }

    "numbers" : {
       "byteVal" : "1",
       "byteObj" : ${numbers.byteVal},
       "shortVal" : "2",
       "shortObj" : ${numbers.shortVal},
       "intVal" : "3",
       "intObj" : ${numbers.intVal},
       "longVal" : "4",
       "longObj" : ${numbers.longVal},
       "doubleVal" : "1.0",
       "doubleObj" : ${numbers.doubleVal}
    }
//
    "strings" : {
        "abcd" : "abcd",
        "abcd-again" : ${strings.a}${strings.b}${strings.c}${strings.d},
        "a" : "a",
        "b" : "b",
        "c" : "c",
        "d" : "d",
        "concatenated" : null bar 42 baz true 3.14 hi,
        "double" : "3.14",
        "number" : "57",
        "null" : "null",
        "true" : "true",
        "yes" : "yes",
        "false" : "false",
        "no" : "no"
    },

    "arrays" : {
        "empty" : [],
        "ofInt" : [1, 2, 3],
        "ofString" : [ ${strings.a}, ${strings.b}, ${strings.c} ],
        "of-double" : [3.14, 4.14, 5.14],
        "of-long" : { "1" : 32, "2" : 42, "3" : 52 }, // object-to-list conversion
        "ofNull" : [null, null, null],
        "ofBoolean" : [true, false],
        "ofArray" : [${arrays.ofString}, ${arrays.ofString}, ${arrays.ofString}],
        "ofObject" : [${numbers}, ${booleans}, ${strings}],
        "ofConfig" : [${numbers}, ${booleans}, ${strings}],
        "ofConfigObject" : [${numbers}, ${booleans}, ${strings}],
        "ofConfigValue" : [1, 2, "a"],
        "ofDuration" : [1, 2h, 3 days],
        "ofMemorySize" : [1024, 1M, 1G],
        "ofStringBean" : [
                {
                        abcd : "testAbcdOne"
                        yes : "testYesOne"
                },
                {
                        abcd : "testAbcdTwo"
                        yes : "testYesTwo"
                }
        ]
    },
    "bytes" : {
        "kilobyte" : "1kB",
        "kibibyte" : "1K",
        "thousandBytes" : "1000B"
    },
    "durations" : {
        "second" : 1s,
        "secondAsNumber" : 1000,
        "halfSecond" : 0.5s
    },
    "validation" : {
      "shouldBeInt" : true,
      "should-be-boolean" : 42,
      "should-be-list" : "hello"
    },
    "preferCamelNames" : {
      "foo-bar" : "no",
      "fooBar" : "yes",
      "baz-bar" : "no",
      "bazBar" : "yes"
    },
    "values" : {
      "obj" : 42,
      "config" : ${strings},
      "configObj" : ${numbers},
      "configValue" : "hello world",
      "list" : [1,2,3],
      "unwrappedMap" : ${validation}
    },
    "enums" : {
      "problem" : "P1",
      "solutions" : ["S1", "S3"]
    },
    "objects" : {
      "valueObject": {
        "mandatoryValue": "notNull"
      }
    },
    "sets" : {
      "empty" : [],
      "ofInt" : [1, 2, 3, 2, 3],
      "ofString" : [ ${strings.a}, ${strings.b}, ${strings.c} ],
      "of-double" : [3.14, 4.14, 4.14, 5.14],
      "of-long" : { "1" : 32, "2" : 42, "3" : 52 }, // object-to-list conversion
      "ofNull" : [null, null, null],
      "ofBoolean" : [true, false, false],
      "ofArray" : [${arrays.ofString}, ${arrays.ofString}, ${arrays.ofString}],
      "ofObject" : [${numbers}, ${booleans}, ${strings}],
      "ofConfig" : [${numbers}, ${booleans}, ${strings}],
      "ofConfigObject" : [${numbers}, ${booleans}, ${strings}],
      "ofConfigValue" : [1, 2, "a"],
      "ofDuration" : [1, 2h, 3 days],
      "ofMemorySize" : [1024, 1M, 1G],
      "ofStringBean" : [
        {
          abcd : "testAbcdOne"
          yes : "testYesOne"
        },
        {
          abcd : "testAbcdTwo"
          yes : "testYesTwo"
        }
      ]
    }
}
