Yog stable C ABI — the ONLY types that cross the mod/runtime boundary.
Rules this file must never break:
- Every type is
#[repr(C)]. - No Rust trait objects, no generics, no std types in public structs.
- New fields are appended only at the END of structs; increment
ABI_MINOR. - ABI_MAJOR bumps only when an existing field is removed or reordered.
Mods and the runtime are compiled independently. They are compatible when
ABI_MAJOR matches and mod_ABI_MINOR <= runtime_ABI_MINOR.