{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"subject":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","pattern":"^sub_[0-9A-HJKMNP-TV-Z]{26}$"}},"required":["id"],"additionalProperties":false},{"type":"object","properties":{"name":{"type":"string","minLength":1},"type":{"type":"string","enum":["place","product","service","school","employer","event","app","creator","course","other"]},"location":{"type":"object","properties":{"lat":{"type":"number"},"lng":{"type":"number"}},"required":["lat","lng"],"additionalProperties":false},"external_ids":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"hint":{"type":"string","maxLength":200}},"required":["name","type"],"additionalProperties":false}]},"experience":{"type":"object","properties":{"occurred_at":{"type":"string"},"precision":{"type":"string","enum":["day","month","year"]},"context":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}}},"required":["occurred_at","precision"],"additionalProperties":false},"narrative":{"type":"string","maxLength":4000},"claims":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"object","properties":{"aspect":{"type":"string","pattern":"^[a-z_]+$"},"statement":{"type":"string","minLength":8,"maxLength":280},"polarity":{"type":"string","enum":["positive","negative","neutral","factual"]},"value":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},"observed_at":{"type":"string","format":"date","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"},"is_change":{"default":false,"type":"boolean"},"confidence":{"type":"number","minimum":0,"maximum":1}},"required":["aspect","statement","polarity","observed_at","confidence"],"additionalProperties":false}},"visibility":{"default":"pseudonymous","type":"string","enum":["handle","pseudonymous"]}},"required":["subject","experience","claims"],"additionalProperties":false}