# 3.1.1
* Feature #2: Update bug tracker URL to point to redmine.freeciv.org
* Bug #147: Granularity: Base city size limit defined twice
* Bug #207: AI: Helicopter trying to recover on open
* Bug #260: genlist.h inline functions lack doxygen header's "**//**"
* Feature #265: Unhardcode wld.map from unit_order_list_is_sane()
* Feature #272: stdlib_h.m4 serial 77
* Feature #273: Unhardcode wld.map from is_action_possible()
* Feature #280: Metainfo: Add developer name information
* Feature #281: Unhardcode wld.map from caravan_search_from()
* Bug #282: Typo: "seperate"
* Feature #284: Ruledit: Unit type flag editing
* Bug #286: show_small_citybar(): Dead increment of canvas_y
* Feature #290: 3.1 screenshot for gtk3.22-client
* Feature #291: locale-fr.m4 update (serial remains 23)
* Feature #296: Unhardcode wld.map from actions.c static functions
* Bug #297: HACKING: Wrong connection.h location documented
* Feature #298: Ruledit: Add terrain native_to editing
* Bug #304: UNIT and CITY only 16 bits in network protocol
* Bug #307: Meson: Duplicate vsnprintf check
* Bug #312: gtk4: Invalid "format-value" signal to GtkScale
* Feature #316: Ruledit: Add extra native_to editing
* Bug #317: blocked_find_target_tile() clang analyzer warning about NULL target_unit dereference
* Feature #319: Doxygen configuration update to 1.9.8
* Feature #320: Unhardcode wld.map from is_action_enabled_unit_on_city()
* Bug #321: manual_improvements() hardcoded
* Feature #322: Flatpak: Update org.gnome Platform and Sdk to 46
* Feature #323: Ruledit: Add extra flags editing
* Bug #324: Allied victory not working if all players allied before anybody defeated
* Feature #325: Manual: Horizontal line between terrain types
* Feature #326: Ruledit: Helpeditor
* Feature #327: Ruledit: values_dlg
* Bug #328: Autotools C++20 capture this check not working
* Bug #330: Misspellings: "hashs"
* Bug #335: announce_trade_route_removal() call with a NULL city
* Feature #339: Ruledit: Add terrain flags editing
* Feature #340: Unhardcode wld.map from is_action_enabled_unit_on_unit()
* Bug #342: S3_1 webpackets compile failure due to 32bit unit/city ids
* Feature #349: Ruledit: Building flag editing unified with other flag editors
* Bug #350: Resources hidden to player sent to player
* Bug #352: CI: Homebrew install/update fails on github actions
* Bug #357: Misspellings: "re-use"
* Feature #358: Ruledit: Tech value editor
* Feature #361: Unhardcode wld.map from caravan_find_best_destination()
* Feature #362: Unhardcode wld.map from is_action_enabled_unit_on_units()
* Bug #365: generate_packets.py invalid escape sequence warnings
* Feature #367: lib-prefix.m4 serial 23
* Bug #368: helpeditor.h not part of tarball
* Bug #371: Misspellings: "fullfilled"
* Feature #374: Unhardcode wld.map from city_map_to_tile()
* Feature #377: cityresult_fill(): Check city center existence in non-debug builds
* Feature #378: gnulib-common.m4 serial 93
* Bug #383: player_number() access for packaging unit after player_destroy()
* Bug #386: Misspellings: "abbrevation"
* Feature #390: Unhardcode wld.map from is_action_enabled_unit_on_tile()
* Feature #393: Meson: appimage option
* Feature #396: AppImage: build_appimages.sh
* Feature #403: Unhardcode wld.map from cowt_callback()
* Feature #404: progtest.m4 serial 10
* Feature #405: Gnulib m4 -files headers update
* Bug #407: AI: tile_data_cache output fields too narrow
* Bug #408: AI: cityresult_fill() assert failure when no known free tiles in city area
* Feature #410: Unhardcode wld.map from is_action_enabled_unit_on_extras()
* Bug #427: Client options migration gtk3.22 -> gtk4 not saved correctly
* Bug #430: Ruledit: Bad Add/Remove tech layout
* Bug #431: Misspellings: "useable"
* Bug #434: S3_1 threaded AI build fails due to city_map_to_tile() change
* Feature #438: Flatpak: Qt Sdk & Platform to version 6.7
* Bug #462: fc_shortcut_popup() has no Q_OBJECT
* Bug #489: S3_1 handle_investigate_started(): Dead assignment to unit_id32
* Feature #495: S3_1 AI module capstr to stable form