PrototypeKey is a primitive, so it's a valid value for an indexed type key.
export interface Dictionary {
protos: Map<PrototypeKey, PrototypeName>; // actual
protos: { [key: PrototypeKey]: { [key: string]: PrototypeKey } }; // expected
}
export type PrototypeKey = string;