public static StateChange convertProtoToStorage(
     org.ucam.srcf.assassins.domain.proto.StateChange stateChange) {
   StateChange change = constructStateChange(stateChange);
   if (stateChange.hasId()) {
     change.setId(stateChange.getId());
   }
   return change;
 }
 public static org.ucam.srcf.assassins.domain.proto.StateChange convertStorageToProto(
     StateChange stateChange) {
   org.ucam.srcf.assassins.domain.proto.StateChange.Builder stateChangeBuilder =
       org.ucam.srcf.assassins.domain.proto.StateChange.newBuilder();
   stateChangeBuilder.setId(stateChange.getId());
   if (stateChange instanceof Kill) {
     stateChangeBuilder.setType(org.ucam.srcf.assassins.domain.proto.StateChange.Type.KILL);
     stateChangeBuilder.setExtension(Vanilla.kill, convertKill((Kill) stateChange));
   } else if (stateChange instanceof AddPlayer) {
     stateChangeBuilder.setType(org.ucam.srcf.assassins.domain.proto.StateChange.Type.ADD_PLAYER);
     stateChangeBuilder.setExtension(Base.addPlayer, convertAddPlayer((AddPlayer) stateChange));
   }
   return stateChangeBuilder.build();
 }