-- Match rules the host may pick from (stocks, time, items, stage hazards), and the roster. Shared: the UI renders these choices and the
-- server re-validates every lobby setting against the very same table, so a tampered client can't
-- pick a stock count, stage or fighter that isn't on offer here.
return {
    -- Enabled fighters, in select-screen order. Remove an id to disable that fighter; an empty
    -- list means ALL of them (unknown ids are dropped with a console warning). Which of these a
    -- PLAYER may pick is decided by progression (configs/shared/progression.lua): locked fighters
    -- show blacked-out on the select screen until bought or earned. CPUs may use any enabled one.
    Fighters = {
        'franklin', 'michael', 'trevor', 'lamar', 'impotentrage', 'pogo', 'commander', 'bubblegum', 'cj', 'bigsmoke', 'niko', 'tommy', 'lester', 'lucia', 'jason', 'johnny', 'madrazo', 'cris', 'wade', 'bigfoot', 'merryweather', 'maude', 'phil', 'raspberryjam', 'james', 'lotion', 'aristides', 'bai', 'vames',
        'argee', 'chatty', 'thrasher', 'isabella', 'uyu', 'jenn', 'scorp', 'night', 'kuz', 'brunx',
        'marcinhu', 'kanikuly', 'bablo', 'samuel', 'redutzu', 'atenea',
        'seventeen', 'chippy', 'solaire', 'k4mb1',
        'ntanis',
    },

    -- Enabled stages, in stage-select order (same rules). Known ids: rooftop, pier, grove, vinewood
    -- (the neutral launch set), then the mechanics stages train, mothership, zancudo, sandy,
    -- stormdrain, casino, cluckin, humanelabs, yankton, arena, leonida (docs/STAGES.md), then the
    -- phase-shift stages mazebank, studio, lsia, kosatka, bigone, chiliad, galileo, port
    -- (docs/refs/stages-16-23.md), then two more neutral stages, legion and golf
    -- (docs/refs/stages-24-25.md).
    Stages = {
        'rooftop', 'pier', 'grove', 'vinewood', 'train', 'mothership', 'zancudo', 'sandy', 'stormdrain', 'casino', 'cluckin', 'humanelabs', 'yankton', 'arena', 'leonida',
        'mazebank', 'studio', 'lsia', 'kosatka', 'bigone', 'chiliad', 'galileo', 'port',
        'legion', 'golf',
    },

    -- The stage a fresh lobby starts on: a stage id above, or 'random' (resolved to a real stage
    -- when the match starts, so everyone in it gets the same one).
    DefaultStage = 'random',

    -- Fighter a player holds when they first sit down (falls back to the first enabled fighter).
    DefaultFighter = 'franklin',

    -- Skins per fighter (0 = default, always owned; the rest are unlocked through the shop or the
    -- season pass - see configs/shared/progression.lua). A new seat starts on skin 0.
    Costumes = 6,

    Stocks = { 1, 2, 3, 4, 5 }, -- selectable stock (lives) counts
    DefaultStocks = 3, -- a fresh lobby's stock count (should be one of Stocks)

    Time = { 0, 3, 5, 7 }, -- selectable time limits in minutes; 0 = no time limit
    DefaultTime = 0, -- a fresh lobby's time limit (should be one of Time)

    Items = true, -- items allowed at all; false forces them off and hides the switch

    -- Stage hazards: each mechanics stage's signature mechanic (the Freight Run's signal gantries,
    -- the LS River flood, the Humane Labs lasers, the swamp gators, ...). With hazards off every
    -- stage plays its neutral layout - still a fair stage, nothing moves, strikes or blows. The
    -- six neutral stages (rooftop, pier, grove, vinewood, legion, golf) have no hazards either way.
    --   true      on by default; the lobby host may switch them off (HAZARDS ON/OFF)
    --   false     forced OFF: the switch is hidden and every match plays the neutral layouts
    --   'always'  forced ON: every match has hazards and the host's switch has no effect
    -- The server enforces it: a match starts with whatever this allows, whatever a client asked.
    Hazards = true,

    CpuLevels = { 1, 9 }, -- lowest and highest CPU difficulty the host may pick
    DefaultCpuLevel = 5, -- level of a freshly added CPU (clamped into CpuLevels)
}
