{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://os2ai.com/schema/case-1.0.json","title":"CaseForge Case (SSOT)","type":"object","additionalProperties":false,"required":["schema_version","slug","title","summary","entities","relations","timeline","evidence","issues","opinions","decisions","sources"],"properties":{"schema_version":{"const":"1.0"},"slug":{"type":"string","pattern":"^[a-z0-9][a-z0-9\\-]{1,62}$"},"title":{"type":"string","maxLength":300},"title_en":{"type":"string","maxLength":300},"summary":{"type":"string","maxLength":20000},"summary_en":{"type":"string","maxLength":20000},"overview":{"type":"string","maxLength":20000},"status":{"enum":["open","pending","closed","archived"]},"tags":{"type":"array","items":{"type":"string","maxLength":300},"maxItems":50},"disclaimer":{"type":"string","maxLength":20000},"is_demo":{"type":"boolean"},"doc_type":{"enum":["case","whitepaper"]},"entities":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["name","type"],"additionalProperties":false,"properties":{"name":{"type":"string","maxLength":300},"type":{"enum":["person","org","court","agency","document","place","other"]},"role":{"type":"string","maxLength":300},"description":{"type":"string","maxLength":20000},"aliases":{"type":"array","items":{"type":"string","maxLength":300}}}},"maxProperties":2000},"relations":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["from","to","type"],"additionalProperties":false,"properties":{"from":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"to":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"type":{"type":"string","maxLength":300},"label":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":20000}}},"maxProperties":2000},"timeline":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["date","title"],"additionalProperties":false,"properties":{"date":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$|^$"},"title":{"type":"string","maxLength":300},"detail":{"type":"string","maxLength":20000},"refs":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"}}}},"maxProperties":2000},"evidence":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["title"],"additionalProperties":false,"properties":{"title":{"type":"string","maxLength":300},"kind":{"type":"string","maxLength":300},"date":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$|^$"},"description":{"type":"string","maxLength":20000},"url":{"type":"string","maxLength":300},"status":{"enum":["have","missing","requested","disputed"]},"refs":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"}}}},"maxProperties":2000},"issues":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["title"],"additionalProperties":false,"properties":{"title":{"type":"string","maxLength":300},"description":{"type":"string","maxLength":20000},"status":{"enum":["open","resolved","parked"]},"positions":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"string","maxLength":20000}}}},"maxProperties":2000},"opinions":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["author","text"],"additionalProperties":false,"properties":{"author":{"type":"string","maxLength":300},"role":{"type":"string","maxLength":300},"text":{"type":"string","maxLength":20000},"date":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$|^$"},"issue":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"}}},"maxProperties":2000},"decisions":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["title","text"],"additionalProperties":false,"properties":{"title":{"type":"string","maxLength":300},"text":{"type":"string","maxLength":20000},"date":{"type":"string","pattern":"^\\d{4}(-\\d{2}(-\\d{2})?)?$|^$"},"status":{"enum":["draft","final"]},"verdict":{"type":"string","maxLength":300},"by":{"type":"string","maxLength":300}}},"maxProperties":2000},"sources":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["title"],"additionalProperties":false,"properties":{"title":{"type":"string","maxLength":300},"url":{"type":"string","maxLength":300},"note":{"type":"string","maxLength":20000}}},"maxProperties":2000},"sections":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["title","body"],"additionalProperties":false,"properties":{"title":{"type":"string","maxLength":300},"body":{"type":"string","maxLength":100000},"order":{"type":"integer"},"group":{"type":"string","maxLength":300},"source":{"type":"string","maxLength":300}}},"maxProperties":2000},"money":{"type":"object","propertyNames":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"},"additionalProperties":{"type":"object","required":["amount","source_text","path"],"additionalProperties":false,"properties":{"amount":{"type":"number"},"currency":{"enum":["CAD","USD","CNY",null]},"certainty":{"enum":["confirmed","inferred","pending"]},"basis":{"type":"string","maxLength":300},"source_text":{"type":"string","maxLength":300},"path":{"type":"string","maxLength":300},"occ":{"type":"integer"},"anchor":{"type":"string","maxLength":300},"explicit":{"type":"boolean"},"as_of":{"type":"string","maxLength":300},"converted_from":{"type":["string","null"],"maxLength":300},"refs":{"type":"array","items":{"type":"string","pattern":"^[A-Za-z0-9_\\-]{1,48}$"}},"auto":{"type":"boolean"},"hide_label":{"type":"boolean"}}},"maxProperties":2000},"translation_memory":{"type":"array","maxItems":20000,"items":{"type":"object","additionalProperties":false,"required":["zh","en"],"properties":{"zh":{"type":"string","maxLength":20000},"en":{"type":"string","maxLength":20000}}}}}}