{"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"https://neuroforge.io/lab/decision.schema.json","title":"ERAIS rapid decision request v1","type":"object","additionalProperties":false,"required":["contract","state","questions"],"properties":{"contract":{"const":"erais.rapid-decision.request.v1"},"state":{"oneOf":[{"type":"string","maxLength":8192},{"type":"object","additionalProperties":false,"properties":{"context":{"type":"string","maxLength":8192},"variables":{"type":"object","maxProperties":32,"propertyNames":{"pattern":"^[A-Za-z][A-Za-z0-9_]{0,63}$"},"additionalProperties":{"type":"string"}},"facts":{"type":"array","maxItems":64,"items":{"$ref":"#/$defs/atom"}},"rules":{"type":"array","maxItems":32,"items":{"type":"object","additionalProperties":false,"required":["premises","conclusion"],"properties":{"premises":{"type":"array","minItems":1,"maxItems":4,"items":{"$ref":"#/$defs/atom"}},"conclusion":{"$ref":"#/$defs/atom"}}}}}}]},"questions":{"type":"object","minProperties":1,"maxProperties":64,"propertyNames":{"$ref":"#/$defs/identifier"},"additionalProperties":{"oneOf":[{"type":"object","additionalProperties":false,"required":["type"],"anyOf":[{"required":["predicate"]},{"required":["instructions"]}],"properties":{"type":{"const":"noul"},"predicate":{"$ref":"#/$defs/predicate"},"instructions":{"$ref":"#/$defs/description"}}},{"type":"object","additionalProperties":false,"required":["type","criteria"],"properties":{"type":{"const":"choice"},"instructions":{"$ref":"#/$defs/description"},"criteria":{"type":"object","minProperties":2,"maxProperties":16,"propertyNames":{"$ref":"#/$defs/identifier"},"oneOf":[{"additionalProperties":{"$ref":"#/$defs/predicate"}},{"additionalProperties":{"$ref":"#/$defs/description"}}]}}},{"type":"object","additionalProperties":false,"required":["type","criteria"],"properties":{"type":{"const":"score"},"instructions":{"$ref":"#/$defs/description"},"criteria":{"type":"array","minItems":2,"maxItems":16,"oneOf":[{"items":{"$ref":"#/$defs/predicate"}},{"items":{"$ref":"#/$defs/description"}}]}}}]}}},"$defs":{"identifier":{"type":"string","pattern":"^[A-Za-z][A-Za-z0-9_-]{0,63}$"},"description":{"type":"string","minLength":1,"maxLength":1024},"expression":{"type":"string","minLength":1,"maxLength":256},"atom":{"type":"object","additionalProperties":false,"required":["predicate","args"],"properties":{"predicate":{"$ref":"#/$defs/identifier"},"args":{"type":"array","maxItems":4,"items":{"type":"string","pattern":"^\\??[A-Za-z][A-Za-z0-9_-]{0,63}$"}},"negated":{"type":"boolean"}}},"predicate":{"oneOf":[{"type":"object","additionalProperties":false,"required":["left","op","right"],"properties":{"left":{"$ref":"#/$defs/expression"},"op":{"enum":["eq","ne","lt","le","gt","ge"]},"right":{"$ref":"#/$defs/expression"}}},{"type":"object","additionalProperties":false,"required":["atom"],"properties":{"atom":{"$ref":"#/$defs/atom"}}},{"type":"object","additionalProperties":false,"required":["not"],"properties":{"not":{"$ref":"#/$defs/predicate"}}},{"type":"object","additionalProperties":false,"required":["all"],"properties":{"all":{"type":"array","minItems":1,"maxItems":8,"items":{"$ref":"#/$defs/predicate"}}}},{"type":"object","additionalProperties":false,"required":["any"],"properties":{"any":{"type":"array","minItems":1,"maxItems":8,"items":{"$ref":"#/$defs/predicate"}}}}]}}}