yasuki_core.engine.intents.apply_intent#

apply_intent(state, seat, intent)[source]#

Validate and apply one intent, mutating state in place and returning the events produced.

Pure apart from the in-place mutation: no I/O, deterministic given the state, seat, and intent (shuffles derive their order from the intent’s explicit seed). Ownership, side, and capacity violations are rejected and leave the state untouched, returning an empty list; seq advances only when the table actually changes.

Parameters:
stateTableState

The authoritative table; mutated in place on an accepted intent.

seatPlayerId

The seat attempting the action.

intentIntent

The operation to apply.