Glossary
The terms these docs use, in one place.
Asset: a single piece of game content stored as data: one part, one body, one resource, one mission. PatchManager runs your patches against assets as they load.
Label: a group of assets that load together (parts, celestial bodies, and so on). A patch is registered against a label, then narrowed to specific assets by name. Typed modules pick the label for you.
Address (or name): an asset's globally unique identifier under its label. It is what :Named matches against and what you pass when creating a new asset. For parts it is the part id, for bodies the body name, and so on.
Patch: a registered operation that targets assets under a label and changes them. You create one with a Patch call and configure it through the chained methods.
Patch name: the name you give a patch (the string in PM.Parts:Patch("name")). It identifies the patch to you and to other patches, and is not the name of the asset being changed.
Namespaced id: a patch's full id, modId:patchName. PatchManager prepends your mod id automatically, so two mods can use the same patch name without colliding.
ModId: your mod's id, available as a global. See File layout and discovery.
Converter: the piece that turns an asset's raw JSON into the value your callback works with and back again. PM.JSON uses the generic converter, the typed modules each use their own. See Converters explained.
Pass: one of three full sweeps over every patched label, run in order: Early, then Default, then Late. Selected with :Early() or :Late(). See The patch lifecycle.
Bucket (ordering bucket): one of three ordering groups within a pass, run in order: First, then Default, then Last. Selected with :First() or :Last(). Before and after relationships only apply within a single bucket.
Gate: a condition (:Requires, :Has, :HasNo) that decides whether a patch runs against a given asset, reporting a clean skip when it does not. See Gates.
Feature: a named item of content or behaviour that a campaign can have on or off. Its id has the form ModId:FeatureId. Patches and created assets are gated on features with :Feature and :NoFeature. Assets are gated on features with Addressables labels. See Campaign features and Features.
Default feature: the feature that each mod has without a declaration, ModId:ModId. All content that a mod registers or ships needs this feature. A campaign without the default feature of a mod does not have the mod.
Feature set: the features of a campaign. PatchManager runs and caches patches separately for each set.
Campaign pack: the item that a player selects to start a campaign. It names the galaxy and the features that a new campaign starts with. See Campaign packs.
The Do callback: the function passed to :Do that receives an asset and changes it. See The Do callback.
Module / data (parts): a part holds modules (Module_Engine), and a module holds data entries (Data_Engine) where most of its settings live. See Parts.
Indexed list: a JSON list addressable by name as well as position (engine modes by engineID, variants by VariantId, and so on). It supports lookup-by-name verbs like :Patch(key, callback).
Summary: the pm_summary.log report that PatchManager writes after each run. It has a part for each feature set, and lists the patches that applied, skipped, errored, and were removed. Your main debugging tool. See Reading the summary.
Universe: PatchManager's internal model of all loaded mods and their patches for a run. You do not interact with it directly. It is the thing that resolves dependencies and ordering.
Converter envelope: the outer JSON wrapper around some assets (a version, a data subtree). Typed wrappers expose the inner subtree directly while preserving the envelope for round-tripping, so you usually edit fields without thinking about it.