/**
   * Main.
   *
   * @param args The arguments.
   */
  public static void main(String[] args) {
    Engine.start(
        "Factory", Version.create(1, 0, 0), UtilFile.getPath("resources", "game", "factory"));

    final Services services = new Services();
    final Factory factory = new Factory(services);
    final Object param = new Object();

    // Define the context and add the parameter as a service
    services.add(param);

    // Create types
    final BaseType flyMachine = factory.create(Medias.create("FlyMachine.xml"));
    final BaseType groundTruck = factory.create(Medias.create("GroundTruck.xml"));

    Verbose.info(flyMachine.toString());
    Verbose.info(groundTruck.toString());

    // Parameters are the same
    Verbose.info(flyMachine.getParam().toString());
    Verbose.info(groundTruck.getParam().toString());

    Engine.terminate();
  }