Add isolated Luau rule engine service
Build and publish rule engine / release (push) Failing after 1m34s
Build and publish rule engine / release (push) Failing after 1m34s
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"$id": "https://gitea.k3s.k0.nu/ai-spel/ai-spel-rule-engine/raw/tag/v0.1.0/contracts/rule-evaluation-v1.schema.json",
|
||||
"title": "AI Spel Luau rule evaluation contract v1",
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["contract_version", "correlation_id", "invocation"],
|
||||
"properties": {
|
||||
"contract_version": { "const": 1 },
|
||||
"correlation_id": { "type": "string", "format": "uuid" },
|
||||
"invocation": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["rule_id", "rule_version", "source", "snapshot"],
|
||||
"properties": {
|
||||
"rule_id": { "type": "string", "format": "uuid" },
|
||||
"rule_version": { "type": "integer", "minimum": 1 },
|
||||
"source": { "type": "string", "maxLength": 16384 },
|
||||
"snapshot": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["world_id", "version", "world_time", "facts"],
|
||||
"properties": {
|
||||
"world_id": { "type": "string", "format": "uuid" },
|
||||
"version": { "type": "integer" },
|
||||
"world_time": { "type": "integer" },
|
||||
"facts": { "type": "object" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"$defs": {
|
||||
"effect": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["kind", "payload"],
|
||||
"properties": {
|
||||
"kind": { "type": "string", "minLength": 1, "maxLength": 64 },
|
||||
"payload": { "type": "object" }
|
||||
}
|
||||
},
|
||||
"response": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["contract_version", "correlation_id", "outcome"],
|
||||
"properties": {
|
||||
"contract_version": { "const": 1 },
|
||||
"correlation_id": { "type": "string", "format": "uuid" },
|
||||
"outcome": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["status", "effects"],
|
||||
"properties": {
|
||||
"status": { "const": "evaluated" },
|
||||
"effects": { "type": "array", "maxItems": 16, "items": { "$ref": "#/$defs/effect" } }
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"required": ["status", "code", "detail"],
|
||||
"properties": {
|
||||
"status": { "const": "rejected" },
|
||||
"code": { "type": "string" },
|
||||
"detail": { "type": "string" }
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user