return {
    LrSdkVersion = 10.0,
    LrSdkMinimumVersion = 6.0,

    LrToolkitIdentifier = 'com.alibosworth.randompairgenerator',
    LrPluginName = 'Random Pair Generator',

    -- Runs once when the plugin loads (startup, enable, reload).
    -- Registers IPC action handlers so the helper <-> plugin RPC
    -- surface is wired up even before the user clicks the menu.
    -- Avoids the 'unknown action' state that would otherwise hit
    -- when adding a new handler: without this, Handlers.register()
    -- only fired via menu click, so a Reload without a fresh click
    -- left the plugin unable to handle new actions.
    LrInitPlugin = 'Init.lua',

    -- Runs on plugin disable/reload/remove (and possibly LR quit).
    -- Responsibility: tear down the external helper process and
    -- wipe transient /tmp state so we don't orphan resources.
    LrShutdownPlugin = 'Shutdown.lua',

    -- Renders a custom section inside Lightroom's Plug-in
    -- Manager dialog.  Shows version + pre-release notice +
    -- author contact so users who got the plugin outside its
    -- intended distribution channel can find the home page
    -- and reach us.
    LrPluginInfoProvider = 'InfoProvider.lua',

    -- Appears under the Library menu (Library > Plug-in Extras).
    LrLibraryMenuItems = {
        {
            title = 'Start Random Pair Generator',
            file = 'Open.lua',
        },
    },

    -- Also register under File > Plug-in Extras. Many LR users
    -- expect to find plugin entry points there; LrLibraryMenuItems
    -- only surfaces in Library mode. LrExportMenuItems is the SDK
    -- key that lands items in File > Plug-in Extras regardless of
    -- the active module.
    LrExportMenuItems = {
        {
            title = 'Start Random Pair Generator',
            file = 'Open.lua',
        },
    },

    -- `date` is the YYYY-MM-DD the build was cut.  Bumped
    -- alongside `build`.  Surfaces wherever Version.string()
    -- appears (Dashboard, Troubleshooting, helper.log, browser
    -- console, README) so testers can sanity-check that
    -- they're running the build they think they are.
    VERSION = { major = 0, minor = 1, revision = 1, build = 19, date = '2026-05-08' },
}
