{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://taysta.github.io/TaystJK/assets/data/schema.json","title":"TaystJK console reference entry","type":"object","required":["name","kind","module","modules","renderer","summary","description","derivation","network","origin","modified_by","evidence","confidence","status","source_commit","category","feature","xdocs","menu_entries"],"properties":{"name":{"type":"string","minLength":1},"kind":{"enum":["cvar","command"]},"module":{"type":"string","minLength":1},"modules":{"type":"array","minItems":1,"items":{"type":"string"}},"renderer":{"type":"array","uniqueItems":true,"items":{"enum":["rd-vanilla","rd-rend2","rd-vulkan","rd-dedicated"]}},"summary":{"type":"string","minLength":1},"description":{"type":"string","minLength":1},"derivation":{"enum":["documented","code-trace","mixed"]},"network":{"enum":["client-only","needs-server-support","server-authoritative","feature-flagged"]},"origin":{"type":"object","required":["source","confidence","status","method","notes"],"properties":{"source":{"enum":["basejka","openjk","eternaljk","japro","jk2mv","newjk","rend2","vulkan","taystjk","quake3","unknown"]},"confidence":{"enum":["high","medium","low"]},"status":{"enum":["documented","needs-review","unknown","removed"]}}},"modified_by":{"type":"array","items":{"type":"object","required":["source","change","categories","commit","confidence","method","repository"],"properties":{"source":{"enum":["basejka","openjk","eternaljk","japro","jk2mv","newjk","rend2","vulkan","taystjk","quake3","unknown"]},"change":{"type":"string","minLength":1},"categories":{"type":"array","minItems":1,"uniqueItems":true,"items":{"enum":["registration","behavior-reference","handler"]}},"commit":{"type":["string","null"],"pattern":"^[0-9a-f]{40}$"},"timestamp":{"type":"integer"},"subject":{"type":"string"},"paths":{"type":"array","items":{"type":"string"}},"confidence":{"enum":["high","medium","low"]},"method":{"type":"string","minLength":1},"repository":{"enum":["basejka","openjk","eternaljk","japro","jk2mv","newjk","rend2","vulkan","taystjk","quake3","unknown"]},"pr":{"type":["integer","null"]},"pr_url":{"type":["string","null"]}}}},"evidence":{"type":"array","minItems":1},"confidence":{"enum":["high","medium","low"]},"status":{"enum":["documented","needs-review","unknown","removed"]},"source_commit":{"type":"string","pattern":"^[0-9a-f]{40}$"},"category":{"type":"string","minLength":1},"feature":{"type":["string","null"],"minLength":1},"xdocs":{"type":["object","null"],"properties":{"path":{"type":"string"},"line":{"type":"integer","minimum":1}}},"menu_entries":{"type":"array","items":{"type":"object","required":["path","line"],"properties":{"path":{"type":"string"},"line":{"type":"integer","minimum":1}}}},"default":{"type":["string","null"]},"flags":{"type":"array","items":{"type":"string"}},"value_type":{"enum":["bool","int","float","string","enum","bitmask","color","filepath","unknown"]},"range":{"type":"array"},"values":{"type":"array"},"syntax":{"type":"string","minLength":1},"arguments":{"type":"array"}},"allOf":[{"if":{"properties":{"kind":{"const":"cvar"}}},"then":{"required":["default","flags","value_type","range","values","requires_restart"]}},{"if":{"properties":{"kind":{"const":"command"}}},"then":{"required":["syntax","arguments","gating","handlers"]}}]}
