[server]
# Bind IP for signaling server.
bind_ip = "127.0.0.1"
# Listen port for signaling websocket server.
port = 4474
# Public base path for this grid instance. Examples: "/", "/chgrid/", "/ttgrid/".
base_path = "/"
# User-facing grid name shown in the web client. 
grid_name = "Chat Grid"
# User-facing pre-connect welcome text shown on the home screen.
welcome_message = "Welcome to the Chat Grid, your immersive audio playground. Configure your audio, then Log in or register to join the grid."

[network]
# Maximum inbound websocket message size in bytes.
max_message_bytes = 2000000
# Secure-by-default: TLS is required unless you explicitly set this to true for local/dev.
allow_insecure_ws = false

[tls]
# Required when allow_insecure_ws = false.
cert_file = ""
# Private key paired with tls.cert_file.
key_file = ""

[logging]
# Python logging level for the signaling server.
level = "INFO"

[storage]
# Item persistence file. Relative paths are resolved from this config file directory.
state_file = "runtime/items.json"
# Debounce window for coalesced item-state writes.
state_save_debounce_ms = 200
# Maximum delay before a pending state write is forced.
state_save_max_delay_ms = 1000

[world]
# Grid width/height in cells. Valid coordinates are 0..grid_size-1.
grid_size = 41

[auth]
# SQLite file for account/session data. Relative paths resolve from this config file directory.
db_file = "runtime/chatgrid.db"
# Password length policy.
password_min_length = 8
password_max_length = 32
# Username length policy.
username_min_length = 2
username_max_length = 32

[livekit]
# LiveKit SFU server URL (e.g. ws://localhost:7880 or wss://your-livekit.example.com).
url = ""
# LiveKit API credentials. Generate these with `livekit-server --keys`.
api_key = ""
api_secret = ""
