yasuki_core.engine.action_log.apply_and_log#

apply_and_log(state, log, seat, intent, ts)[source]#

Apply intent and, if accepted, append a LogEntry for it.

The recording hook lives in core so every transport records identically. An intent is recorded exactly when apply_intent accepts it (returns at least one event); rejected intents change neither the state nor the log.

Parameters:
stateTableState

The authoritative table, mutated in place on acceptance.

logActionLog

The log to append to.

seatPlayerId

The acting seat.

intentIntent

The operation to apply.

tsfloat

Server wall-clock timestamp for the entry, as a POSIX time; the caller reads the clock.