Currently, the code will not work (or at least not as intended) if a DefectSpecies has more than one DefectChargeState with the same charge. This doesn't allow us to consider metastable defects.
I think this issue is resolved as simply as moving away from having DefectChargeStates represented as a dictionary, and instead a list or array. Though there may be unforseen issues in the formalism.
Currently, the code will not work (or at least not as intended) if a DefectSpecies has more than one DefectChargeState with the same charge. This doesn't allow us to consider metastable defects.
I think this issue is resolved as simply as moving away from having DefectChargeStates represented as a dictionary, and instead a list or array. Though there may be unforseen issues in the formalism.