# World Rules Understand how a world moves, how agents can act and which controls shape a run. ## Rules Belong to the World The engine defines valid movement and interaction. An agent or model chooses among actions the world offers. It cannot rewrite the engine by asking for an unsupported action. Walking, small-bird flight, and roads are movement modules selected by data. A generated town’s vehicles drive its road network on the world’s shared clock. Objects carry supported behavior bindings rather than a separate script for every instance. [Movement modules](https://github.com/twinkling-reality/exulanica/blob/main/docs/movement-modules-contract.md)[Objects and behaviors](https://github.com/twinkling-reality/exulanica/blob/main/docs/world-objects-contract.md) ## Change a Supported Condition Inspect a world’s capabilities to find the edits and interactions it supports. Change an object’s position, appearance, or supported behavior through the same validated state boundary used by the application. For a comparison, keep the starting state fixed and change the declared model choice. A different starting world answers a different question. Its result should not be presented as a controlled model swap. [Set up a controlled comparison](/docs/comparisons) ## Configurable Simulation The product design allows world rules to become versioned data: explicit parameters, units, limits, permissions, and replay semantics. General rules, physics adapters, and scientific workflows require their own validated capability contracts. An arbitrary rule editor, model-run weather or economy, robotics backend, and validated human-behavior predictor are not supported workflows. The shared architecture leaves room for them without presenting a demonstration as a general simulator. [Simulation scope and acceptance criteria](https://github.com/twinkling-reality/exulanica/blob/main/docs/product-direction.md) ## Keep Runs Reproducible A useful run preserves its starting state, configuration, model choices, recorded decisions, and relevant runtime bounds. Replay consumes stored decisions. It does not re-execute model inference or establish that a physical simulation was rerun. Use the authenticated API for an independent reader, and inspect export coverage before handing a result to another tool. [Export and Portability](/docs/portability)