{ "$schema": "../../manifests/game-plugin.manifest.schema.json", "id": "game.scum", "name": "SCUM Server", "description": "First-party local SCUM game server management plugin for platform-mediated lifecycle proof.", "version": "0.1.0", "kind": "game-plugin", "tags": [ "scum", "survival", "dedicated-server", "local-proof" ], "server": { "type": "scum", "displayName": "SCUM Dedicated Server", "supportedOS": [ "windows", "linux" ], "createFormSchema": "schemas/create-form.schema.json" }, "capabilities": [ "process.install", "process.start", "process.stop", "process.restart", "process.status", "files.list", "files.read", "files.patch", "logs.read", "remote.ftp.read", "remote.ftp.write", "remote.rsync.read", "remote.rsync.write", "remote.run.files.read", "remote.run.files.write", "remote.run.process.start", "remote.run.process.stop", "remote.run.db.mysql.query", "remote.run.db.sqlite.query", "remote.run.logs.transfer", "remote.run.rcon.command", "artifacts.read", "artifacts.write", "ai.invoke" ], "remoteAccess": { "methods": [ "ftp", "rsync", "run" ], "runCapabilities": [ "remote.run.files.read", "remote.run.files.write", "remote.run.process.start", "remote.run.process.stop", "remote.run.db.mysql.query", "remote.run.db.sqlite.query", "remote.run.logs.transfer", "remote.run.rcon.command" ], "databaseEngines": [ "mysql", "sqlite" ], "rcon": true, "logTransfer": true }, "bridge": { "actions": [ "server.instances.read", "jobs.dispatch", "logs.query", "artifacts.open", "files.request", "remote.access.request", "ai.invoke", "run.distribution.request", "dependencies.request", "logs.backfill.request", "client-manager.request" ] }, "permissions": [ "server.create", "server.read", "server.lifecycle", "server.files.read", "server.files.write", "server.logs.read", "server.artifacts.read", "server.artifacts.write", "server.remote.access", "ai.invoke", "server.run.distribution", "server.dependencies.manage", "server.client-manager.manage" ], "actions": { "install": "actions/install.json", "start": "actions/start.json", "stop": "actions/stop.json", "restart": "actions/restart.json", "status": "actions/status.json" }, "pages": [ { "key": "overview", "title": "SCUM 概览", "path": "/overview", "permissions": [ "server.read", "server.lifecycle" ], "bridgeActions": [ "server.instances.read", "jobs.dispatch" ] }, { "key": "config", "title": "SCUM 配置", "path": "/config", "permissions": [ "server.files.read", "server.files.write", "ai.invoke" ], "bridgeActions": [ "files.request", "ai.invoke" ] }, { "key": "logs", "title": "SCUM 日志", "path": "/logs", "permissions": [ "server.logs.read", "server.artifacts.read", "server.remote.access", "ai.invoke" ], "bridgeActions": [ "logs.query", "artifacts.open", "remote.access.request", "ai.invoke" ] }, { "key": "remote", "title": "SCUM 远程", "path": "/remote", "permissions": [ "server.remote.access", "server.files.read", "server.files.write", "server.lifecycle" ], "bridgeActions": [ "remote.access.request", "files.request", "jobs.dispatch" ] } ], "ai": { "purposes": [ "config.suggest", "logs.diagnose" ] }, "runtimeProfiles": { "discovery": [ { "key": "steamcmd", "kind": "command.version", "targetKey": "steamcmd", "required": true }, { "key": "scum-install", "kind": "file.exists", "targetKey": "server/install-root", "required": true, "platforms": [ "windows" ] } ], "lifecycleProfiles": [ { "key": "run-local", "mode": "local-process", "capabilities": [ "process.install", "process.start", "process.stop", "process.restart", "process.status", "remote.run.process.start", "remote.run.process.stop" ], "actionRefs": { "install": "actions/install.json", "start": "actions/start.json", "stop": "actions/stop.json", "restart": "actions/restart.json", "status": "actions/status.json" }, "transportKeys": [ "server-files", "sqlite-db", "mysql-db", "rcon" ], "platforms": [ "windows" ] }, { "key": "hosted-ftp", "mode": "hosted-ftp-rcon", "capabilities": [ "remote.ftp.read", "remote.ftp.write", "remote.run.logs.transfer", "remote.run.rcon.command" ], "transportKeys": [ "ftp", "rcon" ], "platforms": [ "windows", "linux" ] }, { "key": "scum-client", "mode": "custom-client", "capabilities": [ "remote.run.rcon.command", "remote.run.logs.transfer" ], "transportKeys": [ "client-rcon" ], "clientManagerRef": "scum-client-manager", "platforms": [ "windows" ] } ], "dependencyProbes": [ { "key": "steamcmd", "kind": "command.version", "targetKey": "steamcmd", "required": true, "platforms": [ "windows", "linux" ] }, { "key": "sqlite", "kind": "package.installed", "targetKey": "sqlite-driver", "required": false, "platforms": [ "windows", "linux" ] } ], "installPlans": [ { "key": "install-steamcmd-linux", "title": "Install SteamCMD", "platforms": [ "linux" ], "steps": [ { "type": "package", "targetKey": "steamcmd", "packageManager": "apt", "packageName": "steamcmd" } ] } ], "logSources": [ { "key": "chat-log", "kind": "ftp.poll", "targetKey": "logs/chat", "streamKey": "chat", "cursorKind": "ftp-listing", "retentionDays": 90 }, { "key": "server-log", "kind": "file.tail", "targetKey": "logs/server", "streamKey": "server", "cursorKind": "fingerprint", "retentionDays": 90 }, { "key": "client-manager", "kind": "client-manager", "targetKey": "scum-client-manager", "streamKey": "client-manager", "cursorKind": "sequence", "retentionDays": 30 } ], "transportProfiles": [ { "key": "server-files", "kind": "file", "targetKey": "server-root", "capabilities": [ "remote.run.files.read", "remote.run.files.write" ] }, { "key": "ftp", "kind": "ftp", "targetKey": "ftp-root", "capabilities": [ "remote.ftp.read", "remote.ftp.write" ] }, { "key": "rsync", "kind": "rsync", "targetKey": "rsync-root", "capabilities": [ "remote.rsync.read", "remote.rsync.write" ] }, { "key": "sqlite-db", "kind": "sqlite", "targetKey": "db/sqlite", "capabilities": [ "remote.run.db.sqlite.query" ] }, { "key": "mysql-db", "kind": "mysql", "targetKey": "db/mysql", "capabilities": [ "remote.run.db.mysql.query" ] }, { "key": "rcon", "kind": "rcon", "targetKey": "rcon", "capabilities": [ "remote.run.rcon.command" ] }, { "key": "client-rcon", "kind": "rcon", "targetKey": "client/rcon", "capabilities": [ "remote.run.rcon.command" ] } ], "clientManagers": [ { "key": "scum-client-manager", "displayName": "SCUM Client Manager", "repository": { "url": "https://github.com/F88888/scum_client.git", "revisionPolicy": "branch", "branch": "main" }, "supportedTargets": [ { "os": "windows", "arch": "amd64" } ], "build": { "system": "go", "workspaceRef": "scum_client", "entryRef": "main.go" }, "configTemplates": [ { "key": "client-config", "templateRef": "configs/client.template.json", "outputRef": "config.json" } ], "outputArtifacts": [ "scum_client.exe" ] } ] } }