Core declares the physics role: Physics_Interface, Rigidbody, Box_Collider (#69) #101

Merged
crowmaki merged 2 commits from physics-role-declaration into main 2026-09-06 23:33:19 +00:00
Owner

Closes #69. Part of #67.

Core reserves cinnabar.physics/1 and the Schema names cinnabar.rigidbody and cinnabar.box_collider, and declares Physics_Interface, Rigidbody, Box_Collider, Body_Type and Ray_Hit in the ABI Surface. Core registers nothing: with no physics Plugin listed the Interface is not found and both Schemas are absent.

Tests

tests/core/physics_abi_test.odin covers the acceptance criteria: ABI closure over the new types, the reserved names, the field set with transient flags on the body and shape ids, and absence of the role Headless. The closure helpers in the Scene ABI test are shared rather than file-private so the physics types are checked the same way.

Docs

Glossary entries for Physics Interface, Rigidbody, Collider, Implicit Static Body and Body User Tag; the Interface entry names Physics as a Core-declared role. A dated note on ADR-0003. ADR-0016's heading reads 0016 and its citation of the uncommitted research note is reworded.

Note

Rigidbody.static_body follows the issue's "transient body ids" wording. The parent issue's description of that field is self-contradictory, so it is given the one coherent meaning: the Implicit Static Body's id, held while the Plugin migrates colliders onto the real body. The Plugin issue can drop it if it turns out unneeded.

Closes #69. Part of #67. Core reserves `cinnabar.physics/1` and the Schema names `cinnabar.rigidbody` and `cinnabar.box_collider`, and declares `Physics_Interface`, `Rigidbody`, `Box_Collider`, `Body_Type` and `Ray_Hit` in the ABI Surface. Core registers nothing: with no physics Plugin listed the Interface is not found and both Schemas are absent. ## Tests `tests/core/physics_abi_test.odin` covers the acceptance criteria: ABI closure over the new types, the reserved names, the field set with transient flags on the body and shape ids, and absence of the role Headless. The closure helpers in the Scene ABI test are shared rather than file-private so the physics types are checked the same way. ## Docs Glossary entries for Physics Interface, Rigidbody, Collider, Implicit Static Body and Body User Tag; the Interface entry names Physics as a Core-declared role. A dated note on ADR-0003. ADR-0016's heading reads 0016 and its citation of the uncommitted research note is reworded. ## Note `Rigidbody.static_body` follows the issue's "transient body ids" wording. The parent issue's description of that field is self-contradictory, so it is given the one coherent meaning: the Implicit Static Body's id, held while the Plugin migrates colliders onto the real body. The Plugin issue can drop it if it turns out unneeded.
Core reserves cinnabar.physics/1 and the Schema names cinnabar.rigidbody
and cinnabar.box_collider, and declares the Interface, the two Component
structs, Body_Type and Ray_Hit in the ABI Surface. Nothing is registered:
with no physics Plugin listed the Interface is not found and both Schemas
are absent.

The closure helpers in the Scene ABI test are shared so the physics types
are checked against the surface the same way. Glossary entries, an ADR-0003
note for the third role, and the ADR-0016 heading and citation fixes land
with it.
crowmaki deleted branch physics-role-declaration 2026-09-06 23:33:19 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
crowmaki/cinnabar!101
No description provided.