{
    "Additional Examples 1": {
        "level": 4,
        "variables": {
            "id": "person",
            "token": "12345",
            "fields": ["id", "name", "picture"],
            "format": "json",
            "q": "URI Templates",
            "page": "5",
            "lang": "en",
            "geocode": ["37.76", "-122.427"],
            "first_name": "John",
            "last.name": "Doe",
            "Some%20Thing": "foo",
            "number": 6,
            "long": 37.76,
            "lat": -122.427,
            "group_id": "12345",
            "query": "PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?book ?who WHERE { ?book dc:creator ?who }",
            "uri": "http://example.org/?uri=http%3A%2F%2Fexample.org%2F",
            "word": "drücken",
            "Stra%C3%9Fe": "Grüner Weg",
            "random": "šöäŸœñê€£¥‡ÑÒÓÔÕÖ×ØÙÚàáâãäåæçÿ",
            "assoc_special_chars": { "šöäŸœñê€£¥‡ÑÒÓÔÕ": "Ö×ØÙÚàáâãäåæçÿ" }
        },
        "testcases": [
            ["{/id*}", "/person"],
            ["{/id*}{?fields,first_name,last.name,token}", "/person?fields=id,name,picture&first_name=John&last.name=Doe&token=12345"],
            ["/search.{format}{?q,geocode,lang,locale,page,result_type}", "/search.json?q=URI%20Templates&geocode=37.76,-122.427&lang=en&page=5"],
            ["/test{/Some%20Thing}", "/test/foo"],
            ["/set{?number}", "/set?number=6"],
            ["/loc{?long,lat}", "/loc?long=37.76&lat=-122.427"],
            ["/base{/group_id,first_name}/pages{/page,lang}{?format,q}", "/base/12345/John/pages/5/en?format=json&q=URI%20Templates"],
            ["/sparql{?query}", "/sparql?query=PREFIX%20dc%3A%20%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%20SELECT%20%3Fbook%20%3Fwho%20WHERE%20%7B%20%3Fbook%20dc%3Acreator%20%3Fwho%20%7D"],
            ["/go{?uri}", "/go?uri=http%3A%2F%2Fexample.org%2F%3Furi%3Dhttp%253A%252F%252Fexample.org%252F"],
            ["/service{?word}", "/service?word=dr%C3%BCcken"],
            ["/lookup{?Stra%C3%9Fe}", "/lookup?Stra%C3%9Fe=Gr%C3%BCner%20Weg"],
            ["{random}", "%C5%A1%C3%B6%C3%A4%C5%B8%C5%93%C3%B1%C3%AA%E2%82%AC%C2%A3%C2%A5%E2%80%A1%C3%91%C3%92%C3%93%C3%94%C3%95%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%BF"],
            ["{?assoc_special_chars*}", "?%C5%A1%C3%B6%C3%A4%C5%B8%C5%93%C3%B1%C3%AA%E2%82%AC%C2%A3%C2%A5%E2%80%A1%C3%91%C3%92%C3%93%C3%94%C3%95=%C3%96%C3%97%C3%98%C3%99%C3%9A%C3%A0%C3%A1%C3%A2%C3%A3%C3%A4%C3%A5%C3%A6%C3%A7%C3%BF"]
        ]
    },
    "Additional Examples 2": {
        "level": 4,
        "variables": {
            "id": ["person", "albums"],
            "token": "12345",
            "fields": ["id", "name", "picture"],
            "format": "atom",
            "q": "URI Templates",
            "page": "10",
            "start": "5",
            "lang": "en",
            "geocode": ["37.76", "-122.427"]
        },
        "testcases": [
            ["{/id*}", "/person/albums"],
            ["{/id*}{?fields,token}", "/person/albums?fields=id,name,picture&token=12345"]
        ]
    },
    "Additional Examples 3: Empty Variables": {
        "variables": {
            "empty_list": [],
            "empty_assoc": {}
        },
        "testcases": [
            ["{/empty_list}", [""]],
            ["{/empty_list*}", [""]],
            ["{?empty_list}", [""]],
            ["{?empty_list*}", [""]],
            ["{?empty_assoc}", [""]],
            ["{?empty_assoc*}", [""]]
        ]
    },
    "Additional Examples 4: Numeric Keys": {
        "variables": {
            "42": "The Answer to the Ultimate Question of Life, the Universe, and Everything",
            "1337": ["leet", "as", "it", "can", "be"],
            "german": {
                "11": "elf",
                "12": "zwölf"
            }
        },
        "testcases": [
            ["{42}", "The%20Answer%20to%20the%20Ultimate%20Question%20of%20Life%2C%20the%20Universe%2C%20and%20Everything"],
            ["{?42}", "?42=The%20Answer%20to%20the%20Ultimate%20Question%20of%20Life%2C%20the%20Universe%2C%20and%20Everything"],
            ["{1337}", "leet,as,it,can,be"],
            ["{?1337*}", "?1337=leet&1337=as&1337=it&1337=can&1337=be"],
            ["{?german*}", ["?11=elf&12=zw%C3%B6lf", "?12=zw%C3%B6lf&11=elf"]]
        ]
    },
    "Additional Examples 5: Explode Combinations": {
        "variables": {
            "id": "admin",
            "token": "12345",
            "tab": "overview",
            "keys": {
                "key1": "val1",
                "key2": "val2"
            }
        },
        "testcases": [
            ["{?id,token,keys*}", [
                    "?id=admin&token=12345&key1=val1&key2=val2",
                    "?id=admin&token=12345&key2=val2&key1=val1"
                ]
            ],
            ["{/id}{?token,keys*}", [
                    "/admin?token=12345&key1=val1&key2=val2",
                    "/admin?token=12345&key2=val2&key1=val1"
                ]
            ],
            ["{?id,token}{&keys*}", [
                    "?id=admin&token=12345&key1=val1&key2=val2",
                    "?id=admin&token=12345&key2=val2&key1=val1"
                ]
            ],
            ["/user{/id}{?token,tab}{&keys*}", [
                    "/user/admin?token=12345&tab=overview&key1=val1&key2=val2",
                    "/user/admin?token=12345&tab=overview&key2=val2&key1=val1"
                ]
            ]
        ]
    },
    "Additional Examples 6: Reserved Expansion": {
        "variables": {
            "id": "admin%2F",
            "not_pct": "%foo",
            "list": ["red%25", "%2Fgreen", "blue "],
            "keys": {
                "key1": "val1%2F",
                "key2": "val2%2F"
            }
        },
        "testcases": [
            ["{+id}", "admin%2F"],
            ["{#id}", "#admin%2F"],
            ["{id}", "admin%252F"],
            ["{+not_pct}", "%25foo"],
            ["{#not_pct}", "#%25foo"],
            ["{not_pct}", "%25foo"],
            ["{+list}", "red%25,%2Fgreen,blue%20"],
            ["{#list}", "#red%25,%2Fgreen,blue%20"],
            ["{list}", "red%2525,%252Fgreen,blue%20"],
            ["{+keys}", "key1,val1%2F,key2,val2%2F"],
            ["{#keys}", "#key1,val1%2F,key2,val2%2F"],
            ["{keys}", "key1,val1%252F,key2,val2%252F"]
        ]
    }
}
