cbm, addCargoBundleMove, addStation
cbm, addCargoBundleMove, addStation, transactionMove
    public static AddStationMove generateMove(ReadOnlyWorld w,	String stationName, Point p, FreerailsPrincipal owner, int	buildingType) {        int cargoBundleNumber = w.size(KEY.CARGO_BUNDLES);        Move addCargoBundleMove = new AddCargoBundleMove(cargoBundleNumber,                new CargoBundleImpl());        int stationNumber = w.size(KEY.STATIONS, owner);	GameTime now = (GameTime) w.get(ITEM.TIME, Player.AUTHORITATIVE);        StationModel station = new StationModel(p.x, p.y, stationName,                w.size(KEY.CARGO_TYPES), cargoBundleNumber, now);        Move addStation = new AddItemToListMove(KEY.STATIONS, stationNumber,                station, owner);	BuildingTile oldBuilding = w.getTile(p).getBuildingTile();	BuildingTile newBuilding = new BuildingTile(buildingType);	ChangeBuildingMove cbm = new ChangeBuildingMove(p, oldBuilding,		newBuilding, owner);        return new AddStationMove(new Move[] {                cbm, addCargoBundleMove, addStation            });    }