diff options
| author | Ahmed <git@gumx.cc> | 2026-06-14 01:49:48 +0300 |
|---|---|---|
| committer | Ahmed <git@gumx.cc> | 2026-06-14 01:49:48 +0300 |
| commit | 41f8d3025f041aaab98fcc3511cb6ec2198f76a7 (patch) | |
| tree | c147d5a547c3e2d7b49546157f324cbd80e88c48 /spec/tests/cases.json | |
init: vibed
Diffstat (limited to 'spec/tests/cases.json')
| -rw-r--r-- | spec/tests/cases.json | 780 |
1 files changed, 780 insertions, 0 deletions
diff --git a/spec/tests/cases.json b/spec/tests/cases.json new file mode 100644 index 0000000..d27976f --- /dev/null +++ b/spec/tests/cases.json @@ -0,0 +1,780 @@ +{ + "_doc": "UGI test cases. Each case has a URI, its equivalent block, and the expected decoded fields. All derived from ugi_registry_v0.json.", + + "cases": [ + + { + "id": "minimal", + "description": "Minimum valid UGI: handle + mandatory geek field, single domain", + "uri": "ugi:0@min:gcs", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @min Gcs\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "min", + "fields": { + "g": { "type": "special", "domains": [{"id": "cs", "name": "Computer Science", "paid": false}] } + } + } + }, + + { + "id": "minimal_paid_geek", + "description": "Single paid geek domain", + "uri": "ugi:0@dev:gcs$", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @dev Gcs$\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "dev", + "fields": { + "g": { "type": "special", "domains": [{"id": "cs", "name": "Computer Science", "paid": true}] } + } + } + }, + + { + "id": "geek_multi_domain", + "description": "Multiple geek domains, one paid", + "uri": "ugi:0@alice:gcs$/ai/wr", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @alice Gcs$/ai/wr\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "alice", + "fields": { + "g": { "type": "special", "domains": [ + {"id": "cs", "name": "Computer Science", "paid": true}, + {"id": "ai", "name": "Artificial Intelligence", "paid": false}, + {"id": "wr", "name": "Writing", "paid": false} + ]} + } + } + }, + + { + "id": "geek_custom_domain", + "description": "Geek field with custom ~domain", + "uri": "ugi:0@bob:gcs/~fermenting", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @bob Gcs/~fermenting\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "bob", + "fields": { + "g": { "type": "special", "domains": [ + {"id": "cs", "name": "Computer Science", "paid": false}, + {"id": "~fermenting", "name": "~fermenting", "paid": false} + ]} + } + } + }, + + { + "id": "geek_paid_and_custom", + "description": "Geek: paid domain + custom domain", + "uri": "ugi:0@chef:gfd$/~sourdough", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @chef Gfd$/~sourdough\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "chef", + "fields": { + "g": { "type": "special", "domains": [ + {"id": "fd", "name": "Food Science", "paid": true}, + {"id": "~sourdough", "name": "~sourdough", "paid": false} + ]} + } + } + }, + + { + "id": "version_with_revision", + "description": "Version with revision number", + "uri": "ugi:0/3@rev:gcs", + "block": "------- BEGIN UGI BLOCK -------\nv:0/3 @rev Gcs\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0/3", + "handle": "rev", + "fields": { + "g": { "type": "special", "domains": [{"id": "cs", "name": "Computer Science", "paid": false}] } + } + } + }, + + { + "id": "direct_no_modifiers", + "description": "Direct field with no modifiers (age: no $, no +, no /)", + "uri": "ugi:0@t1:gcs,a4", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t1 Gcs\nA4\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t1", + "fields": { + "g": { "type": "special", "domains": [{"id": "cs", "name": "Computer Science", "paid": false}] }, + "a": { "type": "direct", "value": 4, "label": "25-34" } + } + } + }, + + { + "id": "direct_all_values", + "description": "Direct field at each scale extreme: age 0 and age 7", + "uri_0": "ugi:0@kid:gcs,a0", + "uri_7": "ugi:0@elder:gcs,a7", + "decoded_0": { "a": { "value": 0, "label": "Under 10" } }, + "decoded_7": { "a": { "value": 7, "label": "65+" } } + }, + + { + "id": "direct_alternative", + "description": "Direct field with / alternative (clothing: c3/6)", + "uri": "ugi:0@t2:gcs,c3/6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t2 Gcs\nC3/6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t2", + "fields": { + "c": { "type": "direct", "value": 3, "label": "Jeans & tee", "alt_value": 6, "alt_label": "Formal" } + } + } + }, + + { + "id": "direct_paid", + "description": "Direct field with $ paid modifier (food: f5$)", + "uri": "ugi:0@t3:gcs,f5$", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t3 Gcs\nF5$\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t3", + "fields": { + "f": { "type": "direct", "value": 5, "label": "Experiments", "paid": true } + } + } + }, + + { + "id": "direct_aspire", + "description": "Direct field with +N aspire modifier (education: e4+6)", + "uri": "ugi:0@t4:gcs,e4+6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t4 Gcs\nE4+6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t4", + "fields": { + "e": { "type": "direct", "value": 4, "label": "Bachelors", "aspire": 6 } + } + } + }, + + { + "id": "direct_paid_aspire", + "description": "Direct field with both $ and +N (hardware: w5$+7)", + "uri": "ugi:0@t5:gcs,w5$+7", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t5 Gcs\nW5$+7\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t5", + "fields": { + "w": { "type": "direct", "value": 5, "label": "Comfortable", "paid": true, "aspire": 7 } + } + } + }, + + { + "id": "direct_alt_and_aspire", + "description": "Direct field with / alternative and +N aspire (security: q3/6+7)", + "uri": "ugi:0@t6:gcs,q3/6+7", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t6 Gcs\nQ3/6+7\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t6", + "fields": { + "q": { "type": "direct", "value": 3, "label": "Basic awareness", "alt_value": 6, "alt_label": "Encrypts everything", "aspire": 7 } + } + } + }, + + { + "id": "direct_all_three_modifiers", + "description": "Direct field with $, /, and + (security: q5$/6+7 — paid, fluctuates, aspires)", + "uri": "ugi:0@t6b:gcs,q5$/6+7", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t6b Gcs\nQ5$/6+7\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t6b", + "fields": { + "q": { "type": "direct", "value": 5, "label": "2FA everywhere", "paid": true, "alt_value": 6, "alt_label": "Encrypts everything", "aspire": 7 } + } + } + }, + + { + "id": "special_build", + "description": "Build field: height/width", + "uri": "ugi:0@t7:gcs,b6/3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t7 Gcs\nB6/3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t7", + "fields": { + "b": { "type": "special", "dimensions": {"height": {"value": 6, "label": "Tall"}, "width": {"value": 3, "label": "Below average"}} } + } + } + }, + + { + "id": "special_build_extremes", + "description": "Build field at extremes: b0/0 and b7/7", + "uri_min": "ugi:0@tiny:gcs,b0/0", + "uri_max": "ugi:0@huge:gcs,b7/7", + "decoded_min": { "b": { "dimensions": {"height": {"value": 0, "label": "Extremely short"}, "width": {"value": 0, "label": "Extremely thin"}} } }, + "decoded_max": { "b": { "dimensions": {"height": {"value": 7, "label": "Extremely tall"}, "width": {"value": 7, "label": "Extremely broad"}} } } + }, + + { + "id": "special_politics", + "description": "Politics field: social/economic", + "uri": "ugi:0@t8:gcs,v5/3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t8 Gcs\nV5/3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t8", + "fields": { + "v": { "type": "special", "dimensions": {"social": {"value": 5, "label": "Center-left"}, "economic": {"value": 3, "label": "Center-right"}} } + } + } + }, + + { + "id": "special_politics_extremes", + "description": "Politics at extremes: v0/0 and v7/7", + "uri_min": "ugi:0@auth:gcs,v0/0", + "uri_max": "ugi:0@lib:gcs,v7/7", + "decoded_min": { "v": { "dimensions": {"social": {"value": 0, "label": "Far-right authoritarian"}, "economic": {"value": 0, "label": "Unregulated capitalism"}} } }, + "decoded_max": { "v": { "dimensions": {"social": {"value": 7, "label": "Far-left libertarian"}, "economic": {"value": 7, "label": "Full socialism"}} } } + }, + + { + "id": "multi_single_subid", + "description": "Multi field with one sub-ID (programming: ppy6)", + "uri": "ugi:0@t9:gcs,ppy6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t9 Gcs\nPpy6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t9", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "py", "name": "Python", "value": 6, "label": "Advanced / daily"} + ]} + } + } + }, + + { + "id": "multi_merged_subids", + "description": "Multi field with multiple sub-IDs merged in URI, expanded in block", + "uri": "ugi:0@t10:gcs,ppy6rs5js4", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t10 Gcs\nPpy6 Prs5 Pjs4\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t10", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "py", "name": "Python", "value": 6, "label": "Advanced / daily"}, + {"sub_id": "rs", "name": "Rust", "value": 5, "label": "Competent"}, + {"sub_id": "js", "name": "JavaScript", "value": 4, "label": "Average"} + ]} + } + } + }, + + { + "id": "multi_paid_subid", + "description": "Multi field with $ on a sub-ID (programming: ppy6$)", + "uri": "ugi:0@t11:gcs,ppy6$", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t11 Gcs\nPpy6$\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t11", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "py", "name": "Python", "value": 6, "label": "Advanced / daily", "paid": true} + ]} + } + } + }, + + { + "id": "multi_aspire_subid", + "description": "Multi field with +N on a sub-ID (programming: prs4+6)", + "uri": "ugi:0@t12:gcs,prs4+6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t12 Gcs\nPrs4+6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t12", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "rs", "name": "Rust", "value": 4, "label": "Average", "aspire": 6} + ]} + } + } + }, + + { + "id": "multi_paid_aspire_subid", + "description": "Multi field with $+N combined on a sub-ID (programming: pjs5$+7)", + "uri": "ugi:0@t13:gcs,pjs5$+7", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t13 Gcs\nPjs5$+7\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t13", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "js", "name": "JavaScript", "value": 5, "label": "Competent", "paid": true, "aspire": 7} + ]} + } + } + }, + + { + "id": "multi_mixed_modifiers", + "description": "Multi field with different modifiers on different sub-IDs", + "uri": "ugi:0@t14:gcs,ppy7$rs5+7js6$+7go3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t14 Gcs\nPpy7$ Prs5+7 Pjs6$+7 Pgo3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t14", + "fields": { + "p": { "type": "multi", "entries": [ + {"sub_id": "py", "name": "Python", "value": 7, "label": "Master / creator", "paid": true}, + {"sub_id": "rs", "name": "Rust", "value": 5, "label": "Competent", "aspire": 7}, + {"sub_id": "js", "name": "JavaScript", "value": 6, "label": "Advanced / daily", "paid": true, "aspire": 7}, + {"sub_id": "go", "name": "Go", "value": 3, "label": "Beginner"} + ]} + } + } + }, + + { + "id": "multi_custom_subid", + "description": "Multi field with custom ~sub-ID (music: m~synthwave6)", + "uri": "ugi:0@t15:gcs,m~synthwave6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t15 Gcs\nM~synthwave6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t15", + "fields": { + "m": { "type": "multi", "entries": [ + {"sub_id": "~synthwave", "name": "~synthwave", "value": 6, "label": "Enthusiast"} + ]} + } + } + }, + + { + "id": "multi_mixed_and_custom", + "description": "Multi field with known + custom sub-IDs (music: mrk6~synthwave7el5)", + "uri": "ugi:0@t16:gcs,mrk6~synthwave7el5", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t16 Gcs\nMrk6 M~synthwave7 Mel5\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t16", + "fields": { + "m": { "type": "multi", "entries": [ + {"sub_id": "rk", "name": "Rock", "value": 6, "label": "Enthusiast"}, + {"sub_id": "~synthwave", "name": "~synthwave", "value": 7, "label": "Life-defining"}, + {"sub_id": "el", "name": "Electronic", "value": 5, "label": "Enjoy"} + ]} + } + } + }, + + { + "id": "multi_grouped_subids", + "description": "Multi field with sub-IDs from sub_id_groups (gaming: jrp7pc6dn5)", + "uri": "ugi:0@t17:gcs,jrp7pc6dn5", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t17 Gcs\nJrp7 Jpc6 Jdn5\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t17", + "fields": { + "j": { "type": "multi", "entries": [ + {"sub_id": "rp", "name": "RPG", "value": 7, "label": "Life-defining"}, + {"sub_id": "pc", "name": "PC", "value": 6, "label": "Enthusiast"}, + {"sub_id": "dn", "name": "D&D", "value": 5, "label": "Enjoy"} + ]} + } + } + }, + + { + "id": "multi_1char_subid", + "description": "Multi field with 1-char sub-IDs (hair: hh4f6) and single-char sub-IDs (programming: pc5 — 'c' is 1-char)", + "uri": "ugi:0@t18:gcs,hh4f6,pc5", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t18 Gcs\nHh4 Hf6\nPc5\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t18", + "fields": { + "h": { "type": "multi", "entries": [ + {"sub_id": "h", "name": "Head", "value": 4, "label": "Average"}, + {"sub_id": "f", "name": "Face / beard", "value": 6, "label": "Impressive"} + ]}, + "p": { "type": "multi", "entries": [ + {"sub_id": "c", "name": "C", "value": 5, "label": "Competent"} + ]} + } + } + }, + + { + "id": "multi_3char_subid", + "description": "Multi field with 3-char sub-ID from sub_id_groups (OS: oxsl5 — 'xsl' is Slackware)", + "uri": "ugi:0@t19:gcs,oxsl5", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t19 Gcs\nOxsl5\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t19", + "fields": { + "o": { "type": "multi", "entries": [ + {"sub_id": "xsl", "name": "Slackware", "value": 5, "label": "Competent"} + ]} + } + } + }, + + { + "id": "single_type", + "description": "Single-type field: exactly one sub-ID + digit (religion: ris6)", + "uri": "ugi:0@t20:gcs,ris6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t20 Gcs\nRis6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t20", + "fields": { + "r": { "type": "single", "entries": [ + {"sub_id": "is", "name": "Islam", "value": 6, "label": "Devout"} + ]} + } + } + }, + + { + "id": "single_type_atheist", + "description": "Single-type at extreme: rat0 (atheist, hostile to religion)", + "uri": "ugi:0@t21:gcs,rat0", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t21 Gcs\nRat0\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t21", + "fields": { + "r": { "type": "single", "entries": [ + {"sub_id": "at", "name": "Atheist", "value": 0, "label": "Hostile"} + ]} + } + } + }, + + { + "id": "languages_basic", + "description": "Languages field: ISO 639-1 codes + ratings (multi with 2-char fixed sub-IDs)", + "uri": "ugi:0@t22:gcs,lar7en6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t22 Gcs\nLar7 Len6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t22", + "fields": { + "l": { "type": "multi", "entries": [ + {"sub_id": "ar", "name": "Arabic", "value": 7, "label": "Native"}, + {"sub_id": "en", "name": "English", "value": 6, "label": "Fluent"} + ]} + } + } + }, + + { + "id": "languages_with_modifiers", + "description": "Languages with $ and + modifiers", + "uri": "ugi:0@t23:gcs,lar7$en6de3+5", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t23 Gcs\nLar7$ Len6 Lde3+5\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t23", + "fields": { + "l": { "type": "multi", "entries": [ + {"sub_id": "ar", "name": "Arabic", "value": 7, "label": "Native", "paid": true}, + {"sub_id": "en", "name": "English", "value": 6, "label": "Fluent"}, + {"sub_id": "de", "name": "German", "value": 3, "label": "Beginner", "aspire": 5} + ]} + } + } + }, + + { + "id": "multi_os_grouped", + "description": "OS field with sub-IDs from multiple groups (linux + bsd + windows)", + "uri": "ugi:0@t24:gcs,oxa7$fb5we3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t24 Gcs\nOxa7$ Ofb5 Owe3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t24", + "fields": { + "o": { "type": "multi", "entries": [ + {"sub_id": "xa", "name": "Arch", "value": 7, "label": "Master / creator", "paid": true}, + {"sub_id": "fb", "name": "FreeBSD", "value": 5, "label": "Competent"}, + {"sub_id": "we", "name": "Windows 11", "value": 3, "label": "Beginner"} + ]} + } + } + }, + + { + "id": "editor_with_aspire", + "description": "Editor field with aspire modifier (dvi7em3+6)", + "uri": "ugi:0@t25:gcs,dvi7em3+6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t25 Gcs\nDvi7 Dem3+6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t25", + "fields": { + "d": { "type": "multi", "entries": [ + {"sub_id": "vi", "name": "Vim / Neovim", "value": 7, "label": "Master / creator"}, + {"sub_id": "em", "name": "Emacs", "value": 3, "label": "Beginner", "aspire": 6} + ]} + } + } + }, + + { + "id": "hair_custom_scale", + "description": "Hair field uses custom scale_labels (hh5f7b3)", + "uri": "ugi:0@t26:gcs,hh5f7b3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t26 Gcs\nHh5 Hf7 Hb3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t26", + "fields": { + "h": { "type": "multi", "entries": [ + {"sub_id": "h", "name": "Head", "value": 5, "label": "Above average"}, + {"sub_id": "f", "name": "Face / beard", "value": 7, "label": "Sasquatch"}, + {"sub_id": "b", "name": "Brows", "value": 3, "label": "Below average"} + ]} + } + } + }, + + { + "id": "comics_enthusiasm_scale", + "description": "Comics field uses global enthusiasm scale (xxk7dc0)", + "uri": "ugi:0@t27:gcs,xxk7dc0", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t27 Gcs\nXxk7 Xdc0\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t27", + "fields": { + "x": { "type": "multi", "entries": [ + {"sub_id": "xk", "name": "XKCD", "value": 7, "label": "Life-defining"}, + {"sub_id": "dc", "name": "DC Comics", "value": 0, "label": "Despise"} + ]} + } + } + }, + + { + "id": "tv_grouped_subids", + "description": "TV field with sub-IDs from different groups (scifi + fantasy + other)", + "uri": "ugi:0@t28:gcs,tst7go5mr6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t28 Gcs\nTst7 Tgo5 Tmr6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t28", + "fields": { + "t": { "type": "multi", "entries": [ + {"sub_id": "st", "name": "Star Trek", "value": 7, "label": "Life-defining"}, + {"sub_id": "go", "name": "Game of Thrones", "value": 5, "label": "Enjoy"}, + {"sub_id": "mr", "name": "Mr. Robot", "value": 6, "label": "Enthusiast"} + ]} + } + } + }, + + { + "id": "gaming_paid_aspire", + "description": "Gaming with paid and aspire modifiers on different entries (jrp7$pc6st4+6)", + "uri": "ugi:0@t29:gcs,jrp7$pc6st4+6", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @t29 Gcs\nJrp7$ Jpc6 Jst4+6\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "t29", + "fields": { + "j": { "type": "multi", "entries": [ + {"sub_id": "rp", "name": "RPG", "value": 7, "label": "Life-defining", "paid": true}, + {"sub_id": "pc", "name": "PC", "value": 6, "label": "Enthusiast"}, + {"sub_id": "st", "name": "Strategy", "value": 4, "label": "Take or leave", "aspire": 6} + ]} + } + } + }, + + { + "id": "all_direct_fields", + "description": "Every direct-type field at once", + "uri": "ugi:0@full:gcs,a4,c3,e5,f4,i5,k6,q4,s6,w5,y4,z3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @full Gcs\nA4 E5\nC3\nW5 Q4\nI5\nK6\nS6 Y4 F4 Z3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "full", + "fields": { + "a": { "type": "direct", "value": 4, "label": "25-34" }, + "c": { "type": "direct", "value": 3, "label": "Jeans & tee" }, + "e": { "type": "direct", "value": 5, "label": "Masters" }, + "f": { "type": "direct", "value": 4, "label": "Home cook" }, + "i": { "type": "direct", "value": 5, "label": "Positive" }, + "k": { "type": "direct", "value": 6, "label": "Avid" }, + "q": { "type": "direct", "value": 4, "label": "Password manager" }, + "s": { "type": "direct", "value": 6, "label": "Partnered" }, + "w": { "type": "direct", "value": 5, "label": "Comfortable" }, + "y": { "type": "direct", "value": 4, "label": "Some exercise" }, + "z": { "type": "direct", "value": 3, "label": "Handy" } + } + } + }, + + { + "id": "spec_example_jdoe", + "description": "Full example from spec: jdoe full-stack developer", + "uri": "ugi:0@jdoe:gcs$/dev,a4,b5/4,c3,hh4f5m4,e4,len7,oxa6we5,ppy6$js6$ts5rs4+6,dvs6,w5,q4,i5,v5/4,rag4,tst5ex7,k5,xxk6,jst5pc6,mrk5in4,s6,y4,f4,z3", + "block": "------- BEGIN UGI BLOCK -------\nv:0 @jdoe Gcs$/dev\nA4 E4 Len7\nB5/4 C3 Hh4 Hf5 Hm4\nOxa6 Owe5 Ppy6$ Pjs6$ Pts5 Prs4+6 Dvs6 W5 Q4\nI5 V5/4 Rag4\nTst5 Tex7 K5 Xxk6 Jst5 Jpc6 Mrk5 Min4\nS6 Y4 F4 Z3\n-------- END UGI BLOCK --------", + "decoded": { + "version": "0", + "handle": "jdoe", + "fields": { + "g": { "type": "special", "domains": [ + {"id": "cs", "name": "Computer Science", "paid": true}, + {"id": "dev", "name": "dev", "paid": false} + ]}, + "a": { "type": "direct", "value": 4, "label": "25-34" }, + "b": { "type": "special", "dimensions": {"height": {"value": 5, "label": "Above average"}, "width": {"value": 4, "label": "Average"}} }, + "c": { "type": "direct", "value": 3, "label": "Jeans & tee" }, + "h": { "type": "multi", "entries": [ + {"sub_id": "h", "name": "Head", "value": 4, "label": "Average"}, + {"sub_id": "f", "name": "Face / beard", "value": 5, "label": "Above average"}, + {"sub_id": "m", "name": "Mustache", "value": 4, "label": "Average"} + ]}, + "e": { "type": "direct", "value": 4, "label": "Bachelors" }, + "l": { "type": "multi", "entries": [ + {"sub_id": "en", "name": "English", "value": 7, "label": "Native"} + ]}, + "o": { "type": "multi", "entries": [ + {"sub_id": "xa", "name": "Arch", "value": 6, "label": "Advanced / daily"}, + {"sub_id": "we", "name": "Windows 11", "value": 5, "label": "Competent"} + ]}, + "p": { "type": "multi", "entries": [ + {"sub_id": "py", "name": "Python", "value": 6, "label": "Advanced / daily", "paid": true}, + {"sub_id": "js", "name": "JavaScript", "value": 6, "label": "Advanced / daily", "paid": true}, + {"sub_id": "ts", "name": "TypeScript", "value": 5, "label": "Competent"}, + {"sub_id": "rs", "name": "Rust", "value": 4, "label": "Average", "aspire": 6} + ]}, + "d": { "type": "multi", "entries": [ + {"sub_id": "vs", "name": "VS Code", "value": 6, "label": "Advanced / daily"} + ]}, + "w": { "type": "direct", "value": 5, "label": "Comfortable" }, + "q": { "type": "direct", "value": 4, "label": "Password manager" }, + "i": { "type": "direct", "value": 5, "label": "Positive" }, + "v": { "type": "special", "dimensions": {"social": {"value": 5, "label": "Center-left"}, "economic": {"value": 4, "label": "Mixed economy"}} }, + "r": { "type": "single", "entries": [ + {"sub_id": "ag", "name": "Agnostic", "value": 4, "label": "Cultural"} + ]}, + "t": { "type": "multi", "entries": [ + {"sub_id": "st", "name": "Star Trek", "value": 5, "label": "Enjoy"}, + {"sub_id": "ex", "name": "Expanse", "value": 7, "label": "Life-defining"} + ]}, + "k": { "type": "direct", "value": 5, "label": "Regular" }, + "x": { "type": "multi", "entries": [ + {"sub_id": "xk", "name": "XKCD", "value": 6, "label": "Enthusiast"} + ]}, + "j": { "type": "multi", "entries": [ + {"sub_id": "st", "name": "Strategy", "value": 5, "label": "Enjoy"}, + {"sub_id": "pc", "name": "PC", "value": 6, "label": "Enthusiast"} + ]}, + "m": { "type": "multi", "entries": [ + {"sub_id": "rk", "name": "Rock", "value": 5, "label": "Enjoy"}, + {"sub_id": "in", "name": "Indie", "value": 4, "label": "Take or leave"} + ]}, + "s": { "type": "direct", "value": 6, "label": "Partnered" }, + "y": { "type": "direct", "value": 4, "label": "Some exercise" }, + "f": { "type": "direct", "value": 4, "label": "Home cook" }, + "z": { "type": "direct", "value": 3, "label": "Handy" } + } + } + }, + + { + "id": "spec_example_hax0r", + "description": "Full example from spec: hax0r hardware hacker with version/revision", + "uri": "ugi:0/3@hax0r:gee$/rb/dy~solder,a5,b6/5,c2,hh3f6+7m5,e4,lja7en5,oxg7fb5,pc5ba6as7$,dem5,w7$,q6,i2,v3/3,rbu5,tbb6ff7,k5,xxk6dl5,jre7pc6bg5,mmt7pk6,s3,y5,f4,z7$", + "decoded": { + "version": "0/3", + "handle": "hax0r", + "fields": { + "g": { "type": "special", "domains": [ + {"id": "ee", "name": "Electrical Eng.", "paid": true}, + {"id": "rb", "name": "Robotics", "paid": false}, + {"id": "dy~solder", "name": "dy~solder", "paid": false} + ]}, + "a": { "type": "direct", "value": 5, "label": "35-49" }, + "b": { "type": "special", "dimensions": {"height": {"value": 6, "label": "Tall"}, "width": {"value": 5, "label": "Above average"}} }, + "c": { "type": "direct", "value": 2, "label": "Political tees" }, + "h": { "type": "multi", "entries": [ + {"sub_id": "h", "name": "Head", "value": 3, "label": "Below average"}, + {"sub_id": "f", "name": "Face / beard", "value": 6, "label": "Impressive", "aspire": 7}, + {"sub_id": "m", "name": "Mustache", "value": 5, "label": "Above average"} + ]}, + "e": { "type": "direct", "value": 4, "label": "Bachelors" }, + "l": { "type": "multi", "entries": [ + {"sub_id": "ja", "name": "Japanese", "value": 7, "label": "Native"}, + {"sub_id": "en", "name": "English", "value": 5, "label": "Proficient"} + ]}, + "o": { "type": "multi", "entries": [ + {"sub_id": "xg", "name": "Gentoo", "value": 7, "label": "Master / creator"}, + {"sub_id": "fb", "name": "FreeBSD", "value": 5, "label": "Competent"} + ]}, + "p": { "type": "multi", "entries": [ + {"sub_id": "c", "name": "C", "value": 5, "label": "Competent"}, + {"sub_id": "ba", "name": "Bash", "value": 6, "label": "Advanced / daily"}, + {"sub_id": "as", "name": "Assembly", "value": 7, "label": "Master / creator", "paid": true} + ]}, + "d": { "type": "multi", "entries": [ + {"sub_id": "em", "name": "Emacs", "value": 5, "label": "Competent"} + ]}, + "w": { "type": "direct", "value": 7, "label": "Builds everything", "paid": true }, + "q": { "type": "direct", "value": 6, "label": "Encrypts everything" }, + "i": { "type": "direct", "value": 2, "label": "Skeptical" }, + "v": { "type": "special", "dimensions": {"social": {"value": 3, "label": "Center-right"}, "economic": {"value": 3, "label": "Center-right"}} }, + "r": { "type": "single", "entries": [ + {"sub_id": "bu", "name": "Buddhist", "value": 5, "label": "Moderate"} + ]}, + "t": { "type": "multi", "entries": [ + {"sub_id": "bb", "name": "Babylon 5", "value": 6, "label": "Enthusiast"}, + {"sub_id": "ff", "name": "Firefly", "value": 7, "label": "Life-defining"} + ]}, + "k": { "type": "direct", "value": 5, "label": "Regular" }, + "x": { "type": "multi", "entries": [ + {"sub_id": "xk", "name": "XKCD", "value": 6, "label": "Enthusiast"}, + {"sub_id": "dl", "name": "Dilbert", "value": 5, "label": "Enjoy"} + ]}, + "j": { "type": "multi", "entries": [ + {"sub_id": "re", "name": "Retro", "value": 7, "label": "Life-defining"}, + {"sub_id": "pc", "name": "PC", "value": 6, "label": "Enthusiast"}, + {"sub_id": "bg", "name": "Board games", "value": 5, "label": "Enjoy"} + ]}, + "m": { "type": "multi", "entries": [ + {"sub_id": "mt", "name": "Metal", "value": 7, "label": "Life-defining"}, + {"sub_id": "pk", "name": "Punk", "value": 6, "label": "Enthusiast"} + ]}, + "s": { "type": "direct", "value": 3, "label": "Complicated" }, + "y": { "type": "direct", "value": 5, "label": "Regular workouts" }, + "f": { "type": "direct", "value": 4, "label": "Home cook" }, + "z": { "type": "direct", "value": 7, "label": "Built my house", "paid": true } + } + } + } + ] +} |
