char, unsigned char, and std::byte (C++17) are the only byte types according to the C++ Standard.
byte type means a type that can be used to observe an object's value representation.
We use uint8_t everywhere to see bytes, so we have to ensure that uint8_t is an alias to a byte type.
References:
http://eel.is/c++draft/basic.types
http://eel.is/c++draft/basic.memobj#def:byte
http://eel.is/c++draft/expr.sizeof#1
http://eel.is/c++draft/cstdint#syn