API shims: core packets, messages, assets, and primitive models #7

Closed
opened 2026-08-08 08:11:53 +00:00 by hugo · 1 comment
Owner

Objective

Implement the main crate public signatures for wire/data models without implementing codecs or network behavior.

Deliverables

  • Cover packet/message types, bit packing, permissions, primitives, texture/media/particle records, materials, assets, GLTF DTOs, archives, and import/export models.
  • Preserve exact public numeric widths, constants, enum values, flag bits, nested types, and event payload layouts.
  • Map generated packet APIs from the authoritative catalog.
  • Use standardized failing bodies for all operations.

Validation

  • All owned catalog records are mapped and callable.
  • Compile downstream construction and method-call fixtures for each domain.
  • No dynamic argument bags, erased values, or undocumented overload loss.

Prerequisite

Stage 0 project setup is complete. Do not implement production behavior in this milestone.

Project constraints

  • Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback.
  • Preserve recognizable API concepts while applying the documented Rust mapping rules.
  • Do not weaken parity requirements or add functional behavior outside this issue.
  • Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
## Objective Implement the main crate public signatures for wire/data models without implementing codecs or network behavior. ## Deliverables - Cover packet/message types, bit packing, permissions, primitives, texture/media/particle records, materials, assets, GLTF DTOs, archives, and import/export models. - Preserve exact public numeric widths, constants, enum values, flag bits, nested types, and event payload layouts. - Map generated packet APIs from the authoritative catalog. - Use standardized failing bodies for all operations. ## Validation - All owned catalog records are mapped and callable. - Compile downstream construction and method-call fixtures for each domain. - No dynamic argument bags, erased values, or undocumented overload loss. ## Prerequisite Stage 0 project setup is complete. Do not implement production behavior in this milestone. ## Project constraints - Implement the public surface in native Rust only; no CLR hosting, FFI bridge, subprocess, RPC, or C# fallback. - Preserve recognizable API concepts while applying the documented Rust mapping rules. - Do not weaken parity requirements or add functional behavior outside this issue. - Update the API mapping, coverage report, public docs, and relevant handover status in the same change.
hugo added this to the 02 - Full public API signature shim milestone 2026-08-08 08:11:53 +00:00
hugo added the enhancement label 2026-08-08 08:11:53 +00:00
Author
Owner

Implemented and pushed in commit 7086af9. Generated the complete catalog-driven, failure-only Rust surface for issue #7's main-assembly wire/data subset: 2,209 types and 22,805 members covering packets, Linden messages, assets, GLTF DTOs, archives/import-export (including Collada), materials, rendering DTOs, bit packing, permissions, primitives, and texture/media/particle records. The generator now supports a partial main-assembly slice with module-accurate paths while retaining issues #8-#10 types as pending shells. It preserves real fields, numeric widths, discriminants, flag bits, constants, generics, collection elements, and overload identities; standardized failures are emitted for every operation. Added project-owned cross-platform boundaries for the cataloged MessagePack, XML, collection, cancellation, and System.Numerics signature types without copying external member APIs. Fixed Rust string constants to &'static str and centrally disambiguated C# methods that collide with generated property setters. Coverage/docs/handover are updated. Review verified exact selected type/member-ID equality, no missing/duplicate destinations, no plausible fallback bodies, and no platform-specific mapping. Gates passed: mapping/shim determinism, cargo fmt, git diff --check, workspace cargo check, workspace test compile (--no-run), workspace clippy -D warnings, workspace docs, issue fixture (2 passed), and all prior focused shim regressions (5 passed).

Implemented and pushed in commit 7086af9. Generated the complete catalog-driven, failure-only Rust surface for issue #7's main-assembly wire/data subset: 2,209 types and 22,805 members covering packets, Linden messages, assets, GLTF DTOs, archives/import-export (including Collada), materials, rendering DTOs, bit packing, permissions, primitives, and texture/media/particle records. The generator now supports a partial main-assembly slice with module-accurate paths while retaining issues #8-#10 types as pending shells. It preserves real fields, numeric widths, discriminants, flag bits, constants, generics, collection elements, and overload identities; standardized failures are emitted for every operation. Added project-owned cross-platform boundaries for the cataloged MessagePack, XML, collection, cancellation, and System.Numerics signature types without copying external member APIs. Fixed Rust string constants to &'static str and centrally disambiguated C# methods that collide with generated property setters. Coverage/docs/handover are updated. Review verified exact selected type/member-ID equality, no missing/duplicate destinations, no plausible fallback bodies, and no platform-specific mapping. Gates passed: mapping/shim determinism, cargo fmt, git diff --check, workspace cargo check, workspace test compile (--no-run), workspace clippy -D warnings, workspace docs, issue fixture (2 passed), and all prior focused shim regressions (5 passed).
hugo closed this issue 2026-08-08 10:19:00 +00:00
Sign in to join this conversation.