Props

object Props

One setting, resolved across three sources and then parsed: -D beats the environment beats ConfigFile — explicit for this launch, then ambient, then persisted. At every source a value that trims to empty counts as unset and falls through, so a blank env var (what an unrendered compose template leaves behind) cannot shadow the file.

Range checks stay at the call site, the only place that knows what a number means — same split as netty's SystemPropertyUtil, which this is shaped after.

Root package, so the masking loader delegates it to the game loader and both sides read one copy.

Types

Link copied to clipboard
class Resolved(val key: String, val value: String, val source: Props.Source)

Key, value and origin from ONE lookup, so a warning can never name a source the value didn't come from. Renders as the value's own source spells it, which is what makes a correction copy-pasteable.

Link copied to clipboard

Which source answered.

Properties

Link copied to clipboard
private val FALSE: Set<String>
Link copied to clipboard
private val TRUE: Set<String>

Functions

Link copied to clipboard

true|yes|on|1 / false|no|off|0, case-insensitive.

Link copied to clipboard
private fun envName(key: String): String

mcp.eval.step.budget.ms ->MCP_EVAL_STEP_BUDGET_MS. Derived, so there is no table to drift.

Link copied to clipboard
fun long(key: String, def: Long): Long
Link copied to clipboard
private fun pick(raw: String?): String?
Link copied to clipboard
Link copied to clipboard

Trimmed, or null when unset — and empty IS unset, at every source.