@Override
    public void serialize(Buffer buf) {
        buf.writeShort(subAreaId);
        buf.writeInt(mapId);
        buf.writeByte(subareaAlignmentSide);
        buf.writeUShort(houses.length);
        for (HouseInformations entry : houses) {
            buf.writeShort(entry.getTypeId());
            entry.serialize(buf);
        }
        buf.writeUShort(actors.length);
        for (GameRolePlayActorInformations entry : actors) {
            buf.writeShort(entry.getTypeId());
            entry.serialize(buf);
        }
        buf.writeUShort(interactiveElements.length);
        for (InteractiveElement entry : interactiveElements) {
            buf.writeShort(entry.getTypeId());
            entry.serialize(buf);
        }
        buf.writeUShort(statedElements.length);
        for (StatedElement entry : statedElements) {
            entry.serialize(buf);
        }
        buf.writeUShort(obstacles.length);
        for (MapObstacle entry : obstacles) {
            entry.serialize(buf);
        }
        buf.writeUShort(fights.length);
        for (FightCommonInformations entry : fights) {
            entry.serialize(buf);
        }
    }