---
title: TabletopGame.Observer
framework: tabletopkit
role: symbol
role_heading: Protocol
path: tabletopkit/tabletopgame/observer
---

# TabletopGame.Observer

A protocol for objects that progress gameplay when players take actions.

## Declaration

```swift
protocol Observer : AnyObject
```

## Topics

### Handling interaction updates

- [interactionWasUpdated(_:snapshot:)](tabletopkit/tabletopgame/observer/interactionwasupdated(_:snapshot:).md)

### Validating actions

- [validateAction(_:snapshot:)](tabletopkit/tabletopgame/observer/validateaction(_:snapshot:).md)
- [actionIsPending(_:oldSnapshot:newSnapshot:)](tabletopkit/tabletopgame/observer/actionispending(_:oldsnapshot:newsnapshot:).md)
- [actionWasConfirmed(_:oldSnapshot:newSnapshot:)](tabletopkit/tabletopgame/observer/actionwasconfirmed(_:oldsnapshot:newsnapshot:).md)
- [actionWasRolledBack(_:snapshot:)](tabletopkit/tabletopgame/observer/actionwasrolledback(_:snapshot:).md)
- [actionWasDiscarded(_:)](tabletopkit/tabletopgame/observer/actionwasdiscarded(_:).md)

### Handling seat actions

- [playerChangedSeats(_:oldSeat:newSeat:snapshot:)](tabletopkit/tabletopgame/observer/playerchangedseats(_:oldseat:newseat:snapshot:).md)
- [stateDidResetToBookmark(_:)](tabletopkit/tabletopgame/observer/statedidresettobookmark(_:).md)

### Handling cancellations

- [actionWasCancelled(_:reason:)](tabletopkit/tabletopgame/observer/actionwascancelled(_:reason:).md)

## See Also

### Observing actions

- [addObserver(_:)](tabletopkit/tabletopgame/addobserver(_:).md)
- [removeObserver(_:)](tabletopkit/tabletopgame/removeobserver(_:).md)
- [TabletopGame.ActionCancellationReason](tabletopkit/tabletopgame/actioncancellationreason.md)
