diff --git a/build.xml b/build.xml
index 93b73fde..dd7feee6 100644
--- a/build.xml
+++ b/build.xml
@@ -240,7 +240,7 @@
-
+
diff --git a/src/as/com/threerings/micasa/lobby/LobbyMarshaller.as b/src/as/com/threerings/micasa/lobby/LobbyMarshaller.as
new file mode 100644
index 00000000..0f7af6cb
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyMarshaller.as
@@ -0,0 +1,63 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.presents.client.Client;
+import com.threerings.presents.data.InvocationMarshaller;
+
+/**
+ * Provides the implementation of the LobbyService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class LobbyMarshaller extends InvocationMarshaller
+ implements LobbyService
+{
+ /** The method id used to dispatch getCategories requests. */
+ public static const GET_CATEGORIES :int = 1;
+
+ // from interface LobbyService
+ public function getCategories (arg1 :LobbyService_CategoriesListener) :void
+ {
+ var listener1 :LobbyMarshaller_CategoriesMarshaller = new LobbyMarshaller_CategoriesMarshaller();
+ listener1.listener = arg1;
+ sendRequest(GET_CATEGORIES, [
+ listener1
+ ]);
+ }
+
+ /** The method id used to dispatch getLobbies requests. */
+ public static const GET_LOBBIES :int = 2;
+
+ // from interface LobbyService
+ public function getLobbies (arg1 :String, arg2 :LobbyService_LobbiesListener) :void
+ {
+ var listener2 :LobbyMarshaller_LobbiesMarshaller = new LobbyMarshaller_LobbiesMarshaller();
+ listener2.listener = arg2;
+ sendRequest(GET_LOBBIES, [
+ arg1, listener2
+ ]);
+ }
+}
+}
diff --git a/src/as/com/threerings/micasa/lobby/LobbyMarshaller_CategoriesMarshaller.as b/src/as/com/threerings/micasa/lobby/LobbyMarshaller_CategoriesMarshaller.as
new file mode 100644
index 00000000..96f50c19
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyMarshaller_CategoriesMarshaller.as
@@ -0,0 +1,51 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.io.TypedArray;
+import com.threerings.presents.data.InvocationMarshaller_ListenerMarshaller;
+
+/**
+ * Marshalls instances of the LobbyService_CategoriesMarshaller interface.
+ */
+public class LobbyMarshaller_CategoriesMarshaller
+ extends InvocationMarshaller_ListenerMarshaller
+{
+ /** The method id used to dispatch gotCategories responses. */
+ public static const GOT_CATEGORIES :int = 1;
+
+ // from InvocationMarshaller_ListenerMarshaller
+ override public function dispatchResponse (methodId :int, args :Array) :void
+ {
+ switch (methodId) {
+ case GOT_CATEGORIES:
+ (listener as LobbyService_CategoriesListener).gotCategories(
+ (args[0] as TypedArray /* of class java.lang.String */));
+ return;
+
+ default:
+ super.dispatchResponse(methodId, args);
+ return;
+ }
+ }
+}
+}
diff --git a/src/as/com/threerings/micasa/lobby/LobbyMarshaller_LobbiesMarshaller.as b/src/as/com/threerings/micasa/lobby/LobbyMarshaller_LobbiesMarshaller.as
new file mode 100644
index 00000000..3c5acdfa
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyMarshaller_LobbiesMarshaller.as
@@ -0,0 +1,51 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.presents.data.InvocationMarshaller_ListenerMarshaller;
+import java.util.List;
+
+/**
+ * Marshalls instances of the LobbyService_LobbiesMarshaller interface.
+ */
+public class LobbyMarshaller_LobbiesMarshaller
+ extends InvocationMarshaller_ListenerMarshaller
+{
+ /** The method id used to dispatch gotLobbies responses. */
+ public static const GOT_LOBBIES :int = 1;
+
+ // from InvocationMarshaller_ListenerMarshaller
+ override public function dispatchResponse (methodId :int, args :Array) :void
+ {
+ switch (methodId) {
+ case GOT_LOBBIES:
+ (listener as LobbyService_LobbiesListener).gotLobbies(
+ (args[0] as List));
+ return;
+
+ default:
+ super.dispatchResponse(methodId, args);
+ return;
+ }
+ }
+}
+}
diff --git a/src/as/com/threerings/micasa/lobby/LobbyService.as b/src/as/com/threerings/micasa/lobby/LobbyService.as
new file mode 100644
index 00000000..dfb46c40
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyService.as
@@ -0,0 +1,38 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+
+/**
+ * An ActionScript version of the Java LobbyService interface.
+ */
+public interface LobbyService extends InvocationService
+{
+ // from Java interface LobbyService
+ function getCategories (arg1 :LobbyService_CategoriesListener) :void;
+
+ // from Java interface LobbyService
+ function getLobbies (arg1 :String, arg2 :LobbyService_LobbiesListener) :void;
+}
+}
diff --git a/src/as/com/threerings/micasa/lobby/LobbyService_CategoriesListener.as b/src/as/com/threerings/micasa/lobby/LobbyService_CategoriesListener.as
new file mode 100644
index 00000000..e4405156
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyService_CategoriesListener.as
@@ -0,0 +1,36 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.io.TypedArray;
+import com.threerings.presents.client.InvocationService_InvocationListener;
+
+/**
+ * An ActionScript version of the Java LobbyService_CategoriesListener interface.
+ */
+public interface LobbyService_CategoriesListener
+ extends InvocationService_InvocationListener
+{
+ // from Java LobbyService_CategoriesListener
+ function gotCategories (arg1 :TypedArray /* of class java.lang.String */) :void
+}
+}
diff --git a/src/as/com/threerings/micasa/lobby/LobbyService_LobbiesListener.as b/src/as/com/threerings/micasa/lobby/LobbyService_LobbiesListener.as
new file mode 100644
index 00000000..30ef2a67
--- /dev/null
+++ b/src/as/com/threerings/micasa/lobby/LobbyService_LobbiesListener.as
@@ -0,0 +1,36 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.lobby {
+
+import com.threerings.presents.client.InvocationService_InvocationListener;
+import java.util.List;
+
+/**
+ * An ActionScript version of the Java LobbyService_LobbiesListener interface.
+ */
+public interface LobbyService_LobbiesListener
+ extends InvocationService_InvocationListener
+{
+ // from Java LobbyService_LobbiesListener
+ function gotLobbies (arg1 :List) :void
+}
+}
diff --git a/src/as/com/threerings/micasa/simulator/client/SimulatorService.as b/src/as/com/threerings/micasa/simulator/client/SimulatorService.as
new file mode 100644
index 00000000..ef9b1e3a
--- /dev/null
+++ b/src/as/com/threerings/micasa/simulator/client/SimulatorService.as
@@ -0,0 +1,36 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.simulator.client {
+
+import com.threerings.parlor.game.data.GameConfig;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+
+/**
+ * An ActionScript version of the Java SimulatorService interface.
+ */
+public interface SimulatorService extends InvocationService
+{
+ // from Java interface SimulatorService
+ function createGame (arg1 :GameConfig, arg2 :String, arg3 :int) :void;
+}
+}
diff --git a/src/as/com/threerings/micasa/simulator/data/SimulatorMarshaller.as b/src/as/com/threerings/micasa/simulator/data/SimulatorMarshaller.as
new file mode 100644
index 00000000..f180c72a
--- /dev/null
+++ b/src/as/com/threerings/micasa/simulator/data/SimulatorMarshaller.as
@@ -0,0 +1,51 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.micasa.simulator.data {
+
+import com.threerings.micasa.simulator.client.SimulatorService;
+import com.threerings.parlor.game.data.GameConfig;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.data.InvocationMarshaller;
+import com.threerings.util.Integer;
+
+/**
+ * Provides the implementation of the SimulatorService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class SimulatorMarshaller extends InvocationMarshaller
+ implements SimulatorService
+{
+ /** The method id used to dispatch createGame requests. */
+ public static const CREATE_GAME :int = 1;
+
+ // from interface SimulatorService
+ public function createGame (arg1 :GameConfig, arg2 :String, arg3 :int) :void
+ {
+ sendRequest(CREATE_GAME, [
+ arg1, arg2, Integer.valueOf(arg3)
+ ]);
+ }
+}
+}
diff --git a/src/as/com/threerings/parlor/tourney/client/TourneyService.as b/src/as/com/threerings/parlor/tourney/client/TourneyService.as
new file mode 100644
index 00000000..db55d4fc
--- /dev/null
+++ b/src/as/com/threerings/parlor/tourney/client/TourneyService.as
@@ -0,0 +1,42 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.parlor.tourney.client {
+
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+import com.threerings.presents.client.InvocationService_ConfirmListener;
+
+/**
+ * An ActionScript version of the Java TourneyService interface.
+ */
+public interface TourneyService extends InvocationService
+{
+ // from Java interface TourneyService
+ function cancel (arg1 :InvocationService_ConfirmListener) :void;
+
+ // from Java interface TourneyService
+ function join (arg1 :InvocationService_ConfirmListener) :void;
+
+ // from Java interface TourneyService
+ function leave (arg1 :InvocationService_ConfirmListener) :void;
+}
+}
diff --git a/src/as/com/threerings/parlor/tourney/client/TourniesService.as b/src/as/com/threerings/parlor/tourney/client/TourniesService.as
new file mode 100644
index 00000000..92cd0a44
--- /dev/null
+++ b/src/as/com/threerings/parlor/tourney/client/TourniesService.as
@@ -0,0 +1,37 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.parlor.tourney.client {
+
+import com.threerings.parlor.tourney.data.TourneyConfig;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+import com.threerings.presents.client.InvocationService_ResultListener;
+
+/**
+ * An ActionScript version of the Java TourniesService interface.
+ */
+public interface TourniesService extends InvocationService
+{
+ // from Java interface TourniesService
+ function createTourney (arg1 :TourneyConfig, arg2 :InvocationService_ResultListener) :void;
+}
+}
diff --git a/src/as/com/threerings/parlor/tourney/data/TourneyMarshaller.as b/src/as/com/threerings/parlor/tourney/data/TourneyMarshaller.as
new file mode 100644
index 00000000..c2da334b
--- /dev/null
+++ b/src/as/com/threerings/parlor/tourney/data/TourneyMarshaller.as
@@ -0,0 +1,79 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.parlor.tourney.data {
+
+import com.threerings.parlor.tourney.client.TourneyService;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService_ConfirmListener;
+import com.threerings.presents.data.InvocationMarshaller;
+import com.threerings.presents.data.InvocationMarshaller_ConfirmMarshaller;
+
+/**
+ * Provides the implementation of the TourneyService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class TourneyMarshaller extends InvocationMarshaller
+ implements TourneyService
+{
+ /** The method id used to dispatch cancel requests. */
+ public static const CANCEL :int = 1;
+
+ // from interface TourneyService
+ public function cancel (arg1 :InvocationService_ConfirmListener) :void
+ {
+ var listener1 :InvocationMarshaller_ConfirmMarshaller = new InvocationMarshaller_ConfirmMarshaller();
+ listener1.listener = arg1;
+ sendRequest(CANCEL, [
+ listener1
+ ]);
+ }
+
+ /** The method id used to dispatch join requests. */
+ public static const JOIN :int = 2;
+
+ // from interface TourneyService
+ public function join (arg1 :InvocationService_ConfirmListener) :void
+ {
+ var listener1 :InvocationMarshaller_ConfirmMarshaller = new InvocationMarshaller_ConfirmMarshaller();
+ listener1.listener = arg1;
+ sendRequest(JOIN, [
+ listener1
+ ]);
+ }
+
+ /** The method id used to dispatch leave requests. */
+ public static const LEAVE :int = 3;
+
+ // from interface TourneyService
+ public function leave (arg1 :InvocationService_ConfirmListener) :void
+ {
+ var listener1 :InvocationMarshaller_ConfirmMarshaller = new InvocationMarshaller_ConfirmMarshaller();
+ listener1.listener = arg1;
+ sendRequest(LEAVE, [
+ listener1
+ ]);
+ }
+}
+}
diff --git a/src/as/com/threerings/parlor/tourney/data/TourniesMarshaller.as b/src/as/com/threerings/parlor/tourney/data/TourniesMarshaller.as
new file mode 100644
index 00000000..9b7ab243
--- /dev/null
+++ b/src/as/com/threerings/parlor/tourney/data/TourniesMarshaller.as
@@ -0,0 +1,53 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.parlor.tourney.data {
+
+import com.threerings.parlor.tourney.client.TourniesService;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService_ResultListener;
+import com.threerings.presents.data.InvocationMarshaller;
+import com.threerings.presents.data.InvocationMarshaller_ResultMarshaller;
+
+/**
+ * Provides the implementation of the TourniesService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class TourniesMarshaller extends InvocationMarshaller
+ implements TourniesService
+{
+ /** The method id used to dispatch createTourney requests. */
+ public static const CREATE_TOURNEY :int = 1;
+
+ // from interface TourniesService
+ public function createTourney (arg1 :TourneyConfig, arg2 :InvocationService_ResultListener) :void
+ {
+ var listener2 :InvocationMarshaller_ResultMarshaller = new InvocationMarshaller_ResultMarshaller();
+ listener2.listener = arg2;
+ sendRequest(CREATE_TOURNEY, [
+ arg1, listener2
+ ]);
+ }
+}
+}
diff --git a/src/as/com/threerings/puzzle/client/PuzzleGameService.as b/src/as/com/threerings/puzzle/client/PuzzleGameService.as
new file mode 100644
index 00000000..49a5961c
--- /dev/null
+++ b/src/as/com/threerings/puzzle/client/PuzzleGameService.as
@@ -0,0 +1,39 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.puzzle.client {
+
+import com.threerings.io.TypedArray;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+
+/**
+ * An ActionScript version of the Java PuzzleGameService interface.
+ */
+public interface PuzzleGameService extends InvocationService
+{
+ // from Java interface PuzzleGameService
+ function updateProgress (arg1 :int, arg2 :TypedArray /* of int */) :void;
+
+ // from Java interface PuzzleGameService
+ function updateProgressSync (arg1 :int, arg2 :TypedArray /* of int */, arg3 :TypedArray /* of class com.threerings.puzzle.data.Board */) :void;
+}
+}
diff --git a/src/as/com/threerings/puzzle/data/PuzzleGameMarshaller.as b/src/as/com/threerings/puzzle/data/PuzzleGameMarshaller.as
new file mode 100644
index 00000000..6561e7b0
--- /dev/null
+++ b/src/as/com/threerings/puzzle/data/PuzzleGameMarshaller.as
@@ -0,0 +1,62 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.puzzle.data {
+
+import com.threerings.io.TypedArray;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.data.InvocationMarshaller;
+import com.threerings.puzzle.client.PuzzleGameService;
+import com.threerings.util.Integer;
+
+/**
+ * Provides the implementation of the PuzzleGameService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class PuzzleGameMarshaller extends InvocationMarshaller
+ implements PuzzleGameService
+{
+ /** The method id used to dispatch updateProgress requests. */
+ public static const UPDATE_PROGRESS :int = 1;
+
+ // from interface PuzzleGameService
+ public function updateProgress (arg1 :int, arg2 :TypedArray /* of int */) :void
+ {
+ sendRequest(UPDATE_PROGRESS, [
+ Integer.valueOf(arg1), arg2
+ ]);
+ }
+
+ /** The method id used to dispatch updateProgressSync requests. */
+ public static const UPDATE_PROGRESS_SYNC :int = 2;
+
+ // from interface PuzzleGameService
+ public function updateProgressSync (arg1 :int, arg2 :TypedArray /* of int */, arg3 :TypedArray /* of class com.threerings.puzzle.data.Board */) :void
+ {
+ sendRequest(UPDATE_PROGRESS_SYNC, [
+ Integer.valueOf(arg1), arg2, arg3
+ ]);
+ }
+}
+}
diff --git a/src/as/com/threerings/stage/client/StageSceneService.as b/src/as/com/threerings/stage/client/StageSceneService.as
new file mode 100644
index 00000000..b83fe3f6
--- /dev/null
+++ b/src/as/com/threerings/stage/client/StageSceneService.as
@@ -0,0 +1,41 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.stage.client {
+
+import com.threerings.io.TypedArray;
+import com.threerings.miso.data.ObjectInfo;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService;
+import com.threerings.presents.client.InvocationService_ConfirmListener;
+
+/**
+ * An ActionScript version of the Java StageSceneService interface.
+ */
+public interface StageSceneService extends InvocationService
+{
+ // from Java interface StageSceneService
+ function addObject (arg1 :ObjectInfo, arg2 :InvocationService_ConfirmListener) :void;
+
+ // from Java interface StageSceneService
+ function removeObjects (arg1 :TypedArray /* of class com.threerings.miso.data.ObjectInfo */, arg2 :InvocationService_ConfirmListener) :void;
+}
+}
diff --git a/src/as/com/threerings/stage/data/StageSceneMarshaller.as b/src/as/com/threerings/stage/data/StageSceneMarshaller.as
new file mode 100644
index 00000000..50566732
--- /dev/null
+++ b/src/as/com/threerings/stage/data/StageSceneMarshaller.as
@@ -0,0 +1,68 @@
+//
+// $Id$
+//
+// Vilya library - tools for developing networked games
+// Copyright (C) 2002-2010 Three Rings Design, Inc., All Rights Reserved
+// http://www.threerings.net/code/vilya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.stage.data {
+
+import com.threerings.io.TypedArray;
+import com.threerings.miso.data.ObjectInfo;
+import com.threerings.presents.client.Client;
+import com.threerings.presents.client.InvocationService_ConfirmListener;
+import com.threerings.presents.data.InvocationMarshaller;
+import com.threerings.presents.data.InvocationMarshaller_ConfirmMarshaller;
+import com.threerings.stage.client.StageSceneService;
+
+/**
+ * Provides the implementation of the StageSceneService interface
+ * that marshalls the arguments and delivers the request to the provider
+ * on the server. Also provides an implementation of the response listener
+ * interfaces that marshall the response arguments and deliver them back
+ * to the requesting client.
+ */
+public class StageSceneMarshaller extends InvocationMarshaller
+ implements StageSceneService
+{
+ /** The method id used to dispatch addObject requests. */
+ public static const ADD_OBJECT :int = 1;
+
+ // from interface StageSceneService
+ public function addObject (arg1 :ObjectInfo, arg2 :InvocationService_ConfirmListener) :void
+ {
+ var listener2 :InvocationMarshaller_ConfirmMarshaller = new InvocationMarshaller_ConfirmMarshaller();
+ listener2.listener = arg2;
+ sendRequest(ADD_OBJECT, [
+ arg1, listener2
+ ]);
+ }
+
+ /** The method id used to dispatch removeObjects requests. */
+ public static const REMOVE_OBJECTS :int = 2;
+
+ // from interface StageSceneService
+ public function removeObjects (arg1 :TypedArray /* of class com.threerings.miso.data.ObjectInfo */, arg2 :InvocationService_ConfirmListener) :void
+ {
+ var listener2 :InvocationMarshaller_ConfirmMarshaller = new InvocationMarshaller_ConfirmMarshaller();
+ listener2.listener = arg2;
+ sendRequest(REMOVE_OBJECTS, [
+ arg1, listener2
+ ]);
+ }
+}
+}