Beat 2

Assign

The scheduler picks an entry off the inbox and hands it to the stamper. The being's role is resolved. The moment has a frame.

What happens

The scheduler runs per-being. It looks at the highest-priority entry in the being's inbox and decides: yes, run this now. It loads the being row, resolves which role the moment will run under (the entry carries one or the being's default applies), and mints a fresh Act id.

An Act is the row that frames one moment. It carries who acted, on whose behalf, what role they wore, when it opened, what message started it. The Act doesn't write to Mongo yet. It is planned, held in memory, threaded through the rest of the beats.

What's in the frame

The summonCtx, the moment's working context, is built here. It holds the actId, an empty ΔF (the set of facts the moment will stamp), the orientation (forward, half, inward, how the being wants to fold), and the calling identity.

Every Fact emitted during this moment will join ΔF. None of them commit until the seal at the end.

Why it matters

Assign is where one being becomes the actor of one moment. Before assign, a being is potential. After assign, a specific moment is underway on their reel. If the cycle is the heartbeat, assign is the systole, the contraction that decides who acts next.