Architecture and lifecycle
v0’s world package models concrete shared assemblies. An assembly owns fixed fields such as its deterministic tenant/item key, owner-cap ID, status, location, energy, and metadata; anchoring and sharing are direct lifecycle operations.
v1’s active packages are core, character, and inventory; the former world package is archived. An Entity is deterministically derived from a tenant-scoped key and holds dynamically installed typed modules.
flowchart LR V0[Fixed shared assembly] --> Fields[Fixed domain fields] V1[Entity] --> Modules[Installed Module<T> values] Modules --> Action[Named Action] Action --> Request[Locked Request] Request --> Requirements[Typed requirements] Requirements --> Complete[Unlock and complete]
install, uninstall, action changes, and interaction lock an entity and return a no-ability Request. Each Requirement must be consumed before completion. This retains Sui Move, shared objects, deterministic identity, tenant partitioning, on-chain rules, and atomic transactions, but requires builders to compose a request flow rather than call a fixed assembly API.
Modules carry local version checks, but the reviewed active source has no universal cross-package data migration function. Treat upgrade as explicit module/version and integration work, not automatic compatibility.