@Override
  public void write(Json json) {
    json.writeValue("layers", layers);
    json.writeValue("id", id);
    json.writeValue("state", state, state == null ? null : state.getClass());
    json.writeValue("verbs", verbManager);

    json.writeValue("actors", actors);
    json.writeValue("player", player);

    json.writeValue("backgroundAtlas", backgroundAtlas);
    json.writeValue("backgroundRegionId", backgroundRegionId);

    json.writeValue("lightMapAtlas", lightMapAtlas);

    json.writeValue("lightMapRegionId", lightMapRegionId);

    json.writeValue("musicFilename", musicFilename);
    json.writeValue("loopMusic", loopMusic);
    json.writeValue("initialMusicDelay", initialMusicDelay);
    json.writeValue("repeatMusicDelay", repeatMusicDelay);

    json.writeValue("isPlaying", music != null && music.isPlaying());
    json.writeValue("musicPos", music != null && music.isPlaying() ? music.getPosition() : 0f);

    json.writeValue("camera", camera);

    json.writeValue(
        "followActor",
        followActor == null ? null : followActor.getId(),
        followActor == null ? null : String.class);

    json.writeValue("depthVector", depthVector);

    json.writeValue(
        "polygonalNavGraph",
        polygonalNavGraph,
        polygonalNavGraph == null ? null : PolygonalNavGraph.class);
  }
 @Override
 public void setScale(float scaleX, float scaleY) {
   super.setScale(scaleX, scaleY);
   controller.setButtonScale(scaleX, scaleY);
 }