If it’s hidden in the IO layer, it’s not a big problem for application layers. However, it makes the loader unnecessarily complicated and inefficient.
Please see the source code. I think it’s a sophisticated C++ code, but I think it can’t be said as “practical”.

Which do you think is better? I prefer the latter.

  1. Force every developer to use a validator
  2. Prevent inputting invalid tags in the digitizing phase, and developers don’t need to care about simple mistakes

For example, if we use an Database-based way, we can realize the method 2.