Skip to main content

Module model

Module model 

Source
Expand description

The normalized in-memory Godot engine model — the shape of extension_api.json after xtask has resolved its asymmetries (Playbook §4.1/§4.2).

ApiData is the serializable root: a set of flat tables (classes, builtins, …) keyed by integer ids (ClassId/BuiltinId). It is what xtask codegen-api rkyv-encodes into the bundled blob, and what crate::EngineApi deserializes and indexes at load.

Strings are owned (String) rather than interned here: the model is built once and Arc-shared, its names are read by reference and never cloned on a hot path, so interning buys nothing — SmolStr is reserved for gdscript-hir, where source names are cloned and compared. Keeping the archived form free of custom string/hash types also keeps the rkyv blob trivially portable.

Structs§

ApiData
The serializable engine-model root: flat tables addressed by ClassId/BuiltinId. xtask codegen-api builds this from extension_api.json and rkyv-encodes it; the name indices are rebuilt at load by crate::EngineApi, so they are intentionally absent here.
ApiDataResolver
The resolver for an archived ApiData
ApiVersion
The Godot version the model was generated from.
ApiVersionResolver
The resolver for an archived ApiVersion
ArchivedApiData
An archived ApiData
ArchivedApiVersion
An archived ApiVersion
ArchivedBuiltinData
An archived BuiltinData
ArchivedBuiltinId
An archived BuiltinId
ArchivedBuiltinMember
An archived BuiltinMember
ArchivedClassData
An archived ClassData
ArchivedClassId
An archived ClassId
ArchivedConstInfo
An archived ConstInfo
ArchivedDocId
An archived DocId
ArchivedEnumInfo
An archived EnumInfo
ArchivedEnumValue
An archived EnumValue
ArchivedMethodSig
An archived MethodSig
ArchivedOperatorSig
An archived OperatorSig
ArchivedParam
An archived Param
ArchivedPropertyInfo
An archived PropertyInfo
ArchivedSignalSig
An archived SignalSig
ArchivedUtilityFn
An archived UtilityFn
BuiltinData
A builtin (Variant) type and its members.
BuiltinDataResolver
The resolver for an archived BuiltinData
BuiltinId
Index of a builtin (Variant) type in ApiData::builtins.
BuiltinIdResolver
The resolver for an archived BuiltinId
BuiltinMember
One field of a builtin Variant type (e.g. Vector2.x).
BuiltinMemberResolver
The resolver for an archived BuiltinMember
ClassData
An engine class and its members.
ClassDataResolver
The resolver for an archived ClassData
ClassId
Index of an engine class in ApiData::classes.
ClassIdResolver
The resolver for an archived ClassId
ConstInfo
A constant. Engine-class constants are integers (notification/flag values); builtin constants carry a typed source-literal expression (Vector2(0, 0)).
ConstInfoResolver
The resolver for an archived ConstInfo
DocId
Index into the lazy documentation store. The Phase-2 thin slice never populates the store, so every doc field is None; the fields exist now so wiring docs in is additive (Playbook §4.6).
DocIdResolver
The resolver for an archived DocId
EnumInfo
An enum (class enum, builtin enum, or global enum).
EnumInfoResolver
The resolver for an archived EnumInfo
EnumValue
One named enum value.
EnumValueResolver
The resolver for an archived EnumValue
MethodSig
A method signature (engine class method, builtin method, or — without the receiver — a utility function shares the same shape via UtilityFn).
MethodSigResolver
The resolver for an archived MethodSig
OperatorSig
A builtin-type operator overload. right is None for unary operators (unary-, not).
OperatorSigResolver
The resolver for an archived OperatorSig
Param
A function/method parameter.
ParamResolver
The resolver for an archived Param
PropertyInfo
A class property. enum_of carries the qualified enum name recovered from the property’s getter (Playbook §4.2 — the JSON reports an enum property’s storage type as int, but its getter’s return type is enum::…).
PropertyInfoResolver
The resolver for an archived PropertyInfo
SignalSig
A signal declaration.
SignalSigResolver
The resolver for an archived SignalSig
UtilityFn
A @GlobalScope utility function (sin, print, range, …).
UtilityFnResolver
The resolver for an archived UtilityFn

Enums§

ApiType
Whether a symbol is part of the runtime API or editor-only (Playbook §4.2 — gate editor-only symbols out of runtime completion).
ApiTypeResolver
The resolver for an archived ApiType
ArchivedApiType
An archived ApiType
ArchivedElemRef
An archived ElemRef
ArchivedTyRef
An archived TyRef
ElemRef
The element type of a typed container. Non-recursive on purpose: Phase 2 does not track nested element types, so a nested typed container (Array[Array[int]]) collapses to its bare builtin (Array) here (Playbook §2). Keeping this flat also keeps the rkyv archive free of recursive Box bounds.
ElemRefResolver
The resolver for an archived ElemRef
TyRef
An unresolved API type reference, parsed from the extension_api.json type-string grammar (Playbook §4.2). Builtin/Class are already resolved to ids at codegen time (second pass, after the name tables are built); Enum keeps its qualified string for gdscript-hir to resolve against a class’s / the global enum set.
TyRefResolver
The resolver for an archived TyRef