{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://www.gitea.gbreed.com/gbreed-public/gbr-games/raw/branch/main/schema/test.schema.json", "title": "GBR Hosting game boot-test fixture", "description": "Values CI uses when boot-testing a template. Never put real credentials here: map them to a Gitea Actions secret under 'secrets'.", "type": "object", "additionalProperties": false, "properties": { "config": { "description": "Config values for the test server, layered on top of defaultConfig (e.g. EULA: true).", "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_.-]+$" } }, "secrets": { "description": "Config key -> name of a Gitea Actions secret. If a secret is missing, the boot test is skipped, not failed.", "type": "object", "propertyNames": { "pattern": "^[a-zA-Z0-9_.-]+$" }, "additionalProperties": { "type": "string", "pattern": "^[A-Z][A-Z0-9_]*$" } }, "timeoutSec": { "description": "How long to wait for the server to become ready, including install.", "type": "integer", "minimum": 60, "maximum": 7200 }, "readyExample": { "description": "A real console line from a server that is ready. Validation checks the game's readyPattern matches it, so a broken pattern fails in seconds instead of timing out a boot test.", "type": "string" }, "settleSec": { "description": "For games without a readyPattern: how long the server must stay up after starting to pass.", "type": "integer", "minimum": 10, "maximum": 3600 } } }