The files are in data/shipsystems. The systems themselves are defined in the .system file, with the in-game usage stats (ammo, cooldown, flux use, etc) controlled by the values in data/shipsystems/ship_systems.csv.
If you want the system to modify your ship's stats, you'll want to put a "statsScript":"<class>" in the .system file, with <class> pointing at the class of the script that implements the bonus (this script must implement ShipSystemStatsScript; you can find several examples in starfarer-core\data\shipsystems\scripts - note that in the case of drones, the bonus is multiplied by each drone).
If you want to write custom AI for your system, add "aiType":"CUSTOM", and "aiScript":"<class>" to the .system file, where <class> is a class that implements ShipSystemAIScript (the only example in core right now is starfarer-core\data\shipsystems\scripts\ai\FastMissileRacksAI.java, but I've worked with this a bit in the last few days and I would be happy to help if you have any questions). The AI we can write only controls WHEN it will use the system, not HOW - in other words, you can tell it to activate the system if there are a certain number of enemies within range, but not to get within range and turn towards the closest enemy first.