Extremely excited to play this when it is ready. Steve, given that the AI is identifying and using troop transports to move expeditions (i.e. ground troops) to other systems, does that mean we will be seeing NPR initiated ground invasions? I know that is more complex - how does the AI know the right force mix to send? Can it successfully assign escorts to troop transports? - but that would give reasons to garrison combined arms formations on worlds.
The AI has a concept of 'operational group', which is a mix of capabilities required for a specific role. Different AI design themes have different types and compositions for operational groups but there are common roles, such as Battle Fleet, Destroyer Squadron, Harvester Group, Troop Transport, etc. (about 20 so far and growing). The operational groups always have a 'Key Element', which is the ship type that is mandatory for the specific role, plus a number of optional types.
For example, a Battle Fleet may compromise a specific number of missile cruisers as a key element with optional slots for AMM escorts, beam escorts, beam warships, anti-fighter and anti-FAC destroyers, etc., while Troop Transport will include the actual transports as the key element, plus optional escorts. Each operational group is a single fleet, which avoids all of the VB6 issues with escorts not staying close to capital ships. This means you may encounter NPR harvesters, terraformers, mining ships, etc. with attached escorts, depending on the design theme.
The NPR starts with a number of intact operational groups with all slots filled. As new ships are built they are assigned to existing operational groups with empty slots or, if they have a key element role, become the core of a new operational group.
When the Race AI is deploying fleets around its territory, it knows which operational groups are suitable for the task. For example, when it identified a small ruin, the AI looked for an available Xenoarchaeological expedition (i.e. not already assigned to a ruin) and for a troop transport operational group that had the capacity and could make the run (depending on jump gates). For exploring jump points, the AI might choose an available scout OG or a gravitational survey OG. The AI knows what existing groups are doing so it will choose one without a current task, although in some circumstances the existing tasks will be overridden, such as when hostile forces are identified.
I haven't coded ground invasions yet, but I plan to add that. The AI already has a lot of code for deploying ground forces based on the value of its populations (or ruins or ground survey sites). It can assess which forces are necessary where they are, which forces are available to move and what forces are required in various locations, taking into account forces already in transit. I will need to add hostile populations as a potential destination and add the forces required (based on observation of defences).