What is, and how does one select a System ID?

From what I gather so far it seems like System ID should be manually configured rather than determined automatically, and it’s up to the user to ensure that no collisions are made. I am unable to confirm this suspicion unfortunately, because nothing explicitly states anything about how these values are selected, or what they mean in a way that is not tautological (e.g. system id being the identifier for the system which originated the message).

Yes, it is entirely up to the user (whoever is setting up the network) to ensure that there are no collisions.

What generally happens is that each of the GCS systems gives themselves a default SYS_ID up around the top end (255 say) that does not conflict with the other well known GCS like QGC or Mission Planner. Autopilots typically assign 1 by default for a vehicle, which is stored as a parameter (ie editable). In the most common network setup there is only one vehicle and GCS that have different ids. If you start adding additional vehicles then you have to manually change the ID used for each of the subsequent vehicles.

You are very brave writing your OWN GCS - that’s decades of effort. I’d be looking at the licenses for the existing open source GCS and seeing if they can be adapted to your needs.

PS, I haven’t checked if this is covered, but if not, will be addressed by Explain SYSTEM IDS and allocation · Issue #62 · mavlink/mavlink-devguide · GitHub