saveUninitialized: false
 }));
 
-nunjucks.configure("templates", {
+const njx = nunjucks.configure("templates", {
   autoescape: true,
   express: app
 });
 
+njx.addFilter('active', function(list) {
+  if (list)
+    return list.filter(e => e.active === true);
+  else
+    return null;
+});
+
+njx.addFilter('idle', function(list) {
+  if (list)
+    return list.filter(e => e.active === false);
+  else
+    return null;
+});
+
 /* Load each of our game mini-apps.
  *
  * Each "engine" we load here must have a property .Game on the
   let idle = [];
 
   for (let id in lmno.games) {
-    if (lmno.games[id].players.length)
+    if (lmno.games[id].players.filter(p => p.active).length > 0)
       active.push(lmno.games[id]);
     else
       idle.push(lmno.games[id]);
   }
-  response.render('admin.html', { test: "foobar", games: { active: active, idle: idle}});
+  response.render('admin.html', { games: { active: active, idle: idle}});
 });
 
 
 
 <ul>
   {% for game in games.active %}
   <li>
-    {{ game.id }} ({{ game.clients.length }}/{{ game._players.length }} active)
-    {% for player in game._players %}
-      {{ player.name }}
-    {% endfor %}
+    {{game.meta.name}}: {{ game.id }} {{ game.players.length }} players
+    <ul>
+      <li>
+        Active players:
+        {% for player in game.players|active %}
+          {{ player.name }}
+        {% endfor %}
+      </li>
+      <li>
+        Idle players:
+        {% for player in game.players|idle %}
+          {{ player.name }}
+        {% endfor %}
+      </li>
+    </ul>
   </li>
   {% endfor %}
 </ul>
 <ul>
   {% for game in games.idle %}
   <li>
-    {{ game.id }} ({{ game._players.length }})
-    {% for player in game._players %}
-      {{ player.name }}
-    {% endfor %}
+    {{game.meta.name}}: {{ game.id }} {{ game.players.length }} players
+    <ul>
+      <li>
+        {% for player in game.players %}
+          {{ player.name }}
+        {% endfor %}
+      </li>
+    </ul>
   </li>
   {% endfor %}
 </ul>