As to electrification types, this is not as straightforward as it may seem in some respects. Electrification is provided by what are known as "way objects". These are stored in a static string hashtable called "table" in wayobj_t (file wayobj.h). However, not all way objects are necessarily types of electrification (although I think that they are in many paksets, including Pak128.Britain), and not all types of electrification are bound to just one type of way object. What happens in Experimental is that Standard's all or nothing electrification model is overlaid by Experimental's way constraints model: way objects that carry electrification both have the Standard electrification flag and Experimental's way constraints. Each type of electrification in a pakset designed for Experimental will have a separate way permissive constraint, but lots of things that are not electrification will also have way constraints, either permissive or prohibitive, such as narrow underground railway tunnels for Tube trains or barge canals. Meanwhile, it is possible for multiple way objects to have the same way constraint but differ in other ways (for example, two types of electrification catenary with different speed limits but the same basic type of electrification). Pak128.Britain-Ex has this for the tram electrification as against the DC overhead electrification for railways. Furthermore, not all types of electrification have way constraints: the trolleybus electrification may well not have way constraints (although I cannot remember now), as there were not, so far as I am aware, multiple incompatible types of electrification for trolleybuses that ever operated in even peripherally connected networks, as with trains. Even more complex is the fact that electrification way objects can have more than one way constraint bound to them: the fourth rail DC electrification in Pak128.Britain-Ex is a good example: it works with both third and fourth rail vehicles, allowing third rail vehicles to use fourth rail electrification but not the converse. There are also combined electrification types (overhead AC with third rail DC, for example) that allow electric trains of two different types to use the same tracks. These do exist in reality (Farringdon station in London springs to mind), but, for obvious reasons of economy, not for long stretches.
You will thus need to decide whether to have each specific colour bound to: (1) each type of way object; (2) each type of way object that is also a form of electrification; (3) each different type of way constraint; (4) each different type of permissive way constraint only; or (5) each different type of way object that is associated with a type of way constraint.
You are probably better off doing (3), because it would be useful in and of itself to have a way constraints display in the minimap separate from the electrification display. This would also be a lot simpler to code. You would, however, have to find 16 unique colours (8 for permissive and 8 for prohibitive constraints), and make the description of what is happening clear in the very limited space in the minimap window. If you are adding any new GUI text to the game, you will also need to add it to the base_texts_passenger_generation.dat file (or something similar if I have not accurately remembered the filename) so that it can be uploaded to Simutranslator and translated into multiple languages before launch; you will further need to use the translation function (translator::translate("text")) instead of just ("text") for all such text.
I hope that this is helpful.