Parent: #137
Goal
Use one low-level FFI crate and one small safe wrapper without adding speculative framework layers.
Scope
- Define workspace or package layout compatible with the repository
- Keep raw declarations isolated from safe ownership APIs
- Document supported Rust and native build expectations
Non-goals
- A crate per C API module
- A Rust simulator reimplementation
- RL-framework-specific crates
Acceptance criteria
- Unsafe declarations are confined to the sys boundary.
- The safe crate can evolve internally without exposing raw handles.
- The layout has one documented build and test path.
Verification
Build empty linked crate targets and review their public dependency direction.
Parent: #137
Goal
Use one low-level FFI crate and one small safe wrapper without adding speculative framework layers.
Scope
Non-goals
Acceptance criteria
Verification
Build empty linked crate targets and review their public dependency direction.