-- versions.lua
-- Modul zur Versionspruefung gemaess LMCP-Vertrag

local M = {}

M.SUPPORTED = {"2025-06-18"}

--- Prueft, ob eine Version unterstuetzt wird.
-- @param version Die zu pruefende Version (String oder nil)
-- @return boolean true wenn unterstuetzt, sonst false
-- @return table|nil Fehlerdetails bei Nichtunterstuetzung
function M.check(version)
    -- (a) version == nil oder "" -> true, nil
    if version == nil or version == "" then
        return true, nil
    end

    -- (b) exakter Treffer in M.SUPPORTED -> true, nil
    for _, supported_version in ipairs(M.SUPPORTED) do
        if version == supported_version then
            return true, nil
        end
    end

    -- (c) alles andere -> false, { code = -32022, data = { supported = M.SUPPORTED } }
    return false, {
        code = -32022,
        data = {
            supported = M.SUPPORTED
        }
    }
end

-- Keine neuen Globalen, keine Seiteneffekte, M.SUPPORTED wird nicht geaendert

return M
