Refactored the ship machine from an invoked service to a spawned actor. Instead of invoking a single shipMachine in the ready state, ships are now spawned using XState’s spawn function and stored in a ship_actors array in the player context. This sets up the architecture for managing multiple ships independently.

The ShipActor type uses ActorRefFrom to properly type the actor references. The Ship component now receives an actor and reads state directly from actor.state.context - displaying ship type, cargo, and current state. When in flight, it shows the flight plan progress; otherwise it displays the current state name.

This change also improves the UI by showing a loading spinner while actor state is initializing, and cleans up some debug logging. The FlightPlan component was simplified to receive the flight plan directly rather than searching through an array.