Corrects this corpus's own notation: there is no lower bound, values below 16 pass. sub_8225EC78(X, kind, ...) -- the function carrying "script load cancel" -- stores its second argument into X+12 and applies the same two tests to it immediately, bailing out of the load. So the gate is the object's invariant, re-checked at every later touch, not a selector. 42 sites image-wide have the shape, 34 of them in one code region plus 3 in sub_8225EC78. Object chain: X = [GamePart+104] is the current script instance (installed at 0x821A78EC, previous one torn down via sub_8225EB60); X+4 -> Y; Y+4 -> the ScriptPhase; Y+72 and [ScriptPhase+10152] get the answer. Refutes my own lead in the same pass: "X+12 is a GamePart id and 16 is the unregistered one" fails its control -- 1, 2 and 18 are also absent from the RegisterToFactory list, so 16 is one of four gaps. Docs only; artefacts byte-identical.