Skip to main content
Glama
events.json6.56 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Sentinel Event Schemas", "definitions": { "script_error": { "type": "object", "required": ["type", "file", "line", "message", "timestamp"], "properties": { "type": { "type": "string", "const": "script_error" }, "file": { "type": "string", "description": "File path in res:// format" }, "line": { "type": "integer", "minimum": 1, "description": "Line number where error occurred" }, "message": { "type": "string", "description": "Error message" }, "error_type": { "type": "string", "enum": ["script_error", "parse_error", "runtime_error", "assertion_failed"], "description": "Specific type of error" }, "stack": { "type": "array", "items": { "type": "string" }, "description": "Stack trace frames" }, "timestamp": { "type": "string", "format": "date-time", "description": "ISO timestamp when error occurred" }, "context": { "type": "object", "properties": { "function": { "type": "string", "description": "Function where error occurred" }, "scene": { "type": "string", "description": "Current scene path" } } } } }, "snapshot": { "type": "object", "required": ["type", "frame", "timestamp"], "properties": { "type": { "type": "string", "const": "snapshot" }, "frame": { "type": "integer", "minimum": 0, "description": "Current game frame" }, "rng_seed": { "type": "integer", "description": "Current RNG seed for reproducibility" }, "timestamp": { "type": "string", "format": "date-time" }, "fighters": { "type": "array", "items": { "type": "object", "required": ["id", "state"], "properties": { "id": { "type": "string", "description": "Fighter identifier" }, "state": { "type": "string", "description": "Current state machine state" }, "damage": { "type": "number", "minimum": 0, "description": "Current damage percentage" }, "position": { "type": "object", "required": ["x", "y"], "properties": { "x": { "type": "number" }, "y": { "type": "number" } } }, "velocity": { "type": "object", "required": ["x", "y"], "properties": { "x": { "type": "number" }, "y": { "type": "number" } } }, "current_move": { "type": "string", "description": "Currently executing move" }, "move_window": { "type": "integer", "minimum": 0, "description": "Frame window within current move" } } } }, "scene_data": { "type": "object", "description": "Scene-specific data", "additionalProperties": true } } }, "test_result": { "type": "object", "required": ["type", "suite", "test_name", "passed", "timestamp"], "properties": { "type": { "type": "string", "const": "test_result" }, "suite": { "type": "string", "description": "Test suite name" }, "test_name": { "type": "string", "description": "Individual test name" }, "passed": { "type": "boolean", "description": "Whether test passed" }, "time_ms": { "type": "number", "minimum": 0, "description": "Test execution time in milliseconds" }, "timestamp": { "type": "string", "format": "date-time" }, "error_message": { "type": "string", "description": "Error message if test failed" }, "assertion_count": { "type": "integer", "minimum": 0, "description": "Number of assertions in test" } } }, "build_status": { "type": "object", "required": ["type", "status", "timestamp"], "properties": { "type": { "type": "string", "const": "build_status" }, "status": { "type": "string", "enum": ["started", "success", "failed"], "description": "Build status" }, "timestamp": { "type": "string", "format": "date-time" }, "errors": { "type": "array", "items": { "$ref": "#/definitions/script_error" }, "description": "Build errors if status is failed" }, "duration_ms": { "type": "number", "minimum": 0, "description": "Build duration in milliseconds" } } }, "game_event": { "type": "object", "required": ["type", "event_type", "timestamp"], "properties": { "type": { "type": "string", "const": "game_event" }, "event_type": { "type": "string", "enum": ["game_started", "game_stopped", "scene_changed", "input_received"], "description": "Type of game event" }, "timestamp": { "type": "string", "format": "date-time" }, "data": { "type": "object", "description": "Event-specific data", "additionalProperties": true } } } }, "oneOf": [ { "$ref": "#/definitions/script_error" }, { "$ref": "#/definitions/snapshot" }, { "$ref": "#/definitions/test_result" }, { "$ref": "#/definitions/build_status" }, { "$ref": "#/definitions/game_event" } ] }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Snack-JPG/Godot-Sentinel-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server