I had thought about this, doesn't happen in current code flow because externalToInternal accessed only when reading file, and internalToExternal accessed only after finished reading file. Agreed maybe worthwhile to consider robustness w.r.t. alternate future uses. But, annoying thing about requiring api method to instantiate internal id mappings is, temptation is to call automatically after reading file, and maybe user will never use them, wasting time & space, e.g. if computing a global graph property.
Option 1: Leave code as is.
Option 2: Optionally require API call, and throw exceptions when a map is accessed at an inappropriate time.
Option 3: Dirty lazyInternalToExternal when externalToInternal updated.
Option 4: Maintain both maps in parallel.
#1 can break correctness, #2 needs time overhead for condition check, #3 can require lots of time overhead if misused, and #4 requires space overhead. Preference?