{ "common": { "appName": "HexaHost GameCloud", "login": "Sign in", "register": "Register", "dashboard": "Dashboard", "logout": "Sign out", "theme": "Theme", "themeLight": "Light", "themeDark": "Dark", "themeSystem": "System", "language": "Language", "loading": "Loading…", "submit": "Submit", "cancel": "Cancel", "back": "Back", "footer": "Self-hosted Minecraft server platform.", "servers": "Servers", "features": "Features", "pricing": "Pricing", "docs": "Documentation", "status": "Status", "impressum": "Legal notice", "privacy": "Privacy", "terms": "Terms", "admin": "Admin", "phaseBadge": "MVP · Phases 0–9" }, "landing": { "badge": "MVP · Phase 9 complete", "title": "Minecraft servers on demand", "subtitle": "Create, configure, and operate Minecraft servers through a central web panel — multi-tenant, scalable, and production-ready.", "ctaPrimary": "Get started", "ctaSecondary": "Sign in", "features": { "control": { "title": "Central control", "description": "Server lifecycle, quotas, and scheduling through a unified control plane." }, "nodes": { "title": "Multi-node", "description": "Horizontal scaling across dedicated game nodes with agent-based orchestration." }, "security": { "title": "Enterprise security", "description": "mTLS, granular permissions, and auditable state transitions from day one." } } }, "auth": { "loginTitle": "Sign in", "loginSubtitle": "Sign in with your account.", "registerTitle": "Create account", "registerSubtitle": "Register for the platform.", "email": "Email", "emailPlaceholder": "name@example.com", "username": "Username", "usernamePlaceholder": "player123", "displayName": "Display name", "displayNamePlaceholder": "Your name", "optional": "optional", "password": "Password", "passwordPlaceholder": "••••••••", "confirmPassword": "Confirm password", "noAccount": "No account yet?", "hasAccount": "Already registered?", "forgotPasswordLink": "Forgot password?", "forgotPasswordTitle": "Reset password", "forgotPasswordSubtitle": "Enter your email address and we will send you a reset link.", "forgotPasswordSubmit": "Send reset link", "forgotPasswordSent": "If an account exists for this email, you will receive a reset link shortly.", "resetPasswordTitle": "Set new password", "resetPasswordSubtitle": "Choose a new password for your account.", "resetPasswordSubmit": "Update password", "resetPasswordMissingToken": "This reset link is invalid or has expired.", "verifyEmailTitle": "Email verification", "verifyEmailSent": "Registration successful. Please check your inbox and click the verification link.", "verifyEmailLoading": "Verifying your email address…", "verifyEmailSuccess": "Your email address has been verified. You can now sign in.", "verifyEmailError": "Verification failed. The link may be invalid or expired.", "verifyEmailMissingToken": "No verification token was provided.", "twoFactorTitle": "Two-factor authentication", "twoFactorSubtitle": "Enter the 6-digit code from your authenticator app.", "twoFactorCode": "Authentication code", "twoFactorSubmit": "Verify", "twoFactorMissingChallenge": "No login challenge found. Please sign in again.", "twoFactorSetupTitle": "Two-factor authentication", "twoFactorSetupDescription": "Add an extra layer of security to your account with TOTP.", "twoFactorSetupStart": "Set up 2FA", "twoFactorScanQr": "Scan this QR code with your authenticator app, then enter the generated code.", "twoFactorQrAlt": "QR code for authenticator setup", "twoFactorConfirm": "Enable 2FA", "twoFactorEnabled": "Two-factor authentication is enabled on your account.", "recoveryCodesTitle": "Recovery codes — save these in a secure place", "securityTitle": "Security", "securitySubtitle": "Manage authentication and security settings for your account.", "backToLogin": "Back to sign in", "ssoTitle": "Signing you in", "ssoLoading": "Validating your secure sign-in link…", "ssoError": "Sign-in failed. The link may be expired or already used.", "ssoMissingTicket": "No sign-in ticket was provided.", "impersonationBanner": "Support session active: {label}", "impersonationDefaultLabel": "WHMCS admin impersonation", "sessionNone": "session: none", "errors": { "generic": "Something went wrong. Please try again." } }, "dashboard": { "title": "Dashboard", "welcome": "Welcome to your control area.", "servers": "Servers", "serversEmpty": "No servers yet", "serversEmptyDescription": "Create your first Minecraft server to get started.", "createServer": "Create server", "status": "Status", "resources": "Resources", "activity": "Activity", "activityEmpty": "No recent events", "controlPlaneOnline": "Control Plane · Online", "activeServers": "Active servers", "resourcesSubtitle": "Allocated / Quota", "allocatedRam": "Allocated RAM", "activitySubtitle": "Overview", "totalServers": "Total servers", "credits": "Credits", "creditsSubtitle": "Runtime balance", "creditsRemaining": "Credits remaining", "viewAllServers": "View all servers", "serversSummary": "Servers in your account" }, "validation": { "emailRequired": "Email is required", "emailInvalid": "Invalid email address", "passwordRequired": "Password is required", "passwordMin": "Password must be at least 8 characters", "confirmPasswordRequired": "Password confirmation is required", "passwordMismatch": "Passwords do not match", "usernameInvalid": "Username must be 3–32 characters (letters, numbers, _ and -)", "codeRequired": "Authentication code is required", "codeInvalid": "Enter a valid 6-digit code", "serverNameRequired": "Server name is required", "serverNameMax": "Server name must be at most 64 characters", "planRequired": "Please select a plan", "planInvalid": "Invalid plan selected", "versionRequired": "Minecraft version is required", "softwareRequired": "Software family is required", "eulaRequired": "You must accept the Minecraft EULA", "motdMax": "MOTD must be at most 256 characters", "maxPlayersMin": "At least 1 player required", "maxPlayersMax": "At most 200 players allowed" }, "servers": { "title": "Servers", "subtitle": "Manage your Minecraft servers.", "create": "Create server", "createTitle": "New server", "createDescription": "Configure and provision a new Minecraft server.", "name": "Server name", "plan": "Plan", "selectPlan": "Select a plan", "noPlans": "No plans are available. Ask an administrator to create a plan.", "software": "Software", "version": "Minecraft version", "eula": "I accept the Minecraft End User License Agreement (EULA).", "loading": "Loading…", "cancel": "Cancel", "emptyTitle": "No servers yet", "emptyDescription": "Create your first server to start playing.", "address": "Address", "addressPending": "Pending allocation", "ram": "RAM", "start": "Start", "stop": "Stop", "idleCountdown": "Auto-stop in {seconds}s (no players)", "details": "Details", "detailSubtitle": "Server details and lifecycle controls", "backToList": "Back to servers", "retry": "Retry", "status": { "DRAFT": "Draft", "PROVISIONING": "Provisioning", "INSTALLING": "Installing", "STOPPED": "Stopped", "QUEUED": "Queued", "STARTING": "Starting", "RUNNING": "Running", "STOPPING": "Stopping", "UNKNOWN": "Unknown", "ERROR": "Error", "DELETING": "Deleting", "DELETED": "Deleted" }, "softwareOptions": { "VANILLA": "Vanilla", "PAPER": "Paper", "PURPUR": "Purpur", "FABRIC": "Fabric", "FORGE": "Forge", "NEOFORGE": "NeoForge", "QUILT": "Quilt", "BEDROCK_DEDICATED": "Bedrock Dedicated" }, "errors": { "generic": "Something went wrong. Please try again.", "loadFailed": "Could not load servers." }, "tabs": { "navigation": "Server sections", "overview": "Overview", "console": "Console", "files": "Files", "properties": "Properties", "players": "Players", "worlds": "Worlds", "backups": "Backups", "addons": "Add-ons", "software": "Software", "schedules": "Schedules", "access": "Access" }, "wizard": { "stepsLabel": "Creation steps", "steps": { "basics": "Basics", "software": "Software", "review": "Review" }, "next": "Next", "back": "Back" }, "software": { "title": "Software", "description": "Installed server software and version.", "loading": "Loading…", "loadError": "Could not load software information.", "family": "Software family", "version": "Minecraft version", "edition": "Edition", "changeHint": "Software switching will be supported in a future release.", "reinstall": "Reinstall software", "reinstalling": "Reinstalling…", "reinstallConfirm": "Reinstall server software? A backup will be created first.", "reinstallStarted": "Reinstall started. The server will be unavailable during installation.", "reinstallError": "Could not start reinstall.", "reinstallStoppedHint": "Stop the server before reinstalling software." }, "console": { "loading": "Loading…", "notRunning": "The console is only available while the server is running. Start the server from the overview tab.", "connecting": "Connecting…", "connected": "Connected", "disconnected": "Disconnected", "clear": "Clear log", "commandPlaceholder": "Enter server command…", "send": "Send", "errors": { "connectionFailed": "Could not connect to the console." } }, "files": { "loading": "Loading…", "browser": "File browser", "editor": "Editor", "up": "Up", "empty": "This directory is empty.", "selectFile": "Select a file to view or edit.", "readOnlyStopped": "Read-only while the server is stopped.", "notAvailable": "Files are only available when the server is running or stopped.", "truncated": "File was truncated for display. Edit with care.", "save": "Save", "saving": "Saving…", "saved": "File saved.", "upload": "Upload", "uploading": "Uploading…", "uploaded": "File uploaded.", "delete": "Delete", "deleted": "Deleted.", "deleteConfirm": "Delete {name}?", "archive": "Archive selected", "archiving": "Archiving…", "archived": "Archive created.", "unarchive": "Extract archive", "unarchiving": "Extracting…", "unarchived": "Archive extraction started.", "unarchiveConfirm": "Extract {name} into the current directory?", "errors": { "loadFailed": "Could not load directory.", "readFailed": "Could not read file.", "saveFailed": "Could not save file.", "deleteFailed": "Could not delete file.", "uploadFailed": "Could not upload file.", "archiveFailed": "Could not create archive.", "unarchiveFailed": "Could not extract archive." } }, "properties": { "title": "Server properties", "description": "Edit common server.properties settings. Unknown properties are preserved on the server.", "loading": "Loading…", "motd": "MOTD", "gamemode": "Gamemode", "difficulty": "Difficulty", "maxPlayers": "Max players", "pvp": "PVP", "whitelist": "Whitelist", "hardcore": "Hardcore", "onlineMode": "Online mode", "enableCommandBlock": "Command blocks", "allowFlight": "Allow flight", "viewDistance": "View distance", "simulationDistance": "Simulation distance", "spawnProtection": "Spawn protection", "save": "Save changes", "saving": "Saving…", "saved": "Properties saved.", "gamemodes": { "survival": "Survival", "creative": "Creative", "adventure": "Adventure", "spectator": "Spectator" }, "difficulties": { "peaceful": "Peaceful", "easy": "Easy", "normal": "Normal", "hard": "Hard" }, "errors": { "loadFailed": "Could not load server properties.", "saveFailed": "Could not save server properties." } }, "players": { "loading": "Loading…", "onlineCount": "Online players", "whitelistCount": "Whitelist entries", "operatorsCount": "Operators", "onlineTitle": "Online players", "whitelistTitle": "Whitelist", "operatorsTitle": "Operators", "bansTitle": "Banned players", "bansEmpty": "No banned players.", "empty": "No players online.", "retry": "Retry", "kick": "Kick", "addWhitelist": "Add to whitelist", "addOperator": "Add operator", "addBan": "Ban player", "remove": "Remove", "fields": { "name": "Player name", "uuid": "UUID", "reason": "Reason" }, "columns": { "name": "Player", "ping": "Ping", "actions": "Actions" }, "errors": { "loadFailed": "Could not load player list.", "actionFailed": "Action failed." } }, "worlds": { "loading": "Loading…", "loadError": "Could not load world information.", "activeWorld": "Active world: {name}", "stoppedHint": "Upload and replace require a stopped server.", "worldName": "World name", "uploadArchive": "World archive (.tar.gz)", "uploadError": "World upload failed.", "download": "Download world", "downloadError": "Could not start download.", "downloadPending": "Backup is being created. Try the download again shortly.", "empty": "No worlds found.", "validWorld": "Valid world", "invalidWorld": "Invalid", "active": "Active" }, "backups": { "loading": "Loading…", "loadError": "Could not load backups.", "create": "Create backup", "manualLabel": "Manual backup", "createError": "Could not create backup.", "download": "Download", "downloadError": "Could not create download URL.", "restore": "Restore", "restoreConfirm": "Restore the world from this backup? The server must be stopped.", "restoreError": "Restore failed.", "delete": "Delete", "deleteConfirm": "Delete this backup?", "deleteError": "Could not delete backup.", "enableSchedule": "Enable scheduled backups", "disableSchedule": "Disable scheduled backups", "scheduleError": "Could not update schedule.", "scheduleInfo": "Interval: every {hours}h · Retention: {retention} backups", "label": "Label", "status": "Status", "size": "Size", "created": "Created", "actions": "Actions", "empty": "No backups yet." }, "addons": { "loading": "Loading…", "unsupported": "Add-ons are not supported for this server software yet. Use Paper or Fabric.", "stoppedHint": "Add-ons can only be installed or removed while the server is stopped.", "searchPlaceholder": "Search Modrinth…", "search": "Search", "searchError": "Catalog search failed.", "versionsError": "Could not load versions.", "installError": "Installation failed.", "removeError": "Remove failed.", "select": "Versions", "compatibleVersions": "Compatible versions for {name}", "install": "Install", "remove": "Remove", "installed": "Installed", "empty": "No add-ons installed yet." }, "schedules": { "title": "Schedules", "description": "Scheduled start, stop, and maintenance actions.", "loading": "Loading…", "empty": "No schedules yet.", "create": "Create schedule", "edit": "Edit", "save": "Save changes", "cancel": "Cancel", "delete": "Delete", "enable": "Enable", "disable": "Disable", "saving": "Saving…", "deleteConfirm": "Delete schedule \"{name}\"?", "fields": { "name": "Name", "cron": "Cron expression", "timezone": "Timezone", "taskType": "Task", "enabled": "Enabled", "command": "Console command", "commandPlaceholder": "say Server restarting" }, "columns": { "name": "Name", "cron": "Cron", "task": "Task", "status": "Status", "actions": "Actions" }, "status": { "enabled": "Enabled", "disabled": "Disabled" }, "taskTypes": { "START": "Start server", "STOP": "Stop server", "RESTART": "Restart server", "BACKUP": "Create backup", "CONSOLE_COMMAND": "Run command", "UPDATE_CHECK": "Check for updates", "MAINTENANCE": "Maintenance" }, "errors": { "loadFailed": "Could not load schedules.", "saveFailed": "Could not save schedule.", "deleteFailed": "Could not delete schedule." } }, "access": { "title": "Access", "description": "Sharing and permissions for this server.", "loading": "Loading…", "empty": "No members yet. Invite someone to share this server.", "invite": "Invite member", "sendInvite": "Send invite", "inviting": "Sending…", "cancel": "Cancel", "remove": "Remove", "inviteSuccess": "Member invited successfully.", "invitePending": "Invite noted. The user must register before they can access this server.", "removeConfirm": "Remove {name} from this server?", "fields": { "email": "Email address", "emailPlaceholder": "user@example.com", "role": "Role" }, "columns": { "member": "Member", "email": "Email", "role": "Role", "status": "Status", "actions": "Actions" }, "roles": { "OWNER": "Owner", "ADMIN": "Admin", "OPERATOR": "Operator", "DEVELOPER": "Developer", "VIEWER": "Viewer" }, "status": { "active": "Active", "pending": "Pending" }, "errors": { "loadFailed": "Could not load members.", "inviteFailed": "Could not send invite.", "removeFailed": "Could not remove member." } } }, "account": { "nav": { "label": "Account navigation", "dashboard": "Dashboard", "servers": "Servers", "billing": "Billing", "profile": "Profile", "notifications": "Notifications", "security": "Security" }, "billing": { "title": "Billing", "subtitle": "Credits and transaction history.", "loading": "Loading…", "loadError": "Could not load billing data.", "balanceTitle": "Current balance", "periodStart": "Billing period from {date}", "creditsLabel": "Credits remaining", "transactionsTitle": "Transactions", "transactionsEmpty": "No transactions in this period yet.", "columns": { "date": "Date", "type": "Type", "amount": "Amount", "reference": "Reference" } }, "profile": { "title": "Profile", "subtitle": "Your account information.", "loading": "Loading…", "notSignedIn": "Not signed in.", "accountInfo": "Account details", "accountInfoDescription": "Profile information from your account.", "fields": { "email": "Email", "username": "Username", "displayName": "Display name", "emailVerified": "Email verified", "twoFactor": "Two-factor auth" }, "yes": "Yes", "no": "No", "enabled": "Enabled", "disabled": "Disabled", "securityHint": "Manage password, 2FA, and sessions at", "securityLink": "Security" }, "notifications": { "title": "Notifications", "subtitle": "Email and in-app notifications.", "loading": "Loading…", "listTitle": "Recent notifications", "unreadCount": "{count, plural, one {# unread notification} other {# unread notifications}}", "allRead": "All caught up.", "markRead": "Mark read", "markAllRead": "Mark all read", "emptyTitle": "No notifications", "emptyDescription": "You have not received any notifications yet.", "preferencesTitle": "Preferences", "preferencesDescription": "Choose which notifications you receive on each channel.", "enabled": "Enabled", "disabled": "Disabled", "channels": { "IN_APP": "In-app", "EMAIL": "Email", "WEBHOOK": "Webhook", "DISCORD": "Discord" }, "types": { "SERVER_READY": "Server ready", "SERVER_START_FAILED": "Server start failed", "SERVER_STOPPED": "Server stopped", "IDLE_STOP_WARNING": "Idle stop warning", "BACKUP_SUCCESS": "Backup succeeded", "BACKUP_FAILED": "Backup failed", "RESTORE_SUCCESS": "Restore succeeded", "RESTORE_FAILED": "Restore failed", "CREDITS_LOW": "Low credits", "BILLING_ISSUE": "Billing issue", "INVITE": "Invite", "NODE_INCIDENT": "Node incident", "MAINTENANCE": "Maintenance", "SECURITY": "Security", "NEW_LOGIN": "New login", "TWO_FA_CHANGED": "Two-factor changed" }, "errors": { "loadFailed": "Could not load notifications.", "markReadFailed": "Could not update notification.", "preferencesFailed": "Could not save preferences." } } }, "admin": { "backToPanel": "Back to panel", "nav": { "label": "Admin navigation", "dashboard": "Dashboard", "nodes": "Nodes", "users": "Users", "jobs": "Jobs", "audit": "Audit" }, "dashboard": { "title": "Admin dashboard", "subtitle": "Platform-wide metrics and system status.", "loading": "Loading…", "loadError": "Could not load dashboard data.", "generatedAt": "As of {time}", "stats": { "activeUsers": "Active users", "totalServers": "Total servers", "runningServers": "Running servers", "queueLength": "Queue length", "onlineNodes": "Online nodes", "failedJobs24h": "Failed jobs (24h)", "openAbuseReports": "Open abuse reports", "openTickets": "Open tickets" } }, "nodes": { "title": "Game nodes", "subtitle": "Node status and maintenance actions.", "loading": "Loading…", "loadError": "Could not load nodes.", "empty": "No nodes registered.", "drain": "Drain", "maintenance": "Maintenance", "exitMaintenance": "Exit maintenance", "actionError": "Action failed.", "columns": { "name": "Node", "status": "Status", "servers": "Servers", "ram": "RAM", "actions": "Actions" } }, "users": { "title": "Users", "subtitle": "Search and manage user accounts.", "loading": "Loading…", "loadError": "Could not load users.", "empty": "No users found.", "searchPlaceholder": "Email or username…", "search": "Search", "suspend": "Suspend", "unsuspend": "Unsuspend", "actionError": "Action failed.", "columns": { "user": "User", "status": "Status", "roles": "Roles", "servers": "Servers", "actions": "Actions" } }, "jobs": { "title": "Background jobs", "subtitle": "Current and recently completed queue jobs.", "loading": "Loading…", "loadError": "Could not load jobs.", "empty": "No jobs found.", "columns": { "queue": "Queue", "job": "Job", "status": "Status", "attempts": "Attempts", "created": "Created" } }, "audit": { "title": "Audit log", "subtitle": "Platform-wide security and lifecycle events.", "loading": "Loading…", "loadError": "Could not load audit events.", "empty": "No events found.", "loadMore": "Load more", "columns": { "time": "Time", "action": "Action", "user": "User", "entity": "Entity" } } }, "public": { "pricing": { "title": "Pricing", "description": "Transparent plans for Minecraft server hosting.", "cta": "Register now →", "tiers": { "starter": { "name": "Starter", "description": "Great for trying things out.", "price": "Free", "features": ["2 GB RAM", "1 server", "Idle shutdown", "Community support"] }, "standard": { "name": "Standard", "description": "For small communities.", "price": "Credits", "features": ["4 GB RAM", "3 servers", "Backups", "Modrinth add-ons"] }, "pro": { "name": "Pro", "description": "For demanding worlds.", "price": "Credits", "features": ["8+ GB RAM", "Unlimited servers*", "Priority queue", "WHMCS integration"] } } }, "features": { "title": "Features", "description": "Everything for professional Minecraft server hosting.", "items": { "control": { "title": "Central control", "description": "Lifecycle, console, files, and properties through a unified panel." }, "nodes": { "title": "Multi-node", "description": "Horizontal scaling with agent-based orchestration." }, "security": { "title": "Security", "description": "Sessions, 2FA, CSRF protection, and auditable actions." }, "billing": { "title": "Credit billing", "description": "Runtime-based billing with transparent balance." }, "backups": { "title": "Backups & worlds", "description": "Manual and scheduled backups, world upload and download." }, "whmcs": { "title": "WHMCS integration", "description": "Provisioning, SSO, and billing through WHMCS." } } }, "status": { "title": "System status", "description": "Current operational status of platform components.", "operational": "Operational", "selfHostedNote": "Status reflects self-hosted deployment. Configure health checks for live monitoring.", "components": { "api": { "name": "API", "description": "REST control plane at /api/v1" }, "worker": { "name": "Worker", "description": "BullMQ background processing" }, "panel": { "name": "Web panel", "description": "Next.js user interface" }, "dns": { "name": "DNS / Edge", "description": "Join-to-start and edge gateway" } } }, "docs": { "title": "Documentation", "description": "Getting started, API reference, and operations guides.", "openapi": "Interactive API documentation:", "openapiLink": "OpenAPI / Swagger", "cta": "Create account →", "sections": { "gettingStarted": { "title": "Getting started", "body": "Register, verify your email, create a server through the multi-step wizard, and start it from the dashboard." }, "api": { "title": "API", "body": "The REST API at /api/v1 provides endpoints for auth, server lifecycle, files, backups, and admin functions. Authentication uses session cookies." }, "operations": { "title": "Operations", "body": "Deploy control plane, worker, and node agent via Docker Compose or Ansible. See docs/operations in the repository." }, "whmcs": { "title": "WHMCS", "body": "The server module provisions services automatically. SSO enables seamless access from the WHMCS client area." } } }, "impressum": { "title": "Legal notice", "description": "Information according to applicable law (German Impressum).", "notice": "This is a template legal notice. Replace placeholder details before production use.", "sections": { "operator": { "title": "Service provider", "body": "HexaHost\nGame server hosting platform" }, "address": { "title": "Address", "body": "HexaHost\nMusterstraße 1\n12345 Musterstadt\nGermany" }, "contact": { "title": "Contact", "body": "Email: kontakt@hexahost.example\nPhone: +49 (0) 123 456789" }, "responsible": { "title": "Responsible for content (§ 55 Abs. 2 RStV)", "body": "Max Mustermann\nHexaHost\nMusterstraße 1\n12345 Musterstadt" }, "register": { "title": "Commercial register", "body": "Register court: Amtsgericht Musterstadt\nRegistration number: HRB 12345\nVAT ID: DE123456789" }, "dispute": { "title": "Dispute resolution", "body": "We are not obliged or willing to participate in dispute resolution proceedings before a consumer arbitration board." } } }, "privacy": { "title": "Privacy policy", "description": "Information on processing personal data.", "sections": { "controller": { "title": "Controller", "body": "The operator of this self-hosted instance is responsible for data processing. Adapt this policy to your organization." }, "data": { "title": "Data collected", "body": "We process account data (email, username), session information, server metadata, and usage data for billing." }, "cookies": { "title": "Cookies", "body": "Session cookies (hgc_session) and CSRF cookies (hgc_csrf) are required for authentication." }, "rights": { "title": "Your rights", "body": "You have the right to access, rectify, delete, and port your data under applicable privacy law." }, "contact": { "title": "Contact", "body": "For privacy requests, contact the operator listed in your legal notice." } } }, "terms": { "title": "Terms of service", "description": "Terms of use for the platform.", "sections": { "scope": { "title": "Scope", "body": "These terms apply to use of the Minecraft server hosting platform by registered users." }, "usage": { "title": "Usage", "body": "Servers may only be operated for lawful purposes. Abuse may result in suspension." }, "billing": { "title": "Billing", "body": "Credits are consumed based on runtime. Balance is non-transferable unless otherwise agreed." }, "liability": { "title": "Liability", "body": "The operator is liable only for intent and gross negligence. Protect against data loss with your own backups." }, "changes": { "title": "Changes", "body": "The operator may change these terms with reasonable notice. Continued use constitutes acceptance." } } } } }