# Grenade constructor with actual entity allocation RE-608. Reproduce with `python3 scripts/analyze_qvm_allocated_grenade.py`; check with `python3 scripts/test_qvm_allocated_grenade.py`. The [machine report](qvm-allocated-grenade.json) retains source identity and bounded fixtures. The grenade wrapper accepts an optional recovered allocator; default supplied-pointer behavior stays byte-identical. The new report uses actual277165/277125 for both extension and reuse, then actual source descriptor/direction/velocity writes. All220 final words are independently checked, including slot64/in-use1, owner/callback/fuse and mode-specific speed with optional supplied ground velocity. Allocator−16 registration requests are retained as evidence;276433 remains a supplied response and no engine world query runs. The source does not clear the old client-pointer word520 in this path. Callback223156 and trajectory physics remain pending. The broader firing-chain report still uses its original supplied allocation contract; this composition establishes the narrower constructor path only. No original executable/full QVM/native collision/physics/rendering executes. Native responses and legal input domains are supplied or unverified where stated; full runtime/macOS/Linux Rust/Bevy/Solari gameplay remains open.