return {
    -- Skill-check minigame run after the strip. Enable = false to skip it. Swap
    -- `lockpick` for any other minigame.* (see client/minigame.lua) or your own
    -- function returning true/false.
    Minigame = {
        Enable = true,
        Start = function()
            return require('client.minigame').lockpick({
                nodeCount           = 5,    -- target nodes around the ring
                hitWindowDeg        = 32,   -- angular tolerance per node (deg)
                rotationSpeedDegSec = 150,  -- orb orbit speed (deg/sec)
                speedUpMultiplier   = 1.12, -- speed-up applied after each node opens
                timeLimitSec        = 0,    -- seconds before caught; 0 = no limit
            }).success
        end,
    },

    Cooldown = 25,                                            -- Per-unit cooldown in minutes (keyed by world coords).
    Items = { 'powersaw', 'anglegrinder', 'bolt_cutter', 'WEAPON_HATCHET' }, -- Cutting tools (any one is enough).
    StripTime = 18,                                           -- Seconds to strip a unit (progress bar duration).
    BaseXP = 22,
    GiveXPForItems = true,
    Logging = true,

    -- All HVAC / AC unit prop hashes scattered around the GTA V map. ox_target's
    -- `addModel` attaches our strip option to every existing world prop matching
    -- one of these — no spawning needed, the props are already part of the map.
    -- Players have to find them: rooftops, alley walls, the back of stores.
    --
    -- Two size groups:
    --   l_* — large floor-mount commercial condensers (rooftops, parking lots)
    --   m_* — medium wall-mount residential condensers (alleys, side walls)
    --
    -- The reward tables don't differentiate by size right now; you can split
    -- them in the admin panel if you want larger units to drop more copper.
    Models = {
        'prop_aircon_l_01',
        'prop_aircon_l_02',
        'prop_aircon_l_03',
        'prop_aircon_l_03_dam',
        'prop_aircon_l_04',
        'prop_aircon_m_01',
        'prop_aircon_m_02',
        'prop_aircon_m_03',
        'prop_aircon_m_04',
        'prop_aircon_m_05',
        'prop_aircon_m_06',
    },

    PoliceAlert = {
        Enable = true,
        Chance = 30,
        Send = function()
            local alertMessage = 'Rooftop AC unit theft reported'
            print('Police Alert: ' .. alertMessage)

            -- Example: cd_dispatch integration (uncomment to use)
            --[[
            local data = exports['cd_dispatch']:GetPlayerInfo()
            TriggerServerEvent('cd_dispatch:AddNotification', {
                job_table = {'police'},
                coords = data.coords,
                title = '10-21R - Rooftop Theft',
                message = ('A %s stripping AC units off a rooftop at %s'):format(data.sex, data.street),
                flash = 0,
                unique_id = data.unique_id,
                sound = 1,
                blip = {
                    sprite = 380,
                    scale = 1.1,
                    colour = 1,
                    flashes = false,
                    text = '911 - Rooftop Theft',
                    time = 5,
                    radius = 0,
                }
            })
            --]]
        end,
    },

    -- Loot table per player level. Heavy on copper/aluminum/scrap since that's
    -- the real-world appeal of stripping HVAC units. Modelled on the example
    -- reward shape: most rolls return 2-3 different scrap items per success.
    Rewards = {
        [1] = {
            { item = 'metalscrap', chance = 50, min = 2, max = 4, xp = 1 },
            { item = 'plastic',    chance = 35, min = 1, max = 3, xp = 1 },
            { item = 'copper',     chance = 35, min = 1, max = 3, xp = 2 },
            { item = 'aluminum',   chance = 25, min = 1, max = 2, xp = 3 },
            { item = 'rubber',     chance = 25, min = 1, max = 2, xp = 1 },
            { item = 'iron',       chance = 25, min = 1, max = 2, xp = 2 },
            { item = 'glass',      chance = 20, min = 1, max = 2, xp = 1 },
        },
        [2] = {
            { item = 'metalscrap', chance = 45, min = 3, max = 5, xp = 1 },
            { item = 'copper',     chance = 35, min = 2, max = 4, xp = 2 },
            { item = 'aluminum',   chance = 30, min = 2, max = 3, xp = 3 },
            { item = 'plastic',    chance = 30, min = 1, max = 4, xp = 1 },
            { item = 'iron',       chance = 25, min = 1, max = 3, xp = 2 },
            { item = 'steel',      chance = 18, min = 1, max = 2, xp = 5 },
            { item = 'rubber',     chance = 22, min = 1, max = 2, xp = 1 },
            { item = 'glass',      chance = 20, min = 1, max = 2, xp = 1 },
        },
        [3] = {
            { item = 'copper',         chance = 40, min = 3, max = 6, xp = 2 },
            { item = 'metalscrap',     chance = 35, min = 4, max = 6, xp = 1 },
            { item = 'aluminum',       chance = 30, min = 2, max = 4, xp = 3 },
            { item = 'steel',          chance = 22, min = 2, max = 3, xp = 5 },
            { item = 'iron',           chance = 22, min = 2, max = 3, xp = 2 },
            { item = 'plastic',        chance = 25, min = 1, max = 4, xp = 1 },
            { item = 'rubber',         chance = 20, min = 1, max = 2, xp = 1 },
            { item = 'glass',          chance = 18, min = 1, max = 2, xp = 1 },
            { item = 'platinum_chunk', chance = 8,  min = 1, max = 1, xp = 20 },
        },
    },
}
