docs: def state(self, initial=False, terminal=False,
                serialized=None):
          """
          Declare a state, possibly an initial state or a terminal state.
  
          This is a decorator for methods, but it will modify the method so as
          not to be callable any more.
  
          :param bool initial: is this state the initial state?
              Only one state on this :class:`automat.MethodicalMachine`
              may be an initial state; more than one is an error.
  
          :param bool terminal: Is this state a terminal state?
              i.e. a state that the machine can end up in?
              (This is purely informational at this point.)
  
          :param Hashable serialized: a serializable value
              to be used to represent this state to external systems.
              This value should be hashable;
              :py:func:`unicode` is a good type to use.
          """
          def decorator(stateMethod):
              state = MethodicalState(machine=self,
                                      method=stateMethod,
                                      serialized=serialized)
              if initial:
                  self._automaton.initialState = state
              return state
          return decorator