The TypeID structs aren't very portable in practice. Implementing protocols only goes so far. Structs are particularly challenging when attempting to pattern match on things that are always strings like pubsub topics