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-apibuilds this fromextension_api.jsonandrkyv-encodes it; the name indices are rebuilt at load bycrate::EngineApi, so they are intentionally absent here. - ApiData
Resolver - The resolver for an archived
ApiData - ApiVersion
- The Godot version the model was generated from.
- ApiVersion
Resolver - The resolver for an archived
ApiVersion - Archived
ApiData - An archived
ApiData - Archived
ApiVersion - An archived
ApiVersion - Archived
Builtin Data - An archived
BuiltinData - Archived
Builtin Id - An archived
BuiltinId - Archived
Builtin Member - An archived
BuiltinMember - Archived
Class Data - An archived
ClassData - Archived
Class Id - An archived
ClassId - Archived
Const Info - An archived
ConstInfo - Archived
DocId - An archived
DocId - Archived
Enum Info - An archived
EnumInfo - Archived
Enum Value - An archived
EnumValue - Archived
Method Sig - An archived
MethodSig - Archived
Operator Sig - An archived
OperatorSig - Archived
Param - An archived
Param - Archived
Property Info - An archived
PropertyInfo - Archived
Signal Sig - An archived
SignalSig - Archived
Utility Fn - An archived
UtilityFn - Builtin
Data - A builtin (Variant) type and its members.
- Builtin
Data Resolver - The resolver for an archived
BuiltinData - Builtin
Id - Index of a builtin (Variant) type in
ApiData::builtins. - Builtin
IdResolver - The resolver for an archived
BuiltinId - Builtin
Member - One field of a builtin Variant type (e.g.
Vector2.x). - Builtin
Member Resolver - The resolver for an archived
BuiltinMember - Class
Data - An engine class and its members.
- Class
Data Resolver - The resolver for an archived
ClassData - ClassId
- Index of an engine class in
ApiData::classes. - Class
IdResolver - The resolver for an archived
ClassId - Const
Info - A constant. Engine-class constants are integers (notification/flag values); builtin
constants carry a typed source-literal expression (
Vector2(0, 0)). - Const
Info Resolver - The resolver for an archived
ConstInfo - DocId
- Index into the lazy documentation store. The Phase-2 thin slice never populates the
store, so every
docfield isNone; the fields exist now so wiring docs in is additive (Playbook §4.6). - DocId
Resolver - The resolver for an archived
DocId - Enum
Info - An enum (class enum, builtin enum, or global enum).
- Enum
Info Resolver - The resolver for an archived
EnumInfo - Enum
Value - One named enum value.
- Enum
Value Resolver - The resolver for an archived
EnumValue - Method
Sig - A method signature (engine class method, builtin method, or — without the receiver — a
utility function shares the same shape via
UtilityFn). - Method
SigResolver - The resolver for an archived
MethodSig - Operator
Sig - A builtin-type operator overload.
rightisNonefor unary operators (unary-,not). - Operator
SigResolver - The resolver for an archived
OperatorSig - Param
- A function/method parameter.
- Param
Resolver - The resolver for an archived
Param - Property
Info - A class property.
enum_ofcarries the qualified enum name recovered from the property’s getter (Playbook §4.2 — the JSON reports an enum property’s storage type asint, but its getter’s return type isenum::…). - Property
Info Resolver - The resolver for an archived
PropertyInfo - Signal
Sig - A signal declaration.
- Signal
SigResolver - The resolver for an archived
SignalSig - Utility
Fn - A
@GlobalScopeutility function (sin,print,range, …). - Utility
FnResolver - 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).
- ApiType
Resolver - The resolver for an archived
ApiType - Archived
ApiType - An archived
ApiType - Archived
Elem Ref - An archived
ElemRef - Archived
TyRef - 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 therkyvarchive free of recursiveBoxbounds. - Elem
RefResolver - The resolver for an archived
ElemRef - TyRef
- An unresolved API type reference, parsed from the
extension_api.jsontype-string grammar (Playbook §4.2).Builtin/Classare already resolved to ids at codegen time (second pass, after the name tables are built);Enumkeeps its qualified string forgdscript-hirto resolve against a class’s / the global enum set. - TyRef
Resolver - The resolver for an archived
TyRef