Is a Finite State Machine a good way to model chess? A very common model in programming is the Finite State Machine (FSM) (see here for a great worked example.)
Is a FSM a good way to model chess? What are the best ways to go about it? What chess features can be put in; what should be left out?

I have no big knowledge of computer science or engineering, or even chess programming, so I was wondering about this question.
Yes, I think so.

You'd have all possible board positions as states (so lots of states, but finite). 
The starting position as an initial state. Legal moves as links between the states (so the "alphabet" would consist of all possible moves). Positions that end the game like checkmate, stalemate and dead positions as accepting states.

In the end you'd get the set of all possible chess games as the language that is accepted by the machine.

How you'd work this out formally with things like illegal moves, the 50- and 75- move rules, describing a list of legal moves formally et cetera are left as exercises for the reader.

Draw offers, and games ending in other external ways like a mobile phone going off should probably be left out.