teleport-position-ignored
a tool's teleport (POST /entity/{id}/teleport, an editor drag during Play, a test harness) moved an entity at least 0.25 m, and two ticks later its own motion started back where it was (or more than half the jump from where it was put) while a behaviour wrote its position: that behaviour keeps the position in its own variables (a module-level let, a ctx.state copy) and wrote it over the move; said once per entity per run, with the writing behaviour as the module (native only: the web runtime does not attribute writes yet)
| Severity | warning |
Meaning
a tool's teleport (POST /entity/{id}/teleport, an editor drag during Play, a test harness) moved an entity at least 0.25 m, and two ticks later its own motion started back where it was (or more than half the jump from where it was put) while a behaviour wrote its position: that behaviour keeps the position in its own variables (a module-level let, a ctx.state copy) and wrote it over the move; said once per entity per run, with the writing behaviour as the module (native only: the web runtime does not attribute writes yet)
Fix
keep the position on the entity (read ctx.entity.position back each tick) or in ctx.state, and adopt the teleported event's position in onEvent; module-level state is invisible to snapshots, hot reload and teleports. The critic's behavior-position-ignores-teleport names the module before it runs