make the decode tag requirement an enum
diff --git a/inc/qcbor/qcbor_number_decode.h b/inc/qcbor/qcbor_number_decode.h
index 6972671..d431c4f 100644
--- a/inc/qcbor/qcbor_number_decode.h
+++ b/inc/qcbor/qcbor_number_decode.h
@@ -15,6 +15,7 @@
 
 
 #include "qcbor/qcbor_main_decode.h"
+#include "qcbor/qcbor_tag_decode.h"
 
 
 #ifdef __cplusplus
@@ -210,7 +211,8 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See also QCBORDecode_GetUInt64Convert() and QCBORDecode_GetUInt64ConvertAll().
+ * See also QCBORDecode_GetUInt64Convert() and
+ * QCBORDecode_GetUInt64ConvertAll().
  */
 static void
 QCBORDecode_GetUInt64(QCBORDecodeContext *pCtx,
@@ -228,7 +230,8 @@
 
 
 /**
- * @brief Decode next item as an unsigned 64-bit integer with basic conversions.
+ * @brief Decode next item as an unsigned 64-bit integer with basic
+ *        conversions.
  *
  * @param[in] pCtx           The decode context.
  * @param[in] uConvertTypes  The integer conversion options.
@@ -569,14 +572,16 @@
 
 
 /**
- * @brief Decode next item as a big number encoded using preferred serialization.
+ * @brief Decode next item as a big number encoded using preferred
+ *        serialization.
  *
  * @param[in] pCtx              The decode context.
- * @param[in] uTagRequirement   @ref QCBOR_TAG_REQUIREMENT_TAG or related.
+ * @param[in] uTagRequirement   See @ref QCBORDecodeTagReq.
  * @param[in] BigNumberBuf      The buffer to write the result into.
  * @param[out] pBigNumber       The decoded big number, most significant
  *                              byte first (network byte order).
- * @param[in,out] pbIsNegative  Set to true if the resulting big number is negative.
+ * @param[in,out] pbIsNegative  Set to true if the resulting big number
+ *                              is negative.
  *
  * This decodes CBOR tag numbers 2 and 3, positive and negative big
  * numbers, as defined in [RFC 8949 section 3.4.3]
@@ -621,38 +626,39 @@
  * See @ref Tag-Usage for discussion on tag requirements.
  */
 void
-QCBORDecode_GetTBigNumber(QCBORDecodeContext *pCtx,
-                          const uint8_t       uTagRequirement,
-                          UsefulBuf           BigNumberBuf,
-                          UsefulBufC         *pBigNumber,
-                          bool               *pbIsNegative);
+QCBORDecode_GetTBigNumber(QCBORDecodeContext    *pCtx,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBuf              BigNumberBuf,
+                          UsefulBufC            *pBigNumber,
+                          bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberInMapN(QCBORDecodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                UsefulBuf           BigNumberBuf,
-                                UsefulBufC         *pBigNumber,
-                                bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberInMapN(QCBORDecodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBuf              BigNumberBuf,
+                                UsefulBufC            *pBigNumber,
+                                bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberInMapSZ(QCBORDecodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBuf           BigNumberBuf,
-                                 UsefulBufC         *pBigNumber,
-                                 bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberInMapSZ(QCBORDecodeContext   *pCtx,
+                                 const char           *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBuf             BigNumberBuf,
+                                 UsefulBufC           *pBigNumber,
+                                 bool                 *pbIsNegative);
 
 
 /**
  * @brief Decode next item as a big number without preferred serialization.
  *
  * @param[in] pCtx              The decode context.
- * @param[in] uTagRequirement   @ref QCBOR_TAG_REQUIREMENT_TAG or related.
+ * @param[in] uTagRequirement   See @ref QCBORDecodeTagReq.
  * @param[in] BigNumberBuf      The buffer to write the result into.
  * @param[out] pBigNumber       The decoded big number, most significant
  *                              byte first (network byte order).
- * @param[in,out] pbIsNegative  Set to true if the returned big number is negative.
+ * @param[in,out] pbIsNegative  Set to true if the returned big number
+ *                              is negative.
  *
  * This is the same as QCBORDecode_GetTBigNumber(), but will error out
  * on type 0 and 1 integers as it doesn't support the preferred
@@ -664,34 +670,34 @@
  * and QCBORDecode_GetTBigNumberRaw().
  */
 void
-QCBORDecode_GetTBigNumberNoPreferred(QCBORDecodeContext *pCtx,
-                                     const uint8_t       uTagRequirement,
-                                     UsefulBuf           BigNumberBuf,
-                                     UsefulBufC         *pBigNumber,
-                                     bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberNoPreferred(QCBORDecodeContext    *pCtx,
+                                     enum QCBORDecodeTagReq uTagRequirement,
+                                     UsefulBuf              BigNumberBuf,
+                                     UsefulBufC            *pBigNumber,
+                                     bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberNoPreferredInMapN(QCBORDecodeContext *pCtx,
-                                          int64_t             nLabel,
-                                          uint8_t             uTagRequirement,
-                                          UsefulBuf           BigNumberBuf,
-                                          UsefulBufC         *pBigNumber,
-                                          bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberNoPreferredInMapN(QCBORDecodeContext   *pCtx,
+                                          int64_t                nLabel,
+                                          enum QCBORDecodeTagReq uTagRequirement,
+                                          UsefulBuf              BigNumberBuf,
+                                          UsefulBufC            *pBigNumber,
+                                          bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberNoPreferredInMapSZ(QCBORDecodeContext *pCtx,
-                                           const char         *szLabel,
-                                           uint8_t             uTagRequirement,
-                                           UsefulBuf           BigNumberBuf,
-                                           UsefulBufC         *pBigNumber,
-                                           bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberNoPreferredInMapSZ(QCBORDecodeContext    *pCtx,
+                                           const char            *szLabel,
+                                           enum QCBORDecodeTagReq uTagRequirement,
+                                           UsefulBuf              BigNumberBuf,
+                                           UsefulBufC            *pBigNumber,
+                                           bool                  *pbIsNegative);
 
 
  /**
   * @brief Decode the next item as a big number with no processing
   *
   * @param[in] pCtx             The decode context.
-  * @param[in] uTagRequirement  @ref QCBOR_TAG_REQUIREMENT_TAG or related.
+  * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
   * @param[out] pBigNumber          The decoded big number, most significant
   * byte first (network byte order).
   * @param[out] pbIsNegative    Is @c true if the big number is negative. This
@@ -712,13 +718,15 @@
   * it can be (trivially) used to perform the offset of one for
   * negative numbers.
   *
-  * This links in much less object code than QCBORDecode_GetTBigNumber() and
+  * This links in much less object code than
+  * QCBORDecode_GetTBigNumber() and
   * QCBORDecode_GetTBigNumberNoPreferred().
   *
-  * This does the same minimal processing as installing QCBORDecode_StringsTagCB()
-  * installed to handle @ref CBOR_TAG_POS_BIGNUM and @ref CBOR_TAG_NEG_BIGNUM
-  * so QCBORDecode_VGetNext() returns a @ref QCBORItem of type
-  * @ref QCBOR_TYPE_POSBIGNUM or @ref QCBOR_TYPE_POSBIGNUM
+  * This does the same minimal processing as installing
+  * QCBORDecode_StringsTagCB() installed to handle @ref
+  * CBOR_TAG_POS_BIGNUM and @ref CBOR_TAG_NEG_BIGNUM so
+  * QCBORDecode_VGetNext() returns a @ref QCBORItem of type @ref
+  * QCBOR_TYPE_POSBIGNUM or @ref QCBOR_TYPE_POSBIGNUM
   *
   * See @ref BigNumbers for a useful overview of CBOR big numbers and
   * QCBOR's support for them. See QCBOREncode_AddTBigNumberRaw() for
@@ -727,28 +735,26 @@
   * serialization big numbers.
   *
   * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
-  *
-  * See @ref Tag-Usage for discussion on tag requirements.
   */
 void
-QCBORDecode_GetTBigNumberRaw(QCBORDecodeContext *pCtx,
-                             const uint8_t       uTagRequirement,
-                             UsefulBufC         *pBigNumber,
-                             bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberRaw(QCBORDecodeContext    *pCtx,
+                             enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC            *pBigNumber,
+                             bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberRawInMapN(QCBORDecodeContext *pMe,
-                                   const int64_t       nLabel,
-                                   const uint8_t       uTagRequirement,
-                                   UsefulBufC         *pBigNumber,
-                                   bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberRawInMapN(QCBORDecodeContext    *pMe,
+                                   const int64_t          nLabel,
+                                   enum QCBORDecodeTagReq uTagRequirement,
+                                   UsefulBufC            *pBigNumber,
+                                   bool                  *pbIsNegative);
 
 void
-QCBORDecode_GetTBigNumberRawInMapSZ(QCBORDecodeContext *pMe,
-                                   const char        *szLabel,
-                                   const uint8_t       uTagRequirement,
-                                   UsefulBufC         *pBigNumber,
-                                   bool               *pbIsNegative);
+QCBORDecode_GetTBigNumberRawInMapSZ(QCBORDecodeContext    *pMe,
+                                    const char            *szLabel,
+                                    enum QCBORDecodeTagReq uTagRequirement,
+                                    UsefulBufC            *pBigNumber,
+                                    bool                  *pbIsNegative);
 
 
 
@@ -759,7 +765,7 @@
  * @brief Decode the next item as a decimal fraction.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pnMantissa      The mantissa.
  * @param[out] pnExponent      The base 10 exponent.
  *
@@ -789,9 +795,9 @@
  *
  *     mantissa * ( 10 ** exponent )
  *
- * Various format and type issues will result in @ref QCBOR_ERR_BAD_EXP_AND_MANTISSA
- * being set.  See @ref Decode-Errors-Overview "Decode Errors
- * Overview".
+ * Various format and type issues will result in @ref
+ * QCBOR_ERR_BAD_EXP_AND_MANTISSA being set.  See @ref
+ * Decode-Errors-Overview "Decode Errors Overview".
  *
  * See also QCBORDecode_GetInt64ConvertAll(),
  * QCBORDecode_GetUInt64ConvertAll() and
@@ -806,30 +812,30 @@
  * preceded by by a tag number or if the mantissa is a big number.
  */
 void
-QCBORDecode_GetTDecimalFraction(QCBORDecodeContext *pCtx,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnMantissa,
-                                int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFraction(QCBORDecodeContext    *pCtx,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t               *pnMantissa,
+                                int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionInMapN(QCBORDecodeContext *pCtx,
-                                      int64_t             nLabel,
-                                      uint8_t             uTagRequirement,
-                                      int64_t            *pnMantissa,
-                                      int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionInMapN(QCBORDecodeContext    *pCtx,
+                                      int64_t                nLabel,
+                                      enum QCBORDecodeTagReq uTagRequirement,
+                                      int64_t               *pnMantissa,
+                                      int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionInMapSZ(QCBORDecodeContext *pMe,
-                                       const char         *szLabel,
-                                       uint8_t             uTagRequirement,
-                                       int64_t            *pnMantissa,
-                                       int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionInMapSZ(QCBORDecodeContext    *pMe,
+                                       const char            *szLabel,
+                                       enum QCBORDecodeTagReq uTagRequirement,
+                                       int64_t               *pnMantissa,
+                                       int64_t               *pnExponent);
 
 /**
  * @brief Decode the next item as a decimal fraction with a big number mantissa.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[in] MantissaBuffer   The buffer in which to put the mantissa.
  * @param[out] pMantissa       The big num mantissa.
  * @param[out] pbMantissaIsNegative  Is @c true if @c pMantissa is negative.
@@ -850,41 +856,42 @@
  * fractions.
  *
  * See also @ref CBOR_TAG_DECIMAL_FRACTION,
- * QCBOREncode_AddTDecimalFractionBigMantissa(), @ref QCBOR_TYPE_DECIMAL_FRACTION
- * and QCBORDecode_GetTDecimalFraction().
+ * QCBOREncode_AddTDecimalFractionBigMantissa(), @ref
+ * QCBOR_TYPE_DECIMAL_FRACTION and QCBORDecode_GetTDecimalFraction().
  */
 void
-QCBORDecode_GetTDecimalFractionBigMantissa(QCBORDecodeContext *pCtx,
-                                           uint8_t             uTagRequirement,
-                                           UsefulBuf           MantissaBuffer,
-                                           UsefulBufC         *pMantissa,
-                                           bool               *pbMantissaIsNegative,
-                                           int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissa(QCBORDecodeContext    *pCtx,
+                                           enum QCBORDecodeTagReq uTagRequirement,
+                                           UsefulBuf              MantissaBuffer,
+                                           UsefulBufC            *pMantissa,
+                                           bool                  *pbMantissaIsNegative,
+                                           int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionBigMantissaInMapN(QCBORDecodeContext *pCtx,
-                                                 int64_t             nLabel,
-                                                 uint8_t             uTagRequirement,
-                                                 UsefulBuf           MantissaBuffer,
-                                                 UsefulBufC         *pbMantissaIsNegative,
-                                                 bool               *pbIsNegative,
-                                                 int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissaInMapN(QCBORDecodeContext    *pCtx,
+                                                 int64_t                nLabel,
+                                                 enum QCBORDecodeTagReq uTagRequirement,
+                                                 UsefulBuf              MantissaBuffer,
+                                                 UsefulBufC            *pbMantissaIsNegative,
+                                                 bool                  *pbIsNegative,
+                                                 int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionBigMantissaInMapSZ(QCBORDecodeContext *pCtx,
-                                                  const char         *szLabel,
-                                                  uint8_t             uTagRequirement,
-                                                  UsefulBuf           MantissaBuffer,
-                                                  UsefulBufC         *pMantissa,
-                                                  bool               *pbMantissaIsNegative,
-                                                  int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissaInMapSZ(QCBORDecodeContext    *pCtx,
+                                                  const char            *szLabel,
+                                                  enum QCBORDecodeTagReq uTagRequirement,
+                                                  UsefulBuf              MantissaBuffer,
+                                                  UsefulBufC            *pMantissa,
+                                                  bool                  *pbMantissaIsNegative,
+                                                  int64_t               *pnExponent);
 
 
 /**
- * @brief Decode the next item as a decimal fraction with a big number mantissa raw.
+ * @brief Decode the next item as a decimal fraction with a big number.
+ * mantissa raw.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[in] MantissaBuffer   The buffer in which to put the mantissa.
  * @param[out] pMantissa       The big num mantissa.
  * @param[out] pbMantissaIsNegative  Is @c true if @c pMantissa is negative.
@@ -905,41 +912,42 @@
  * fractions.
  *
  * See also @ref CBOR_TAG_DECIMAL_FRACTION,
- * QCBOREncode_AddTDecimalFractionBigMantissaRaw(), @ref QCBOR_TYPE_DECIMAL_FRACTION
- * and QCBORDecode_GetTDecimalFractionBigMantissa().
+ * QCBOREncode_AddTDecimalFractionBigMantissaRaw(), @ref
+ * QCBOR_TYPE_DECIMAL_FRACTION and
+ * QCBORDecode_GetTDecimalFractionBigMantissa().
  */
 void
-QCBORDecode_GetTDecimalFractionBigMantissaRaw(QCBORDecodeContext *pCtx,
-                                              uint8_t             uTagRequirement,
-                                              UsefulBuf           MantissaBuffer,
-                                              UsefulBufC         *pMantissa,
-                                              bool               *pbMantissaIsNegative,
-                                              int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissaRaw(QCBORDecodeContext    *pCtx,
+                                              enum QCBORDecodeTagReq uTagRequirement,
+                                              UsefulBuf              MantissaBuffer,
+                                              UsefulBufC            *pMantissa,
+                                              bool                  *pbMantissaIsNegative,
+                                              int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionBigMantissaRawInMapN(QCBORDecodeContext *pCtx,
-                                                    int64_t             nLabel,
-                                                    uint8_t             uTagRequirement,
-                                                    UsefulBuf           MantissaBuffer,
-                                                    UsefulBufC         *pbMantissaIsNegative,
-                                                    bool               *pbIsNegative,
-                                                    int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissaRawInMapN(QCBORDecodeContext    *pCtx,
+                                                    int64_t                nLabel,
+                                                    enum QCBORDecodeTagReq uTagRequirement,
+                                                    UsefulBuf              MantissaBuffer,
+                                                    UsefulBufC            *pbMantissaIsNegative,
+                                                    bool                  *pbIsNegative,
+                                                    int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTDecimalFractionBigMantissaRawInMapSZ(QCBORDecodeContext *pCtx,
-                                                     const char         *szLabel,
-                                                     uint8_t             uTagRequirement,
-                                                     UsefulBuf           MantissaBuffer,
-                                                     UsefulBufC         *pMantissa,
-                                                     bool               *pbMantissaIsNegative,
-                                                     int64_t            *pnExponent);
+QCBORDecode_GetTDecimalFractionBigMantissaRawInMapSZ(QCBORDecodeContext    *pCtx,
+                                                     const char            *szLabel,
+                                                     enum QCBORDecodeTagReq uTagRequirement,
+                                                     UsefulBuf              MantissaBuffer,
+                                                     UsefulBufC            *pMantissa,
+                                                     bool                  *pbMantissaIsNegative,
+                                                     int64_t               *pnExponent);
 
 
 /**
  * @brief Decode the next item as a big float.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pnMantissa      The mantissa.
  * @param[out] pnExponent      The base 2 exponent.
  *
@@ -982,31 +990,31 @@
  * preceded by by a tag number or if the mantissa is a big number.
  */
 void
-QCBORDecode_GetTBigFloat(QCBORDecodeContext *pCtx,
-                         uint8_t             uTagRequirement,
-                         int64_t            *pnMantissa,
-                         int64_t            *pnExponent);
+QCBORDecode_GetTBigFloat(QCBORDecodeContext    *pCtx,
+                         enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t               *pnMantissa,
+                         int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatInMapN(QCBORDecodeContext *pCtx,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnMantissa,
-                               int64_t            *pnExponent);
+QCBORDecode_GetTBigFloatInMapN(QCBORDecodeContext    *pCtx,
+                               int64_t                nLabel,
+                               enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t               *pnMantissa,
+                               int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatInMapSZ(QCBORDecodeContext *pCtx,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnMantissa,
-                                int64_t            *pnExponent);
+QCBORDecode_GetTBigFloatInMapSZ(QCBORDecodeContext    *pCtx,
+                                const char            *szLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t               *pnMantissa,
+                                int64_t               *pnExponent);
 
 
 /**
  * @brief Decode the next item as a big float with a big number mantissa.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[in] MantissaBuffer   The buffer in which to put the mantissa.
  * @param[out] pMantissa       The big num mantissa.
  * @param[out] pbMantissaIsNegative  Is @c true if @c pMantissa is negative.
@@ -1017,46 +1025,46 @@
  * size of @c MantissaBuffer.
  *
  * The encoded mantissa may be an integer or a big number.  The
- * standard CBOR offset of 1 for negative is applied, so the mantissa can be used as
- * returned.
+ * standard CBOR offset of 1 for negative is applied, so the mantissa
+ * can be used as returned.
  *
  * See also @ref CBOR_TAG_BIGFLOAT,
  * QCBOREncode_AddTBigFloatBigNumber(), @ref QCBOR_TYPE_BIGFLOAT and
  * QCBORDecode_GetTBigFloat().
  */
 void
-QCBORDecode_GetTBigFloatBigMantissa(QCBORDecodeContext *pCtx,
-                                    uint8_t             uTagRequirement,
-                                    UsefulBuf           MantissaBuffer,
-                                    UsefulBufC         *pMantissa,
-                                    bool               *pbMantissaIsNegative,
-                                    int64_t            *pnExponent);
-
+QCBORDecode_GetTBigFloatBigMantissa(QCBORDecodeContext    *pCtx,
+                                    enum QCBORDecodeTagReq uTagRequirement,
+                                    UsefulBuf              MantissaBuffer,
+                                    UsefulBufC            *pMantissa,
+                                    bool                  *pbMantissaIsNegative,
+                                    int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatBigMantissaInMapN(QCBORDecodeContext *pCtx,
-                                          int64_t      nLabel,
-                                          uint8_t      uTagRequirement,
-                                          UsefulBuf    MantissaBuffer,
-                                          UsefulBufC  *pMantissa,
-                                          bool        *pbMantissaIsNegative,
-                                          int64_t     *pnExponent);
+QCBORDecode_GetTBigFloatBigMantissaInMapN(QCBORDecodeContext    *pCtx,
+                                          int64_t                nLabel,
+                                          enum QCBORDecodeTagReq uTagRequirement,
+                                          UsefulBuf              MantissaBuffer,
+                                          UsefulBufC             *pMantissa,
+                                          bool                   *pbMantissaIsNegative,
+                                          int64_t                *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatBigMantissaInMapSZ(QCBORDecodeContext *pCtx,
-                                           const char  *szLabel,
-                                           uint8_t      uTagRequirement,
-                                           UsefulBuf    MantissaBuffer,
-                                           UsefulBufC  *pMantissa,
-                                           bool        *pbMantissaIsNegative,
-                                           int64_t     *pnExponent);
+QCBORDecode_GetTBigFloatBigMantissaInMapSZ(QCBORDecodeContext    *pCtx,
+                                           const char            *szLabel,
+                                           enum QCBORDecodeTagReq uTagRequirement,
+                                           UsefulBuf              MantissaBuffer,
+                                           UsefulBufC            *pMantissa,
+                                           bool                  *pbMantissaIsNegative,
+                                           int64_t               *pnExponent);
 
 
 /**
- * @brief Decode the next item as a big float with a big number mantissa with out offsetting the mantissa
+ * @brief Decode the next item as a big float with a big number mantissa
+ * with out offsetting the mantissa
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[in] MantissaBuffer   The buffer in which to put the mantissa.
  * @param[out] pMantissa       The big num mantissa.
  * @param[out] pbMantissaIsNegative  Is @c true if @c pMantissa is negative.
@@ -1080,31 +1088,30 @@
  * QCBORDecode_GetTBigFloat().
  */
 void
-QCBORDecode_GetTBigFloatBigMantissaRaw(QCBORDecodeContext *pCtx,
-                                       uint8_t             uTagRequirement,
-                                       UsefulBuf           MantissaBuffer,
-                                       UsefulBufC         *pMantissa,
-                                       bool               *pbMantissaIsNegative,
-                                       int64_t            *pnExponent);
-
+QCBORDecode_GetTBigFloatBigMantissaRaw(QCBORDecodeContext    *pCtx,
+                                       enum QCBORDecodeTagReq uTagRequirement,
+                                       UsefulBuf              MantissaBuffer,
+                                       UsefulBufC            *pMantissa,
+                                       bool                  *pbMantissaIsNegative,
+                                       int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatBigMantissaRawInMapN(QCBORDecodeContext *pCtx,
-                                             int64_t      nLabel,
-                                             uint8_t      uTagRequirement,
-                                             UsefulBuf    MantissaBuffer,
-                                             UsefulBufC  *pMantissa,
-                                             bool        *pbMantissaIsNegative,
-                                             int64_t     *pnExponent);
+QCBORDecode_GetTBigFloatBigMantissaRawInMapN(QCBORDecodeContext    *pCtx,
+                                             int64_t                nLabel,
+                                             enum QCBORDecodeTagReq uTagRequirement,
+                                             UsefulBuf              MantissaBuffer,
+                                             UsefulBufC            *pMantissa,
+                                             bool                  *pbMantissaIsNegative,
+                                             int64_t               *pnExponent);
 
 void
-QCBORDecode_GetTBigFloatBigMantissaRawInMapSZ(QCBORDecodeContext *pCtx,
-                                              const char  *szLabel,
-                                              uint8_t      uTagRequirement,
-                                              UsefulBuf    MantissaBuffer,
-                                              UsefulBufC  *pMantissa,
-                                              bool        *pbMantissaIsNegative,
-                                              int64_t     *pnExponent);
+QCBORDecode_GetTBigFloatBigMantissaRawInMapSZ(QCBORDecodeContext    *pCtx,
+                                              const char            *szLabel,
+                                              enum QCBORDecodeTagReq uTagRequirement,
+                                              UsefulBuf              MantissaBuffer,
+                                              UsefulBufC            *pMantissa,
+                                              bool                  *pbMantissaIsNegative,
+                                              int64_t               *pnExponent);
 
 #endif /* ! QCBOR_DISABLE_EXP_AND_MANTISSA */
 
@@ -1250,50 +1257,50 @@
 
 /* Deprecated. Use QCBORDecode_GetTBigNumberRaw() instead. */
 static void
-QCBORDecode_GetBignum(QCBORDecodeContext *pCtx,
-                      uint8_t             uTagRequirement,
-                      UsefulBufC         *pValue,
-                      bool               *pbIsNegative);
+QCBORDecode_GetBignum(QCBORDecodeContext    *pCtx,
+                      enum QCBORDecodeTagReq uTagRequirement,
+                      UsefulBufC            *pValue,
+                      bool                  *pbIsNegative);
 
 /* Deprecated. Use QCBORDecode_GetTBigNumberRawInMapN() instead. */
 static void
-QCBORDecode_GetBignumInMapN(QCBORDecodeContext *pCtx,
-                            int64_t             nLabel,
-                            uint8_t             uTagRequirement,
-                            UsefulBufC         *pValue,
-                            bool               *pbIsNegative);
+QCBORDecode_GetBignumInMapN(QCBORDecodeContext    *pCtx,
+                            int64_t                nLabel,
+                            enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC            *pValue,
+                            bool                  *pbIsNegative);
 
 /* Deprecated. Use QCBORDecode_GetTBigNumberRawInMapSZ() instead. */
 static void
-QCBORDecode_GetBignumInMapSZ(QCBORDecodeContext *pCtx,
-                             const char         *szLabel,
-                             uint8_t             uTagRequirement,
-                             UsefulBufC         *pValue,
-                             bool               *pbIsNegative);
+QCBORDecode_GetBignumInMapSZ(QCBORDecodeContext    *pCtx,
+                             const char            *szLabel,
+                             enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC            *pValue,
+                             bool                  *pbIsNegative);
 
 #ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
 /* Deprecated. Use QCBORDecode_GetTDecimalFraction() instead. */
 static void
-QCBORDecode_GetDecimalFraction(QCBORDecodeContext *pCtx,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnMantissa,
-                               int64_t            *pnExponent);
+QCBORDecode_GetDecimalFraction(QCBORDecodeContext    *pCtx,
+                               enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t               *pnMantissa,
+                               int64_t               *pnExponent);
 
 /* Deprecated. Use QCBORDecode_GetTDecimalFractionInMapN() instead. */
 static void
-QCBORDecode_GetDecimalFractionInMapN(QCBORDecodeContext *pCtx,
-                                     int64_t             nLabel,
-                                     uint8_t             uTagRequirement,
-                                     int64_t            *pnMantissa,
-                                     int64_t            *pnExponent);
+QCBORDecode_GetDecimalFractionInMapN(QCBORDecodeContext    *pCtx,
+                                     int64_t                nLabel,
+                                     enum QCBORDecodeTagReq uTagRequirement,
+                                     int64_t               *pnMantissa,
+                                     int64_t               *pnExponent);
 
 /* Deprecated. Use QCBORDecode_GetTDecimalFractionInMapSZ() instead. */
 static void
-QCBORDecode_GetDecimalFractionInMapSZ(QCBORDecodeContext *pMe,
-                                      const char         *szLabel,
-                                      uint8_t             uTagRequirement,
-                                      int64_t            *pnMantissa,
-                                      int64_t            *pnExponent);
+QCBORDecode_GetDecimalFractionInMapSZ(QCBORDecodeContext    *pMe,
+                                      const char            *szLabel,
+                                      enum QCBORDecodeTagReq uTagRequirement,
+                                      int64_t               *pnMantissa,
+                                      int64_t               *pnExponent);
 
 /* Deprecated. Use QCBORDecode_GetTDecimalFractionBigMantissaRaw() instead. */
 /*
@@ -1309,7 +1316,7 @@
 * correct and can be used instead of this. */
 static void
 QCBORDecode_GetDecimalFractionBig(QCBORDecodeContext *pCtx,
-                                  uint8_t             uTagRequirement,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
                                   UsefulBuf           MantissaBuffer,
                                   UsefulBufC         *pMantissa,
                                   bool               *pbMantissaIsNegative,
@@ -1319,7 +1326,7 @@
 static void
 QCBORDecode_GetDecimalFractionBigInMapN(QCBORDecodeContext *pCtx,
                                         int64_t             nLabel,
-                                        uint8_t             uTagRequirement,
+                                        const enum QCBORDecodeTagReq uTagRequirement,
                                         UsefulBuf           MantissaBuffer,
                                         UsefulBufC         *pbMantissaIsNegative,
                                         bool               *pbIsNegative,
@@ -1329,7 +1336,7 @@
 static void
 QCBORDecode_GetDecimalFractionBigInMapSZ(QCBORDecodeContext *pCtx,
                                          const char         *szLabel,
-                                         uint8_t             uTagRequirement,
+                                         const enum QCBORDecodeTagReq uTagRequirement,
                                          UsefulBuf           MantissaBuffer,
                                          UsefulBufC         *pMantissa,
                                          bool               *pbMantissaIsNegative,
@@ -1338,7 +1345,7 @@
 /* Deprecated. Use QCBORDecode_GetTBigFloat() instead. */
 static void
 QCBORDecode_GetBigFloat(QCBORDecodeContext *pCtx,
-                        uint8_t             uTagRequirement,
+                        const enum QCBORDecodeTagReq uTagRequirement,
                         int64_t            *pnMantissa,
                         int64_t            *pnExponent);
 
@@ -1346,7 +1353,7 @@
 static void
 QCBORDecode_GetBigFloatInMapN(QCBORDecodeContext *pCtx,
                               int64_t             nLabel,
-                              uint8_t             uTagRequirement,
+                              const enum QCBORDecodeTagReq uTagRequirement,
                               int64_t            *pnMantissa,
                               int64_t            *pnExponent);
 
@@ -1354,14 +1361,14 @@
 static void
 QCBORDecode_GetBigFloatInMapSZ(QCBORDecodeContext *pCtx,
                                const char         *szLabel,
-                               uint8_t             uTagRequirement,
+                               const enum QCBORDecodeTagReq uTagRequirement,
                                int64_t            *pnMantissa,
                                int64_t            *pnExponent);
 
 /* Deprecated. Use QCBORDecode_GetTBigFloatBigMantissaRaw() instead. */
 static void
 QCBORDecode_GetBigFloatBig(QCBORDecodeContext *pCtx,
-                           uint8_t             uTagRequirement,
+                           const enum QCBORDecodeTagReq uTagRequirement,
                            UsefulBuf           MantissaBuffer,
                            UsefulBufC         *pMantissa,
                            bool               *pbMantissaIsNegative,
@@ -1371,7 +1378,7 @@
 static void
 QCBORDecode_GetBigFloatBigInMapN(QCBORDecodeContext *pCtx,
                                  int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
+                                 const enum QCBORDecodeTagReq uTagRequirement,
                                  UsefulBuf           MantissaBuffer,
                                  UsefulBufC         *pMantissa,
                                  bool               *pbMantissaIsNegative,
@@ -1381,7 +1388,7 @@
 static void
 QCBORDecode_GetBigFloatBigInMapSZ(QCBORDecodeContext *pCtx,
                                   const char         *szLabel,
-                                  uint8_t             uTagRequirement,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
                                   UsefulBuf           MantissaBuffer,
                                   UsefulBufC         *pMantissa,
                                   bool               *pbMantissaIsNegative,
@@ -1474,36 +1481,6 @@
 #endif /* ! USEFULBUF_DISABLE_ALL_FLOAT */
 
 
-/* Semi-private. See qcbor_number_decode.c */
-void
-QCBORDecode_Private_GetTaggedString(QCBORDecodeContext  *pMe,
-                                    uint8_t              uTagRequirement,
-                                    uint8_t              uQCBOR_Type,
-                                    uint64_t             uTagNumber,
-                                    UsefulBufC          *pBstr);
-
-
-/* Semi-private. See qcbor_number_decode.c */
-void
-QCBORDecode_Private_GetTaggedStringInMapN(QCBORDecodeContext  *pMe,
-                                          const int64_t        nLabel,
-                                          const uint8_t        uTagRequirement,
-                                          const uint8_t        uQCBOR_Type,
-                                          const uint64_t       uTagNumber,
-                                          UsefulBufC          *pString);
-
-
-/* Semi-private. See qcbor_number_decode.c */
-void
-QCBORDecode_Private_GetTaggedStringInMapSZ(QCBORDecodeContext  *pMe,
-                                           const char          *szLabel,
-                                           uint8_t              uTagRequirement,
-                                           uint8_t              uQCBOR_Type,
-                                           uint64_t             uTagNumber,
-                                           UsefulBufC          *pString);
-
-
-
 
 static inline void
 QCBORDecode_GetUInt64Convert(QCBORDecodeContext *pMe,
@@ -1722,20 +1699,20 @@
 
 
 static inline void /* Deprecated */
-QCBORDecode_GetBignum(QCBORDecodeContext *pMe,
-                      uint8_t             uTagRequirement,
-                      UsefulBufC         *pBigNumber,
-                      bool               *pbIsNegative)
+QCBORDecode_GetBignum(QCBORDecodeContext          *pMe,
+                      const enum QCBORDecodeTagReq uTagRequirement,
+                      UsefulBufC                  *pBigNumber,
+                      bool                        *pbIsNegative)
 {
    QCBORDecode_GetTBigNumberRaw(pMe, uTagRequirement, pBigNumber, pbIsNegative);
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBignumInMapN(QCBORDecodeContext *pMe,
-                            int64_t             nLabel,
-                            uint8_t             uTagRequirement,
-                            UsefulBufC         *pBigNumber,
-                            bool               *pbIsNegative)
+QCBORDecode_GetBignumInMapN(QCBORDecodeContext         *pMe,
+                            int64_t                      nLabel,
+                            const enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC                  *pBigNumber,
+                            bool                        *pbIsNegative)
 {
    QCBORDecode_GetTBigNumberRawInMapN(pMe,
                                       nLabel,
@@ -1745,11 +1722,11 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBignumInMapSZ(QCBORDecodeContext *pMe,
-                             const char         *szLabel,
-                             uint8_t             uTagRequirement,
-                             UsefulBufC         *pBigNumber,
-                             bool               *pbIsNegative)
+QCBORDecode_GetBignumInMapSZ(QCBORDecodeContext          *pMe,
+                             const char                  *szLabel,
+                             const enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC                  *pBigNumber,
+                             bool                        *pbIsNegative)
 {
    QCBORDecode_GetTBigNumberRawInMapSZ(pMe,
                                        szLabel,
@@ -1760,10 +1737,10 @@
 
 #ifndef QCBOR_CONFIG_DISABLE_EXP_AND_MANTISSA
 static inline void /* Deprecated */
-QCBORDecode_GetDecimalFraction(QCBORDecodeContext *pMe,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnMantissa,
-                               int64_t            *pnExponent)
+QCBORDecode_GetDecimalFraction(QCBORDecodeContext          *pMe,
+                               const enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t                     *pnMantissa,
+                               int64_t                     *pnExponent)
 {
    QCBORDecode_GetTDecimalFraction(pMe,
                                    uTagRequirement,
@@ -1772,11 +1749,11 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetDecimalFractionInMapN(QCBORDecodeContext *pMe,
-                                     int64_t             nLabel,
-                                     uint8_t             uTagRequirement,
-                                     int64_t            *pnMantissa,
-                                     int64_t            *pnExponent)
+QCBORDecode_GetDecimalFractionInMapN(QCBORDecodeContext   *pMe,
+                                     int64_t               nLabel,
+                                     const enum QCBORDecodeTagReq uTagRequirement,
+                                     int64_t              *pnMantissa,
+                                     int64_t              *pnExponent)
 {
    QCBORDecode_GetTDecimalFractionInMapN(pMe,
                                          nLabel,
@@ -1786,11 +1763,11 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetDecimalFractionInMapSZ(QCBORDecodeContext *pMe,
-                                      const char         *szLabel,
-                                      uint8_t             uTagRequirement,
-                                      int64_t            *pnMantissa,
-                                      int64_t            *pnExponent)
+QCBORDecode_GetDecimalFractionInMapSZ(QCBORDecodeContext  *pMe,
+                                      const char          *szLabel,
+                                      const enum QCBORDecodeTagReq uTagRequirement,
+                                      int64_t             *pnMantissa,
+                                      int64_t             *pnExponent)
 {
    QCBORDecode_GetTDecimalFractionInMapSZ(pMe,
                                           szLabel,
@@ -1801,12 +1778,12 @@
 
 
 static inline void /* Deprecated */
-QCBORDecode_GetDecimalFractionBig(QCBORDecodeContext *pMe,
-                                  uint8_t             uTagRequirement,
-                                  UsefulBuf           MantissaBuffer,
-                                  UsefulBufC         *pMantissa,
-                                  bool               *pbMantissaIsNegative,
-                                  int64_t            *pnExponent)
+QCBORDecode_GetDecimalFractionBig(QCBORDecodeContext  *pMe,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
+                                  UsefulBuf            MantissaBuffer,
+                                  UsefulBufC          *pMantissa,
+                                  bool                *pbMantissaIsNegative,
+                                  int64_t             *pnExponent)
 {
    QCBORDecode_GetTDecimalFractionBigMantissaRaw(pMe,
                                                  uTagRequirement,
@@ -1817,13 +1794,13 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetDecimalFractionBigInMapN(QCBORDecodeContext *pMe,
-                                        int64_t             nLabel,
-                                        uint8_t             uTagRequirement,
-                                        UsefulBuf           MantissaBuffer,
-                                        UsefulBufC         *pMantissa,
-                                        bool               *pbMantissaIsNegative,
-                                        int64_t            *pnExponent)
+QCBORDecode_GetDecimalFractionBigInMapN(QCBORDecodeContext  *pMe,
+                                        int64_t              nLabel,
+                                        const enum QCBORDecodeTagReq uTagRequirement,
+                                        UsefulBuf            MantissaBuffer,
+                                        UsefulBufC          *pMantissa,
+                                        bool                *pbMantissaIsNegative,
+                                        int64_t             *pnExponent)
 {
    QCBORDecode_GetTDecimalFractionBigMantissaRawInMapN(pMe,
                                                        nLabel,
@@ -1837,7 +1814,7 @@
 static inline void /* Deprecated */
 QCBORDecode_GetDecimalFractionBigInMapSZ(QCBORDecodeContext *pMe,
                                          const char         *szLabel,
-                                         uint8_t             uTagRequirement,
+                                         const enum QCBORDecodeTagReq uTagRequirement,
                                          UsefulBuf           MantissaBuffer,
                                          UsefulBufC         *pMantissa,
                                          bool               *pbMantissaIsNegative,
@@ -1854,20 +1831,20 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBigFloat(QCBORDecodeContext *pMe,
-                        uint8_t             uTagRequirement,
-                        int64_t            *pnMantissa,
-                        int64_t            *pnExponent)
+QCBORDecode_GetBigFloat(QCBORDecodeContext          *pMe,
+                        const enum QCBORDecodeTagReq uTagRequirement,
+                        int64_t                     *pnMantissa,
+                        int64_t                     *pnExponent)
 {
    QCBORDecode_GetTBigFloat(pMe, uTagRequirement, pnMantissa, pnExponent);
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBigFloatInMapN(QCBORDecodeContext *pMe,
-                              int64_t             nLabel,
-                              uint8_t             uTagRequirement,
-                              int64_t            *pnMantissa,
-                              int64_t            *pnExponent)
+QCBORDecode_GetBigFloatInMapN(QCBORDecodeContext          *pMe,
+                              int64_t                      nLabel,
+                              const enum QCBORDecodeTagReq uTagRequirement,
+                              int64_t                     *pnMantissa,
+                              int64_t                     *pnExponent)
 {
    QCBORDecode_GetTBigFloatInMapN(pMe,
                                   nLabel,
@@ -1877,11 +1854,11 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBigFloatInMapSZ(QCBORDecodeContext *pMe,
-                               const char         *szLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnMantissa,
-                               int64_t            *pnExponent)
+QCBORDecode_GetBigFloatInMapSZ(QCBORDecodeContext          *pMe,
+                               const char                  *szLabel,
+                               const enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t                     *pnMantissa,
+                               int64_t                     *pnExponent)
 {
    QCBORDecode_GetTBigFloatInMapSZ(pMe,
                                    szLabel,
@@ -1891,12 +1868,12 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBigFloatBig(QCBORDecodeContext *pMe,
-                           uint8_t             uTagRequirement,
-                           UsefulBuf           MantissaBuffer,
-                           UsefulBufC         *pMantissa,
-                           bool               *pbMantissaIsNegative,
-                           int64_t            *pnExponent)
+QCBORDecode_GetBigFloatBig(QCBORDecodeContext          *pMe,
+                           const enum QCBORDecodeTagReq uTagRequirement,
+                           UsefulBuf                    MantissaBuffer,
+                           UsefulBufC                  *pMantissa,
+                           bool                        *pbMantissaIsNegative,
+                           int64_t                     *pnExponent)
 {
    QCBORDecode_GetTBigFloatBigMantissaRaw(pMe,
                                           uTagRequirement,
@@ -1909,7 +1886,7 @@
 static inline void /* Deprecated */
 QCBORDecode_GetBigFloatBigInMapN(QCBORDecodeContext *pMe,
                                  int64_t             nLabel,
-                                 uint8_t             uTagRequirement,
+                                 const enum QCBORDecodeTagReq uTagRequirement,
                                  UsefulBuf           MantissaBuffer,
                                  UsefulBufC         *pMantissa,
                                  bool               *pbMantissaIsNegative,
@@ -1925,13 +1902,13 @@
 }
 
 static inline void /* Deprecated */
-QCBORDecode_GetBigFloatBigInMapSZ(QCBORDecodeContext *pMe,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  UsefulBuf           MantissaBuffer,
-                                  UsefulBufC         *pMantissa,
-                                  bool               *pbMantissaIsNegative,
-                                  int64_t            *pnExponent)
+QCBORDecode_GetBigFloatBigInMapSZ(QCBORDecodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
+                                  UsefulBuf                    MantissaBuffer,
+                                  UsefulBufC                  *pMantissa,
+                                  bool                        *pbMantissaIsNegative,
+                                  int64_t                     *pnExponent)
 {
    QCBORDecode_GetTBigFloatBigMantissaRawInMapSZ(pMe,
                                                  szLabel,
diff --git a/inc/qcbor/qcbor_tag_decode.h b/inc/qcbor/qcbor_tag_decode.h
index 74128e1..7da46f0 100644
--- a/inc/qcbor/qcbor_tag_decode.h
+++ b/inc/qcbor/qcbor_tag_decode.h
@@ -119,29 +119,40 @@
  * to work.
  */
 
+/**
+ * When decoding a particular tag like an epoch date, the tag number
+ * identifying it may be required to be present, or to be absent depending
+ * on the protocol design. It may also be optional. This enum tells the decoder
+ * what is required to decode a particular tagged type.
+ *
+ * See @ref Tag-Usage.
+ */
+enum QCBORDecodeTagReq {
+
+   /** The data item must be a tag of the expected type. It is an error
+    *  if it is not. For example when calling QCBORDecode_GetEpochDate(),
+    *  the data item must be an @ref CBOR_TAG_DATE_EPOCH tag.
+    */
+   QCBOR_TAG_REQUIREMENT_TAG = 0,
+
+   /** The data item must be of the type expected for content data type
+    *  being fetched. It is an error if it is not. For example, when
+    *  calling QCBORDecode_GetEpochDate() and it must not be an @ref
+    *  CBOR_TAG_DATE_EPOCH tag.  */
+   QCBOR_TAG_REQUIREMENT_NOT_A_TAG = 1,
+
+   /** Either of the above two are allowed. This allows implementation of
+    *  being liberal in what you receive, but it is better if CBOR-based
+    *  protocols pick one and stick to and not required the reciever to
+    *  take either. */
+   QCBOR_TAG_REQUIREMENT_OPTIONAL_TAG = 2,
+
+   /** Add this into the above value if other tags not processed by QCBOR
+    *  are to be allowed to surround the data item. */
+   QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS = 0x80
+};
 
 
-/** The data item must be a tag of the expected type. It is an error
- *  if it is not. For example when calling QCBORDecode_GetEpochDate(),
- *  the data item must be an @ref CBOR_TAG_DATE_EPOCH tag.  See
- *  @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_TAG 0
-
-/** The data item must be of the type expected for content data type
- *  being fetched. It is an error if it is not. For example, when
- *  calling QCBORDecode_GetEpochDate() and it must not be an @ref
- *  CBOR_TAG_DATE_EPOCH tag. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_NOT_A_TAG  1
-
-/** Either of the above two are allowed. This allows implementation of
- *  being liberal in what you receive, but it is better if CBOR-based
- *  protocols pick one and stick to and not required the reciever to
- *  take either. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_OPTIONAL_TAG 2
-
-/** Add this into the above value if other tags not processed by QCBOR
- *  are to be allowed to surround the data item. See @ref Tag-Usage. */
-#define QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS 0x80
 
 
 #ifndef QCBOR_DISABLE_TAGS
@@ -290,7 +301,7 @@
  * @brief Decode some byte-string wrapped CBOR.
  *
  * @param[in] pCtx    The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pBstr  Pointer and length of byte-string wrapped CBOR (optional).
  *
  * This is for use on some CBOR that has been wrapped in a byte
@@ -338,21 +349,21 @@
  * QCBORDecode_EnterArray().
  */
 void
-QCBORDecode_EnterBstrWrapped(QCBORDecodeContext *pCtx,
-                             uint8_t             uTagRequirement,
-                             UsefulBufC         *pBstr);
+QCBORDecode_EnterBstrWrapped(QCBORDecodeContext    *pCtx,
+                             enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC            *pBstr);
 
 void
-QCBORDecode_EnterBstrWrappedFromMapN(QCBORDecodeContext *pCtx,
-                                     int64_t             nLabel,
-                                     uint8_t             uTagRequirement,
-                                     UsefulBufC         *pBstr);
+QCBORDecode_EnterBstrWrappedFromMapN(QCBORDecodeContext    *pCtx,
+                                     int64_t                nLabel,
+                                     enum QCBORDecodeTagReq uTagRequirement,
+                                     UsefulBufC            *pBstr);
 
 void
-QCBORDecode_EnterBstrWrappedFromMapSZ(QCBORDecodeContext *pCtx,
-                                      const char         *szLabel,
-                                      uint8_t             uTagRequirement,
-                                      UsefulBufC         *pBstr);
+QCBORDecode_EnterBstrWrappedFromMapSZ(QCBORDecodeContext    *pCtx,
+                                      const char            *szLabel,
+                                      enum QCBORDecodeTagReq uTagRequirement,
+                                      UsefulBufC            *pBstr);
 
 
 /**
@@ -378,7 +389,7 @@
  * @brief Decode the next item as a date string.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pDateString     The decoded date.
  *
  * This decodes the standard CBOR date/time string tag, integer tag
@@ -387,27 +398,25 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_DATE_STRING, QCBOREncode_AddDateString() and
  * @ref QCBOR_TYPE_DATE_STRING.
  */
 static void
-QCBORDecode_GetDateString(QCBORDecodeContext *pCtx,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC         *pDateString);
+QCBORDecode_GetDateString(QCBORDecodeContext    *pCtx,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pDateString);
 
 static void
-QCBORDecode_GetDateStringInMapN(QCBORDecodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                UsefulBufC         *pDateString);
+QCBORDecode_GetDateStringInMapN(QCBORDecodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC            *pDateString);
 
 static void
-QCBORDecode_GetDateStringInMapSZ(QCBORDecodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBufC         *pDateString);
+QCBORDecode_GetDateStringInMapSZ(QCBORDecodeContext    *pCtx,
+                                 const char            *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pDateString);
 
 
 /**
@@ -448,27 +457,25 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_DATE_EPOCH, QCBOREncode_AddTDateEpoch() and
  * @ref QCBOR_TYPE_DATE_EPOCH.
 */
 void
-QCBORDecode_GetEpochDate(QCBORDecodeContext *pCtx,
-                         uint8_t             uTagRequirement,
-                         int64_t            *pnTime);
+QCBORDecode_GetEpochDate(QCBORDecodeContext    *pCtx,
+                         enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t               *pnTime);
 
 void
-QCBORDecode_GetEpochDateInMapN(QCBORDecodeContext *pCtx,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnTime);
+QCBORDecode_GetEpochDateInMapN(QCBORDecodeContext    *pCtx,
+                               int64_t                nLabel,
+                               enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t               *pnTime);
 
 void
-QCBORDecode_GetEpochDateInMapSZ(QCBORDecodeContext *pCtx,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnTime);
+QCBORDecode_GetEpochDateInMapSZ(QCBORDecodeContext    *pCtx,
+                                const char            *szLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t               *pnTime);
 
 
 
@@ -476,7 +483,7 @@
  * @brief Decode the next item as a date-only string.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pDateString     The decoded date.
  *
  * This decodes the CBOR date-only string tag, integer tag number of
@@ -485,34 +492,32 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_DAYS_STRING, QCBOREncode_AddDaysString() and
  * @ref QCBOR_TYPE_DAYS_STRING.
  */
 static void
-QCBORDecode_GetDaysString(QCBORDecodeContext *pCtx,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC         *pDateString);
+QCBORDecode_GetDaysString(QCBORDecodeContext    *pCtx,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pDateString);
 
 static void
-QCBORDecode_GetDaysStringInMapN(QCBORDecodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                UsefulBufC         *pDateString);
+QCBORDecode_GetDaysStringInMapN(QCBORDecodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC            *pDateString);
 
 static void
-QCBORDecode_GetDaysStringInMapSZ(QCBORDecodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBufC         *pDateString);
+QCBORDecode_GetDaysStringInMapSZ(QCBORDecodeContext    *pCtx,
+                                 const char            *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pDateString);
 
 
 /**
  * @brief Decode the next item as an days-count epoch date.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pnDays          The decoded epoch date.
  *
  * This decodes the CBOR epoch date tag, integer tag number of 100, or
@@ -522,34 +527,32 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_DAYS_EPOCH, QCBOREncode_AddTDaysEpoch() and
  * @ref QCBOR_TYPE_DAYS_EPOCH.
 */
 void
-QCBORDecode_GetEpochDays(QCBORDecodeContext *pCtx,
-                         uint8_t             uTagRequirement,
-                         int64_t            *pnDays);
+QCBORDecode_GetEpochDays(QCBORDecodeContext    *pCtx,
+                         enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t               *pnDays);
 
 void
-QCBORDecode_GetEpochDaysInMapN(QCBORDecodeContext *pCtx,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnDays);
+QCBORDecode_GetEpochDaysInMapN(QCBORDecodeContext    *pCtx,
+                               int64_t                nLabel,
+                               enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t               *pnDays);
 
 void
-QCBORDecode_GetEpochDaysInMapSZ(QCBORDecodeContext *pCtx,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnDays);
+QCBORDecode_GetEpochDaysInMapSZ(QCBORDecodeContext    *pCtx,
+                                const char            *szLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t               *pnDays);
 
 
 /**
  * @brief Decode the next item as a URI.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pURI            The decoded URI.
  *
  * This decodes a standard CBOR URI tag, integer tag number of 32, or
@@ -558,34 +561,32 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_URI, QCBOREncode_AddTURI() and
  *  @ref QCBOR_TYPE_URI.
  */
 static void
-QCBORDecode_GetURI(QCBORDecodeContext *pCtx,
-                   uint8_t             uTagRequirement,
-                   UsefulBufC         *pURI);
+QCBORDecode_GetURI(QCBORDecodeContext    *pCtx,
+                   enum QCBORDecodeTagReq uTagRequirement,
+                   UsefulBufC            *pURI);
 
 static void
-QCBORDecode_GetURIInMapN(QCBORDecodeContext *pCtx,
-                         int64_t             nLabel,
-                         uint8_t             uTagRequirement,
-                         UsefulBufC         *pURI);
+QCBORDecode_GetURIInMapN(QCBORDecodeContext    *pCtx,
+                         int64_t                nLabel,
+                         enum QCBORDecodeTagReq uTagRequirement,
+                         UsefulBufC            *pURI);
 
 static void
-QCBORDecode_GetURIInMapSZ(QCBORDecodeContext *pCtx,
-                          const char *        szLabel,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC         *pURI);
+QCBORDecode_GetURIInMapSZ(QCBORDecodeContext    *pCtx,
+                          const char            *szLabel,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pURI);
 
 
 /**
  * @brief Decode the next item as base64 encoded text.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pB64Text        The decoded base64 text.
  *
  * This decodes a standard CBOR base64 tag, integer tag number of 34,
@@ -594,35 +595,33 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * Note that this does not actually remove the base64 encoding.
  *
  * See also @ref CBOR_TAG_B64, QCBOREncode_AddB64Text() and
  * @ref QCBOR_TYPE_BASE64.
  */
 static void
-QCBORDecode_GetB64(QCBORDecodeContext *pCtx,
-                   uint8_t             uTagRequirement,
-                   UsefulBufC         *pB64Text);
+QCBORDecode_GetB64(QCBORDecodeContext    *pCtx,
+                   enum QCBORDecodeTagReq uTagRequirement,
+                   UsefulBufC            *pB64Text);
 
 static void
-QCBORDecode_GetB64InMapN(QCBORDecodeContext *pCtx,
-                         int64_t             nLabel,
-                         uint8_t             uTagRequirement,
-                         UsefulBufC         *pB64Text);
+QCBORDecode_GetB64InMapN(QCBORDecodeContext    *pCtx,
+                         int64_t                nLabel,
+                         enum QCBORDecodeTagReq uTagRequirement,
+                         UsefulBufC            *pB64Text);
 
 static void
-QCBORDecode_GetB64InMapSZ(QCBORDecodeContext *pCtx,
-                          const char         *szLabel,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC         *pB64Text);
+QCBORDecode_GetB64InMapSZ(QCBORDecodeContext    *pCtx,
+                          const char            *szLabel,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pB64Text);
 
 /**
  * @brief Decode the next item as base64URL encoded text.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pB64Text        The decoded base64 text.
  *
  * This decodes a standard CBOR base64url tag, integer tag number of
@@ -631,35 +630,33 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * Note that this does not actually remove the base64url encoding.
  *
  * See also @ref CBOR_TAG_B64URL, QCBOREncode_AddTB64URLText() and
  * @ref QCBOR_TYPE_BASE64URL.
  */
 static void
-QCBORDecode_GetB64URL(QCBORDecodeContext *pCtx,
-                      uint8_t             uTagRequirement,
-                      UsefulBufC         *pB64Text);
+QCBORDecode_GetB64URL(QCBORDecodeContext    *pCtx,
+                      enum QCBORDecodeTagReq uTagRequirement,
+                      UsefulBufC            *pB64Text);
 
 static void
-QCBORDecode_GetB64URLInMapN(QCBORDecodeContext *pCtx,
-                            int64_t             nLabel,
-                            uint8_t             uTagRequirement,
-                            UsefulBufC         *pB64Text);
+QCBORDecode_GetB64URLInMapN(QCBORDecodeContext    *pCtx,
+                            int64_t                nLabel,
+                            enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC            *pB64Text);
 
 static void
-QCBORDecode_GetB64URLInMapSZ(QCBORDecodeContext *pCtx,
-                             const char         *szLabel,
-                             uint8_t             uTagRequirement,
-                             UsefulBufC         *pB64Text);
+QCBORDecode_GetB64URLInMapSZ(QCBORDecodeContext    *pCtx,
+                             const char            *szLabel,
+                             enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC            *pB64Text);
 
 /**
  * @brief Decode the next item as a regular expression.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pRegex          The decoded regular expression.
  *
  * This decodes a standard CBOR regex tag, integer tag number of 35,
@@ -668,34 +665,32 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_REGEX, QCBOREncode_AddTRegex() and
  * @ref QCBOR_TYPE_REGEX.
  */
 static void
-QCBORDecode_GetRegex(QCBORDecodeContext *pCtx,
-                     uint8_t             uTagRequirement,
-                     UsefulBufC         *pRegex);
+QCBORDecode_GetRegex(QCBORDecodeContext    *pCtx,
+                     enum QCBORDecodeTagReq uTagRequirement,
+                     UsefulBufC            *pRegex);
 
 static void
-QCBORDecode_GetRegexInMapN(QCBORDecodeContext *pCtx,
-                           int64_t             nLabel,
-                           uint8_t             uTagRequirement,
-                           UsefulBufC         *pRegex);
+QCBORDecode_GetRegexInMapN(QCBORDecodeContext    *pCtx,
+                           int64_t                nLabel,
+                           enum QCBORDecodeTagReq uTagRequirement,
+                           UsefulBufC            *pRegex);
 
 static void
-QCBORDecode_GetRegexInMapSZ(QCBORDecodeContext *pCtx,
-                            const char *        szLabel,
-                            uint8_t             uTagRequirement,
-                             UsefulBufC         *pRegex);
+QCBORDecode_GetRegexInMapSZ(QCBORDecodeContext    *pCtx,
+                            const char            *szLabel,
+                            enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC            *pRegex);
 
 
 /**
  * @brief Decode the next item as a MIME message.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
  * @param[out] pMessage        The decoded regular expression.
  * @param[out] pbIsTag257      @c true if tag was 257. May be @c NULL.
  *
@@ -705,8 +700,6 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * The MIME message itself is not parsed.
  *
  * This decodes both tag 36 and 257. If it is tag 257, pbIsTag257 is
@@ -723,32 +716,31 @@
  * for a discussion of line endings in CBOR.
  */
 void
-QCBORDecode_GetMIMEMessage(QCBORDecodeContext *pCtx,
-                           uint8_t             uTagRequirement,
-                           UsefulBufC         *pMessage,
-                           bool               *pbIsTag257);
-
- void
-QCBORDecode_GetMIMEMessageInMapN(QCBORDecodeContext *pCtx,
-                                 int64_t              nLabel,
-                                 uint8_t              uTagRequirement,
-                                 UsefulBufC          *pMessage,
-                                 bool                *pbIsTag257);
-
+QCBORDecode_GetMIMEMessage(QCBORDecodeContext    *pCtx,
+                           enum QCBORDecodeTagReq uTagRequirement,
+                           UsefulBufC            *pMessage,
+                           bool                  *pbIsTag257);
 
 void
-QCBORDecode_GetMIMEMessageInMapSZ(QCBORDecodeContext *pCtx,
-                                  const char         *szLabel,
-                                  uint8_t             uTagRequirement,
-                                  UsefulBufC         *pMessage,
-                                  bool               *pbIsTag257);
+QCBORDecode_GetMIMEMessageInMapN(QCBORDecodeContext    *pCtx,
+                                 int64_t                nLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pMessage,
+                                 bool                  *pbIsTag257);
+
+void
+QCBORDecode_GetMIMEMessageInMapSZ(QCBORDecodeContext    *pCtx,
+                                  const char            *szLabel,
+                                  enum QCBORDecodeTagReq uTagRequirement,
+                                  UsefulBufC            *pMessage,
+                                  bool                  *pbIsTag257);
 
 /**
  * @brief Decode the next item as a UUID.
  *
  * @param[in] pCtx             The decode context.
- * @param[in] uTagRequirement  One of @c QCBOR_TAG_REQUIREMENT_XXX.
- * @param[out] pUUID           The decoded UUID
+ * @param[in] uTagRequirement  See @ref QCBORDecodeTagReq.
+ * @param[out] pUUID           The decoded UUID.
  *
  * This decodes a standard CBOR UUID tag, integer tag number of 37, or
  * encoded CBOR that is not a tag, that is a UUID encoded in a byte
@@ -756,27 +748,25 @@
  *
  * Please see @ref Decode-Errors-Overview "Decode Errors Overview".
  *
- * See @ref Tag-Usage for discussion on tag requirements.
- *
  * See also @ref CBOR_TAG_BIN_UUID, QCBOREncode_AddTBinaryUUID() and
  * @ref QCBOR_TYPE_UUID.
  */
 static void
-QCBORDecode_GetBinaryUUID(QCBORDecodeContext *pCtx,
-                          uint8_t             uTagRequirement,
-                          UsefulBufC         *pUUID);
+QCBORDecode_GetBinaryUUID(QCBORDecodeContext    *pCtx,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pUUID);
 
 static void
-QCBORDecode_GetBinaryUUIDInMapN(QCBORDecodeContext *pCtx,
-                                int64_t             nLabel,
-                                uint8_t             uTagRequirement,
-                                UsefulBufC         *pUUID);
+QCBORDecode_GetBinaryUUIDInMapN(QCBORDecodeContext    *pCtx,
+                                int64_t                nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC            *pUUID);
 
 static void
-QCBORDecode_GetBinaryUUIDInMapSZ(QCBORDecodeContext *pCtx,
-                                 const char         *szLabel,
-                                 uint8_t             uTagRequirement,
-                                 UsefulBufC         *pUUID);
+QCBORDecode_GetBinaryUUIDInMapSZ(QCBORDecodeContext    *pCtx,
+                                 const char            *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pUUID);
 
 
 
@@ -1120,35 +1110,35 @@
 
 /* Semi-private used by public inline functions. See qcbor_tag_decode.c */
 void
-QCBORDecode_Private_GetTaggedString(QCBORDecodeContext  *pMe,
-                                    uint8_t              uTagRequirement,
-                                    uint8_t              uQCBOR_Type,
-                                    uint64_t             uTagNumber,
-                                    UsefulBufC          *pBstr);
+QCBORDecode_Private_GetTaggedString(QCBORDecodeContext    *pMe,
+                                    enum QCBORDecodeTagReq uTagRequirement,
+                                    uint8_t                uQCBOR_Type,
+                                    uint64_t               uTagNumber,
+                                    UsefulBufC            *pBstr);
 
 /* Semi-private used by public inline functions. See qcbor_tag_decode.c */
 void
-QCBORDecode_Private_GetTaggedStringInMapN(QCBORDecodeContext  *pMe,
-                                          const int64_t        nLabel,
-                                          const uint8_t        uTagRequirement,
-                                          const uint8_t        uQCBOR_Type,
-                                          const uint64_t       uTagNumber,
-                                          UsefulBufC          *pString);
+QCBORDecode_Private_GetTaggedStringInMapN(QCBORDecodeContext    *pMe,
+                                          const int64_t          nLabel,
+                                          enum QCBORDecodeTagReq uTagRequirement,
+                                          const uint8_t          uQCBOR_Type,
+                                          const uint64_t         uTagNumber,
+                                          UsefulBufC            *pString);
 
 /* Semi-private used by public inline functions. See qcbor_tag_decode.c */
 void
-QCBORDecode_Private_GetTaggedStringInMapSZ(QCBORDecodeContext  *pMe,
-                                           const char          *szLabel,
-                                           uint8_t              uTagRequirement,
-                                           uint8_t              uQCBOR_Type,
-                                           uint64_t             uTagNumber,
-                                           UsefulBufC          *pString);
+QCBORDecode_Private_GetTaggedStringInMapSZ(QCBORDecodeContext    *pMe,
+                                           const char            *szLabel,
+                                           enum QCBORDecodeTagReq uTagRequirement,
+                                           uint8_t                uQCBOR_Type,
+                                           uint64_t               uTagNumber,
+                                           UsefulBufC            *pString);
 
 /* Semi-private function. See qcbor_tag_decode.c */
 void
 QCBORDecode_Private_ProcessTagItemMulti(QCBORDecodeContext      *pMe,
                                         QCBORItem               *pItem,
-                                        const uint8_t            uTagRequirement,
+                                        enum QCBORDecodeTagReq   uTagRequirement,
                                         const uint8_t            uQCBORTypes[],
                                         const uint64_t           uTagNumbers[],
                                         QCBORTagContentCallBack *pfCB,
@@ -1158,7 +1148,7 @@
 void
 QCBORDecode_Private_ProcessTagItem(QCBORDecodeContext      *pMe,
                                    QCBORItem               *pItem,
-                                   const uint8_t            uTagRequirement,
+                                   enum QCBORDecodeTagReq   uTagRequirement,
                                    const uint8_t            uQCBORTypes[],
                                    const uint64_t           uTagNumber,
                                    QCBORTagContentCallBack *pfCB,
@@ -1181,9 +1171,9 @@
 
 
 static inline void
-QCBORDecode_GetDateString(QCBORDecodeContext *pMe,
-                          const uint8_t       uTagRequirement,
-                          UsefulBufC         *pValue)
+QCBORDecode_GetDateString(QCBORDecodeContext    *pMe,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pValue)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1193,10 +1183,10 @@
 }
 
 static inline void
-QCBORDecode_GetDateStringInMapN(QCBORDecodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTagRequirement,
-                                UsefulBufC         *pText)
+QCBORDecode_GetDateStringInMapN(QCBORDecodeContext    *pMe,
+                                const int64_t          nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC            *pText)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                               nLabel,
@@ -1207,10 +1197,10 @@
 }
 
 static inline void
-QCBORDecode_GetDateStringInMapSZ(QCBORDecodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTagRequirement,
-                                 UsefulBufC         *pText)
+QCBORDecode_GetDateStringInMapSZ(QCBORDecodeContext    *pMe,
+                                 const char            *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pText)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1221,9 +1211,9 @@
 }
 
 static inline void
-QCBORDecode_GetDaysString(QCBORDecodeContext *pMe,
-                          const uint8_t       uTagRequirement,
-                          UsefulBufC         *pValue)
+QCBORDecode_GetDaysString(QCBORDecodeContext    *pMe,
+                          enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC            *pValue)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1233,10 +1223,10 @@
 }
 
 static inline void
-QCBORDecode_GetDaysStringInMapN(QCBORDecodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTagRequirement,
-                                UsefulBufC         *pText)
+QCBORDecode_GetDaysStringInMapN(QCBORDecodeContext    *pMe,
+                                const int64_t          nLabel,
+                                enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC            *pText)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                              nLabel,
@@ -1247,10 +1237,10 @@
 }
 
 static inline void
-QCBORDecode_GetDaysStringInMapSZ(QCBORDecodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTagRequirement,
-                                 UsefulBufC         *pText)
+QCBORDecode_GetDaysStringInMapSZ(QCBORDecodeContext    *pMe,
+                                 const char            *szLabel,
+                                 enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC            *pText)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1263,9 +1253,9 @@
 
 
 static inline void
-QCBORDecode_GetURI(QCBORDecodeContext *pMe,
-                   const uint8_t       uTagRequirement,
-                   UsefulBufC         *pUUID)
+QCBORDecode_GetURI(QCBORDecodeContext          *pMe,
+                   const enum QCBORDecodeTagReq uTagRequirement,
+                   UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1275,10 +1265,10 @@
 }
 
 static inline void
-QCBORDecode_GetURIInMapN(QCBORDecodeContext *pMe,
-                         const int64_t       nLabel,
-                         const uint8_t       uTagRequirement,
-                         UsefulBufC         *pUUID)
+QCBORDecode_GetURIInMapN(QCBORDecodeContext          *pMe,
+                         const int64_t                nLabel,
+                         const enum QCBORDecodeTagReq uTagRequirement,
+                         UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                               nLabel,
@@ -1289,10 +1279,10 @@
 }
 
 static inline void
-QCBORDecode_GetURIInMapSZ(QCBORDecodeContext *pMe,
-                          const char         *szLabel,
-                          const uint8_t       uTagRequirement,
-                          UsefulBufC         *pUUID)
+QCBORDecode_GetURIInMapSZ(QCBORDecodeContext          *pMe,
+                          const char                  *szLabel,
+                          const enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1304,9 +1294,9 @@
 
 
 static inline void
-QCBORDecode_GetB64(QCBORDecodeContext *pMe,
-                   const uint8_t       uTagRequirement,
-                   UsefulBufC         *pB64Text)
+QCBORDecode_GetB64(QCBORDecodeContext          *pMe,
+                   const enum QCBORDecodeTagReq uTagRequirement,
+                   UsefulBufC                  *pB64Text)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1316,10 +1306,10 @@
 }
 
 static inline void
-QCBORDecode_GetB64InMapN(QCBORDecodeContext *pMe,
-                         const int64_t       nLabel,
-                         const uint8_t       uTagRequirement,
-                         UsefulBufC         *pB64Text)
+QCBORDecode_GetB64InMapN(QCBORDecodeContext          *pMe,
+                         const int64_t                nLabel,
+                         const enum QCBORDecodeTagReq uTagRequirement,
+                         UsefulBufC                  *pB64Text)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                              nLabel,
@@ -1330,10 +1320,10 @@
 }
 
 static inline void
-QCBORDecode_GetB64InMapSZ(QCBORDecodeContext *pMe,
-                          const char         *szLabel,
-                          const uint8_t       uTagRequirement,
-                          UsefulBufC         *pB64Text)
+QCBORDecode_GetB64InMapSZ(QCBORDecodeContext          *pMe,
+                          const char                  *szLabel,
+                          const enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC                  *pB64Text)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1346,7 +1336,7 @@
 
 static inline void
 QCBORDecode_GetB64URL(QCBORDecodeContext *pMe,
-                      const uint8_t       uTagRequirement,
+                      const enum QCBORDecodeTagReq uTagRequirement,
                       UsefulBufC         *pB64Text)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
@@ -1357,10 +1347,10 @@
 }
 
 static inline void
-QCBORDecode_GetB64URLInMapN(QCBORDecodeContext *pMe,
-                            const int64_t       nLabel,
-                            const uint8_t       uTagRequirement,
-                            UsefulBufC         *pB64Text)
+QCBORDecode_GetB64URLInMapN(QCBORDecodeContext          *pMe,
+                            const int64_t                nLabel,
+                            const enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC                  *pB64Text)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                               nLabel,
@@ -1371,10 +1361,10 @@
 }
 
 static inline void
-QCBORDecode_GetB64URLInMapSZ(QCBORDecodeContext *pMe,
-                             const char         *szLabel,
-                             const uint8_t       uTagRequirement,
-                             UsefulBufC         *pB64Text)
+QCBORDecode_GetB64URLInMapSZ(QCBORDecodeContext          *pMe,
+                             const char                  *szLabel,
+                             const enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC                  *pB64Text)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1386,9 +1376,9 @@
 
 
 static inline void
-QCBORDecode_GetRegex(QCBORDecodeContext *pMe,
-                     const uint8_t      uTagRequirement,
-                     UsefulBufC         *pRegex)
+QCBORDecode_GetRegex(QCBORDecodeContext          *pMe,
+                     const enum QCBORDecodeTagReq uTagRequirement,
+                     UsefulBufC                  *pRegex)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1398,24 +1388,24 @@
 }
 
 static inline void
-QCBORDecode_GetRegexInMapN(QCBORDecodeContext *pMe,
-                           const int64_t       nLabel,
-                           const uint8_t       uTagRequirement,
-                           UsefulBufC         *pRegex)
+QCBORDecode_GetRegexInMapN(QCBORDecodeContext          *pMe,
+                           const int64_t                nLabel,
+                           const enum QCBORDecodeTagReq uTagRequirement,
+                           UsefulBufC                  *pRegex)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
-                                              nLabel,
-                                              uTagRequirement,
-                                              QCBOR_TYPE_REGEX,
-                                              CBOR_TAG_REGEX,
-                                              pRegex);
+                                             nLabel,
+                                             uTagRequirement,
+                                             QCBOR_TYPE_REGEX,
+                                             CBOR_TAG_REGEX,
+                                             pRegex);
 }
 
 static inline void
-QCBORDecode_GetRegexInMapSZ(QCBORDecodeContext *pMe,
-                            const char *        szLabel,
-                            const uint8_t       uTagRequirement,
-                            UsefulBufC         *pRegex)
+QCBORDecode_GetRegexInMapSZ(QCBORDecodeContext          *pMe,
+                            const char                  *szLabel,
+                            const enum QCBORDecodeTagReq uTagRequirement,
+                            UsefulBufC                  *pRegex)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
@@ -1427,9 +1417,9 @@
 
 
 static inline void
-QCBORDecode_GetBinaryUUID(QCBORDecodeContext *pMe,
-                          const uint8_t       uTagRequirement,
-                          UsefulBufC         *pUUID)
+QCBORDecode_GetBinaryUUID(QCBORDecodeContext          *pMe,
+                          const enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedString(pMe,
                                        uTagRequirement,
@@ -1439,10 +1429,10 @@
 }
 
 static inline void
-QCBORDecode_GetBinaryUUIDInMapN(QCBORDecodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTagRequirement,
-                                UsefulBufC         *pUUID)
+QCBORDecode_GetBinaryUUIDInMapN(QCBORDecodeContext          *pMe,
+                                const int64_t                nLabel,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedStringInMapN(pMe,
                                              nLabel,
@@ -1453,10 +1443,10 @@
 }
 
 static inline void
-QCBORDecode_GetBinaryUUIDInMapSZ(QCBORDecodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTagRequirement,
-                                 UsefulBufC         *pUUID)
+QCBORDecode_GetBinaryUUIDInMapSZ(QCBORDecodeContext          *pMe,
+                                 const char                  *szLabel,
+                                 const enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC                  *pUUID)
 {
    QCBORDecode_Private_GetTaggedStringInMapSZ(pMe,
                                               szLabel,
diff --git a/src/qcbor_number_decode.c b/src/qcbor_number_decode.c
index 8c5e2f3..912d2f2 100644
--- a/src/qcbor_number_decode.c
+++ b/src/qcbor_number_decode.c
@@ -2041,12 +2041,12 @@
  * numbers.
  */
 static void
-QCBORDecode_Private_BigNumberRawMain(QCBORDecodeContext *pMe,
-                                     const uint8_t       uTagRequirement,
-                                     QCBORItem          *pItem,
-                                     UsefulBufC         *pBignumber,
-                                     bool               *pbIsNegative,
-                                     size_t              uOffset)
+QCBORDecode_Private_BigNumberRawMain(QCBORDecodeContext          *pMe,
+                                     const enum QCBORDecodeTagReq uTagRequirement,
+                                     QCBORItem                   *pItem,
+                                     UsefulBufC                  *pBignumber,
+                                     bool                        *pbIsNegative,
+                                     size_t                       uOffset)
 {
    QCBORDecode_Private_ProcessTagItemMulti(pMe,
                                            pItem,
@@ -2069,13 +2069,13 @@
 
 
 static void
-QCBORDecode_Private_BigNumberNoPreferredMain(QCBORDecodeContext *pMe,
-                                             const uint8_t       uTagRequirement,
-                                             QCBORItem          *pItem,
-                                             const size_t        uOffset,
-                                             UsefulBuf           BigNumberBuf,
-                                             UsefulBufC         *pBigNumber,
-                                             bool               *pbIsNegative)
+QCBORDecode_Private_BigNumberNoPreferredMain(QCBORDecodeContext          *pMe,
+                                             const enum QCBORDecodeTagReq uTagRequirement,
+                                             QCBORItem                   *pItem,
+                                             const size_t                uOffset,
+                                             UsefulBuf                   BigNumberBuf,
+                                             UsefulBufC                 *pBigNumber,
+                                             bool                       *pbIsNegative)
 {
    QCBORDecode_Private_ProcessTagItemMulti(pMe,
                                            pItem,
@@ -2093,13 +2093,13 @@
 
 
 static void
-QCBORDecode_Private_BigNumberMain(QCBORDecodeContext *pMe,
-                                  const uint8_t       uTagRequirement,
-                                  QCBORItem          *pItem,
-                                  const size_t        uOffset,
-                                  UsefulBuf           BigNumberBuf,
-                                  UsefulBufC         *pBigNumber,
-                                  bool               *pbIsNegative)
+QCBORDecode_Private_BigNumberMain(QCBORDecodeContext          *pMe,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
+                                  QCBORItem                   *pItem,
+                                  const size_t                uOffset,
+                                  UsefulBuf                   BigNumberBuf,
+                                  UsefulBufC                 *pBigNumber,
+                                  bool                       *pbIsNegative)
 {
    QCBORDecode_Private_ProcessTagItemMulti(pMe,
                                            pItem,
@@ -2118,11 +2118,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumber(QCBORDecodeContext *pMe,
-                          const uint8_t       uTagRequirement,
-                          UsefulBuf           BigNumberBuf,
-                          UsefulBufC         *pBigNumber,
-                          bool               *pbIsNegative)
+QCBORDecode_GetTBigNumber(QCBORDecodeContext          *pMe,
+                          const enum QCBORDecodeTagReq uTagRequirement,
+                          UsefulBuf                    BigNumberBuf,
+                          UsefulBufC                  *pBigNumber,
+                          bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2133,12 +2133,12 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberInMapN(QCBORDecodeContext *pMe,
-                                const int64_t       nLabel,
-                                const uint8_t       uTagRequirement,
-                                UsefulBuf           BigNumberBuf,
-                                UsefulBufC         *pBigNumber,
-                                bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberInMapN(QCBORDecodeContext          *pMe,
+                                const int64_t                nLabel,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                UsefulBuf                    BigNumberBuf,
+                                UsefulBufC                  *pBigNumber,
+                                bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2155,12 +2155,12 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberInMapSZ(QCBORDecodeContext *pMe,
-                                 const char         *szLabel,
-                                 const uint8_t       uTagRequirement,
-                                 UsefulBuf           BigNumberBuf,
-                                 UsefulBufC         *pBigNumber,
-                                 bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberInMapSZ(QCBORDecodeContext          *pMe,
+                                 const char                  *szLabel,
+                                 const enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBuf                    BigNumberBuf,
+                                 UsefulBufC                  *pBigNumber,
+                                 bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2178,11 +2178,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberNoPreferred(QCBORDecodeContext *pMe,
-                                     const uint8_t       uTagRequirement,
-                                     UsefulBuf           BigNumberBuf,
-                                     UsefulBufC         *pBigNumber,
-                                     bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberNoPreferred(QCBORDecodeContext          *pMe,
+                                     const enum QCBORDecodeTagReq uTagRequirement,
+                                     UsefulBuf                    BigNumberBuf,
+                                     UsefulBufC                  *pBigNumber,
+                                     bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2193,12 +2193,12 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberNoPreferredInMapN(QCBORDecodeContext *pMe,
-                                           const int64_t       nLabel,
-                                           const uint8_t       uTagRequirement,
-                                           UsefulBuf           BigNumberBuf,
-                                           UsefulBufC         *pBigNumber,
-                                           bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberNoPreferredInMapN(QCBORDecodeContext          *pMe,
+                                           const int64_t                nLabel,
+                                           const enum QCBORDecodeTagReq uTagRequirement,
+                                           UsefulBuf                    BigNumberBuf,
+                                           UsefulBufC                  *pBigNumber,
+                                           bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2210,12 +2210,12 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberNoPreferredInMapSZ(QCBORDecodeContext *pMe,
-                                            const char         *szLabel,
-                                            const uint8_t       uTagRequirement,
-                                            UsefulBuf           BigNumberBuf,
-                                            UsefulBufC         *pBigNumber,
-                                            bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberNoPreferredInMapSZ(QCBORDecodeContext          *pMe,
+                                            const char                  *szLabel,
+                                            const enum QCBORDecodeTagReq uTagRequirement,
+                                            UsefulBuf                    BigNumberBuf,
+                                            UsefulBufC                  *pBigNumber,
+                                            bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2228,10 +2228,10 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberRaw(QCBORDecodeContext *pMe,
-                             const uint8_t       uTagRequirement,
-                             UsefulBufC         *pBignumber,
-                             bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberRaw(QCBORDecodeContext          *pMe,
+                             const enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC                  *pBignumber,
+                             bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2247,11 +2247,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberRawInMapN(QCBORDecodeContext *pMe,
-                                   const int64_t       nLabel,
-                                   const uint8_t       uTagRequirement,
-                                   UsefulBufC         *pBigNumber,
-                                   bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberRawInMapN(QCBORDecodeContext          *pMe,
+                                   const int64_t                nLabel,
+                                   const enum QCBORDecodeTagReq uTagRequirement,
+                                   UsefulBufC                  *pBigNumber,
+                                   bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2268,11 +2268,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigNumberRawInMapSZ(QCBORDecodeContext *pMe,
-                                    const char         *szLabel,
-                                    const uint8_t       uTagRequirement,
-                                    UsefulBufC         *pBigNumber,
-                                    bool               *pbIsNegative)
+QCBORDecode_GetTBigNumberRawInMapSZ(QCBORDecodeContext          *pMe,
+                                    const char                  *szLabel,
+                                    const enum QCBORDecodeTagReq uTagRequirement,
+                                    UsefulBufC                  *pBigNumber,
+                                    bool                        *pbIsNegative)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2367,13 +2367,13 @@
  * same in QCBOR v1 and v2.
  */
 static void
-QCBORDecode_Private_ExpIntMantissaMain(QCBORDecodeContext  *pMe,
-                                       const uint8_t        uTagRequirement,
-                                       const uint64_t       uTagNumber,
-                                       const size_t         uOffset,
-                                       QCBORItem           *pItem,
-                                       int64_t             *pnMantissa,
-                                       int64_t             *pnExponent)
+QCBORDecode_Private_ExpIntMantissaMain(QCBORDecodeContext          *pMe,
+                                       const enum QCBORDecodeTagReq uTagRequirement,
+                                       const uint64_t               uTagNumber,
+                                       const size_t                 uOffset,
+                                       QCBORItem                   *pItem,
+                                       int64_t                     *pnMantissa,
+                                       int64_t                     *pnExponent)
 {
    QCBORError     uErr;
    const uint8_t *qTypes;
@@ -2440,7 +2440,7 @@
 
 static void
 QCBORDecode_Private_ExpBigMantissaRawMain(QCBORDecodeContext  *pMe,
-                                          const uint8_t        uTagRequirement,
+                                          const enum QCBORDecodeTagReq uTagRequirement,
                                           const uint64_t       uTagNumber,
                                           const size_t         uOffset,
                                           QCBORItem           *pItem,
@@ -2547,15 +2547,15 @@
  * caller doesn't need to. This links more object code than QCBORDecode_Private_ProcessExpMantissaBig().
  */
 static void
-QCBORDecode_Private_ExpBigMantissaMain(QCBORDecodeContext  *pMe,
-                                       const uint8_t        uTagRequirement,
-                                       const uint64_t       uTagNumber,
-                                       const size_t         uOffset,
-                                       QCBORItem           *pItem,
-                                       const UsefulBuf      BufferForMantissa,
-                                       UsefulBufC          *pMantissa,
-                                       bool                *pbIsNegative,
-                                       int64_t             *pnExponent)
+QCBORDecode_Private_ExpBigMantissaMain(QCBORDecodeContext          *pMe,
+                                       const enum QCBORDecodeTagReq uTagRequirement,
+                                       const uint64_t               uTagNumber,
+                                       const size_t                 uOffset,
+                                       QCBORItem                   *pItem,
+                                       const UsefulBuf              BufferForMantissa,
+                                       UsefulBufC                  *pMantissa,
+                                       bool                        *pbIsNegative,
+                                       int64_t                     *pnExponent)
 {
    QCBORError     uErr;
    QCBORItem      TempMantissa;
@@ -2632,10 +2632,10 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTDecimalFraction(QCBORDecodeContext *pMe,
-                                const uint8_t       uTagRequirement,
-                                int64_t             *pnMantissa,
-                                int64_t             *pnExponent)
+QCBORDecode_GetTDecimalFraction(QCBORDecodeContext          *pMe,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t                     *pnMantissa,
+                                int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2653,11 +2653,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTDecimalFractionInMapN(QCBORDecodeContext *pMe,
-                                      const int64_t       nLabel,
-                                      const uint8_t       uTagRequirement,
-                                      int64_t             *pnMantissa,
-                                      int64_t             *pnExponent)
+QCBORDecode_GetTDecimalFractionInMapN(QCBORDecodeContext          *pMe,
+                                      const int64_t                nLabel,
+                                      const enum QCBORDecodeTagReq uTagRequirement,
+                                      int64_t                     *pnMantissa,
+                                      int64_t                     *pnExponent)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -2676,11 +2676,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTDecimalFractionInMapSZ(QCBORDecodeContext *pMe,
-                                       const char         *szLabel,
-                                       const uint8_t       uTagRequirement,
-                                       int64_t             *pnMantissa,
-                                       int64_t             *pnExponent)
+QCBORDecode_GetTDecimalFractionInMapSZ(QCBORDecodeContext          *pMe,
+                                       const char                  *szLabel,
+                                       const enum QCBORDecodeTagReq uTagRequirement,
+                                       int64_t                     *pnMantissa,
+                                       int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2698,12 +2698,12 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTDecimalFractionBigMantissa(QCBORDecodeContext *pMe,
-                                           const uint8_t       uTagRequirement,
-                                           const UsefulBuf     MantissaBuffer,
-                                           UsefulBufC         *pMantissa,
-                                           bool               *pbMantissaIsNegative,
-                                           int64_t            *pnExponent)
+QCBORDecode_GetTDecimalFractionBigMantissa(QCBORDecodeContext          *pMe,
+                                           const enum QCBORDecodeTagReq uTagRequirement,
+                                           const UsefulBuf              MantissaBuffer,
+                                           UsefulBufC                  *pMantissa,
+                                           bool                        *pbMantissaIsNegative,
+                                           int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2725,7 +2725,7 @@
 void
 QCBORDecode_GetTDecimalFractionBigMantissaInMapN(QCBORDecodeContext *pMe,
                                                  const int64_t       nLabel,
-                                                 const uint8_t       uTagRequirement,
+                                                 const enum QCBORDecodeTagReq uTagRequirement,
                                                  const UsefulBuf     BufferForMantissa,
                                                  UsefulBufC         *pMantissa,
                                                  bool               *pbIsNegative,
@@ -2751,7 +2751,7 @@
 void
 QCBORDecode_GetTDecimalFractionBigMantissaInMapSZ(QCBORDecodeContext *pMe,
                                                   const char         *szLabel,
-                                                  const uint8_t       uTagRequirement,
+                                                  const enum QCBORDecodeTagReq uTagRequirement,
                                                   const UsefulBuf     BufferForMantissa,
                                                   UsefulBufC         *pMantissa,
                                                   bool               *pbIsNegative,
@@ -2775,7 +2775,7 @@
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
 QCBORDecode_GetTDecimalFractionBigMantissaRaw(QCBORDecodeContext *pMe,
-                                              const uint8_t       uTagRequirement,
+                                              const enum QCBORDecodeTagReq uTagRequirement,
                                               const UsefulBuf     MantissaBuffer,
                                               UsefulBufC         *pMantissa,
                                               bool               *pbMantissaIsNegative,
@@ -2799,13 +2799,13 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTDecimalFractionBigMantissaRawInMapN(QCBORDecodeContext *pMe,
-                                                    const int64_t       nLabel,
-                                                    const uint8_t       uTagRequirement,
-                                                    const UsefulBuf     BufferForMantissa,
-                                                    UsefulBufC         *pMantissa,
-                                                    bool               *pbIsNegative,
-                                                    int64_t            *pnExponent)
+QCBORDecode_GetTDecimalFractionBigMantissaRawInMapN(QCBORDecodeContext          *pMe,
+                                                    const int64_t                nLabel,
+                                                    const enum QCBORDecodeTagReq uTagRequirement,
+                                                    const UsefulBuf              BufferForMantissa,
+                                                    UsefulBufC                  *pMantissa,
+                                                    bool                        *pbIsNegative,
+                                                    int64_t                     *pnExponent)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -2827,7 +2827,7 @@
 void
 QCBORDecode_GetTDecimalFractionBigMantissaRawInMapSZ(QCBORDecodeContext *pMe,
                                                      const char         *szLabel,
-                                                     const uint8_t       uTagRequirement,
+                                                     const enum QCBORDecodeTagReq uTagRequirement,
                                                      const UsefulBuf     BufferForMantissa,
                                                      UsefulBufC         *pMantissa,
                                                      bool               *pbIsNegative,
@@ -2851,10 +2851,10 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloat(QCBORDecodeContext *pMe,
-                         const uint8_t       uTagRequirement,
-                         int64_t             *pnMantissa,
-                         int64_t             *pnExponent)
+QCBORDecode_GetTBigFloat(QCBORDecodeContext          *pMe,
+                         const enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t                     *pnMantissa,
+                         int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2872,11 +2872,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloatInMapN(QCBORDecodeContext *pMe,
-                               const int64_t       nLabel,
-                               const uint8_t       uTagRequirement,
-                               int64_t            *pnMantissa,
-                               int64_t            *pnExponent)
+QCBORDecode_GetTBigFloatInMapN(QCBORDecodeContext          *pMe,
+                               const int64_t                nLabel,
+                               const enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t                     *pnMantissa,
+                               int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2894,11 +2894,11 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloatInMapSZ(QCBORDecodeContext *pMe,
-                                const char         *szLabel,
-                                const uint8_t       uTagRequirement,
-                                int64_t            *pnMantissa,
-                                int64_t            *pnExponent)
+QCBORDecode_GetTBigFloatInMapSZ(QCBORDecodeContext          *pMe,
+                                const char                  *szLabel,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t                     *pnMantissa,
+                                int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2916,8 +2916,8 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloatBigMantissa(QCBORDecodeContext *pMe,
-                                    const uint8_t       uTagRequirement,
+QCBORDecode_GetTBigFloatBigMantissa(QCBORDecodeContext          *pMe,
+                                    const enum QCBORDecodeTagReq uTagRequirement,
                                     const UsefulBuf     MantissaBuffer,
                                     UsefulBufC         *pMantissa,
                                     bool               *pbMantissaIsNegative,
@@ -2944,7 +2944,7 @@
 void
 QCBORDecode_GetTBigFloatBigMantissaInMapN(QCBORDecodeContext *pMe,
                                           const int64_t       nLabel,
-                                          const uint8_t       uTagRequirement,
+                                          const enum QCBORDecodeTagReq uTagRequirement,
                                           const UsefulBuf     BufferForMantissa,
                                           UsefulBufC         *pMantissa,
                                           bool               *pbIsNegative,
@@ -2968,13 +2968,13 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloatBigMantissaInMapSZ(QCBORDecodeContext *pMe,
-                                           const char         *szLabel,
-                                           const uint8_t       uTagRequirement,
-                                           const UsefulBuf     BufferForMantissa,
-                                           UsefulBufC         *pMantissa,
-                                           bool               *pbIsNegative,
-                                           int64_t            *pnExponent)
+QCBORDecode_GetTBigFloatBigMantissaInMapSZ(QCBORDecodeContext          *pMe,
+                                           const char                  *szLabel,
+                                           const enum QCBORDecodeTagReq uTagRequirement,
+                                           const UsefulBuf              BufferForMantissa,
+                                           UsefulBufC                  *pMantissa,
+                                           bool                        *pbIsNegative,
+                                           int64_t                     *pnExponent)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -2995,7 +2995,7 @@
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
 QCBORDecode_GetTBigFloatBigMantissaRaw(QCBORDecodeContext *pMe,
-                                       const uint8_t       uTagRequirement,
+                                       const enum QCBORDecodeTagReq uTagRequirement,
                                        const UsefulBuf     MantissaBuffer,
                                        UsefulBufC         *pMantissa,
                                        bool               *pbMantissaIsNegative,
@@ -3020,7 +3020,7 @@
 void
 QCBORDecode_GetTBigFloatBigMantissaRawInMapN(QCBORDecodeContext *pMe,
                                              const int64_t       nLabel,
-                                             const uint8_t       uTagRequirement,
+                                             const enum QCBORDecodeTagReq uTagRequirement,
                                              const UsefulBuf     BufferForMantissa,
                                              UsefulBufC         *pMantissa,
                                              bool               *pbIsNegative,
@@ -3044,13 +3044,13 @@
 
 /* Public function, see qcbor/qcbor_number_decode.h */
 void
-QCBORDecode_GetTBigFloatBigMantissaRawInMapSZ(QCBORDecodeContext *pMe,
-                                              const char         *szLabel,
-                                              const uint8_t       uTagRequirement,
-                                              const UsefulBuf     BufferForMantissa,
-                                              UsefulBufC         *pMantissa,
-                                              bool               *pbIsNegative,
-                                              int64_t            *pnExponent)
+QCBORDecode_GetTBigFloatBigMantissaRawInMapSZ(QCBORDecodeContext          *pMe,
+                                              const char                  *szLabel,
+                                              const enum QCBORDecodeTagReq uTagRequirement,
+                                              const UsefulBuf              BufferForMantissa,
+                                              UsefulBufC                  *pMantissa,
+                                              bool                        *pbIsNegative,
+                                              int64_t                     *pnExponent)
 {
    QCBORItem Item;
    size_t    uOffset;
diff --git a/src/qcbor_tag_decode.c b/src/qcbor_tag_decode.c
index 05fa90e..46da8a9 100644
--- a/src/qcbor_tag_decode.c
+++ b/src/qcbor_tag_decode.c
@@ -284,19 +284,20 @@
 
 
 static QCBORError
-QCBORDecode_Private_CheckTagNType(QCBORDecodeContext *pMe,
-                                  const QCBORItem    *pItem,
-                                  const size_t        uOffset,
-                                  const uint8_t      *uQCBORTypes,
-                                  const uint64_t     *uTagNumbers,
-                                  const uint8_t       uTagRequirement,
-                                  bool               *bTypeMatched)
+QCBORDecode_Private_CheckTagNType(QCBORDecodeContext          *pMe,
+                                  const QCBORItem             *pItem,
+                                  const size_t                 uOffset,
+                                  const uint8_t               *uQCBORTypes,
+                                  const uint64_t              *uTagNumbers,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
+                                  bool                        *bTypeMatched)
 {
    const uint64_t *pQType;
    const uint64_t *pTNum;
    const uint8_t  *pTypeNum;
 
-   const int nTagReq = uTagRequirement & ~QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS;
+   const enum QCBORDecodeTagReq nTagReq = (enum QCBORDecodeTagReq)((int)uTagRequirement & ~QCBOR_TAG_REQUIREMENT_ALLOW_ADDITIONAL_TAGS);
+
 
    *bTypeMatched = false;
    for(pTypeNum = uQCBORTypes; *pTypeNum != QCBOR_TYPE_NONE; pTypeNum++) {
@@ -366,7 +367,7 @@
 void
 QCBORDecode_Private_ProcessTagItemMulti(QCBORDecodeContext      *pMe,
                                         QCBORItem               *pItem,
-                                        const uint8_t            uTagRequirement,
+                                        enum QCBORDecodeTagReq   uTagRequirement,
                                         const uint8_t            uQCBORTypes[],
                                         const uint64_t           uTagNumbers[],
                                         QCBORTagContentCallBack *pfCB,
@@ -408,7 +409,7 @@
 void
 QCBORDecode_Private_ProcessTagItem(QCBORDecodeContext      *pMe,
                                    QCBORItem               *pItem,
-                                   const uint8_t            uTagRequirement,
+                                   enum QCBORDecodeTagReq   uTagRequirement,
                                    const uint8_t            uQCBORTypes[],
                                    const uint64_t           uTagNumber,
                                    QCBORTagContentCallBack *pfCB,
@@ -432,7 +433,7 @@
 static void
 QCBORDecode_Private_ProcessTagOne(QCBORDecodeContext      *pMe,
                                   QCBORItem               *pItem,
-                                  const uint8_t            uTagRequirement,
+                                  enum QCBORDecodeTagReq uTagRequirement,
                                   const uint8_t            uQCBORType,
                                   const uint64_t           uTagNumber,
                                   QCBORTagContentCallBack *pfCB,
@@ -454,11 +455,11 @@
 
 
 void
-QCBORDecode_Private_GetTaggedString(QCBORDecodeContext  *pMe,
-                                    const uint8_t        uTagRequirement,
-                                    const uint8_t        uQCBOR_Type,
-                                    const uint64_t       uTagNumber,
-                                    UsefulBufC          *pStr)
+QCBORDecode_Private_GetTaggedString(QCBORDecodeContext    *pMe,
+                                    enum QCBORDecodeTagReq uTagRequirement,
+                                    const uint8_t          uQCBOR_Type,
+                                    const uint64_t         uTagNumber,
+                                    UsefulBufC            *pStr)
 {
    QCBORItem  Item;
    size_t uOffset;
@@ -496,12 +497,12 @@
  * specification. If not, an error is set in the decode context.
  */
 void
-QCBORDecode_Private_GetTaggedStringInMapN(QCBORDecodeContext  *pMe,
-                                          const int64_t        nLabel,
-                                          const uint8_t        uTagRequirement,
-                                          const uint8_t        uQCBOR_Type,
-                                          const uint64_t       uTagNumber,
-                                          UsefulBufC          *pString)
+QCBORDecode_Private_GetTaggedStringInMapN(QCBORDecodeContext          *pMe,
+                                          const int64_t                nLabel,
+                                          const enum QCBORDecodeTagReq uTagRequirement,
+                                          const uint8_t                uQCBOR_Type,
+                                          const uint64_t               uTagNumber,
+                                          UsefulBufC                  *pString)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -541,12 +542,12 @@
  * specification. If not, an error is set in the decode context.
   */
 void
-QCBORDecode_Private_GetTaggedStringInMapSZ(QCBORDecodeContext  *pMe,
-                                           const char          *szLabel,
-                                           uint8_t              uTagRequirement,
-                                           uint8_t              uQCBOR_Type,
-                                           uint64_t             uTagNumber,
-                                           UsefulBufC          *pString)
+QCBORDecode_Private_GetTaggedStringInMapSZ(QCBORDecodeContext          *pMe,
+                                           const char                  *szLabel,
+                                           const enum QCBORDecodeTagReq uTagRequirement,
+                                           uint8_t                      uQCBOR_Type,
+                                           uint64_t                     uTagNumber,
+                                           UsefulBufC                  *pString)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -588,11 +589,11 @@
  * See QCBORDecode_EnterBstrWrapped() for details on uTagRequirement.
  */
 static QCBORError
-QCBORDecode_Private_EnterBstrWrapped(QCBORDecodeContext *pMe,
-                                     const QCBORItem    *pItem,
-                                     const uint8_t       uTagRequirement,
-                                     const size_t        uOffset,
-                                     UsefulBufC         *pBstr)
+QCBORDecode_Private_EnterBstrWrapped(QCBORDecodeContext          *pMe,
+                                     const QCBORItem             *pItem,
+                                     const enum QCBORDecodeTagReq uTagRequirement,
+                                     const size_t                 uOffset,
+                                     UsefulBufC                  *pBstr)
 {
    bool       bTypeMatched;
    QCBORError uError;
@@ -683,9 +684,9 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_EnterBstrWrapped(QCBORDecodeContext *pMe,
-                             const uint8_t       uTagRequirement,
-                             UsefulBufC         *pBstr)
+QCBORDecode_EnterBstrWrapped(QCBORDecodeContext          *pMe,
+                             const enum QCBORDecodeTagReq uTagRequirement,
+                             UsefulBufC                  *pBstr)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -701,10 +702,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_EnterBstrWrappedFromMapN(QCBORDecodeContext *pMe,
-                                     const int64_t       nLabel,
-                                     const uint8_t       uTagRequirement,
-                                     UsefulBufC         *pBstr)
+QCBORDecode_EnterBstrWrappedFromMapN(QCBORDecodeContext          *pMe,
+                                     const int64_t                nLabel,
+                                     const enum QCBORDecodeTagReq uTagRequirement,
+                                     UsefulBufC                  *pBstr)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -724,10 +725,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_EnterBstrWrappedFromMapSZ(QCBORDecodeContext *pMe,
-                                      const char         *szLabel,
-                                      const uint8_t       uTagRequirement,
-                                      UsefulBufC         *pBstr)
+QCBORDecode_EnterBstrWrappedFromMapSZ(QCBORDecodeContext          *pMe,
+                                      const char                  *szLabel,
+                                      const enum QCBORDecodeTagReq uTagRequirement,
+                                      UsefulBufC                  *pBstr)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -778,9 +779,9 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDate(QCBORDecodeContext *pMe,
-                         uint8_t             uTagRequirement,
-                         int64_t            *pnTime)
+QCBORDecode_GetEpochDate(QCBORDecodeContext          *pMe,
+                         const enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t                     *pnTime)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -799,10 +800,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDateInMapN(QCBORDecodeContext *pMe,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnTime)
+QCBORDecode_GetEpochDateInMapN(QCBORDecodeContext          *pMe,
+                               int64_t                      nLabel,
+                               const enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t                     *pnTime)
 {
    QCBORItem Item;
    size_t uOffset;
@@ -825,10 +826,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDateInMapSZ(QCBORDecodeContext *pMe,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnTime)
+QCBORDecode_GetEpochDateInMapSZ(QCBORDecodeContext          *pMe,
+                                const char                  *szLabel,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t                     *pnTime)
 {
    QCBORItem Item;
    size_t uOffset;
@@ -851,9 +852,9 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDays(QCBORDecodeContext *pMe,
-                         uint8_t             uTagRequirement,
-                         int64_t            *pnDays)
+QCBORDecode_GetEpochDays(QCBORDecodeContext          *pMe,
+                         const enum QCBORDecodeTagReq uTagRequirement,
+                         int64_t                     *pnDays)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -872,10 +873,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDaysInMapN(QCBORDecodeContext *pMe,
-                               int64_t             nLabel,
-                               uint8_t             uTagRequirement,
-                               int64_t            *pnDays)
+QCBORDecode_GetEpochDaysInMapN(QCBORDecodeContext          *pMe,
+                               int64_t                      nLabel,
+                               const enum QCBORDecodeTagReq uTagRequirement,
+                               int64_t                     *pnDays)
 {
    QCBORItem Item;
    size_t uOffset;
@@ -898,10 +899,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetEpochDaysInMapSZ(QCBORDecodeContext *pMe,
-                                const char         *szLabel,
-                                uint8_t             uTagRequirement,
-                                int64_t            *pnDays)
+QCBORDecode_GetEpochDaysInMapSZ(QCBORDecodeContext          *pMe,
+                                const char                  *szLabel,
+                                const enum QCBORDecodeTagReq uTagRequirement,
+                                int64_t                     *pnDays)
 {
    QCBORItem Item;
    size_t    uOffset;
@@ -925,12 +926,12 @@
 
 
 static void
-QCBORDecode_Private_GetMIME(QCBORDecodeContext *pMe,
-                            const uint8_t       uTagRequirement,
-                            QCBORItem          *pItem,
-                            UsefulBufC         *pValue,
-                            bool               *pbIsTag257,
-                            size_t              uOffset)
+QCBORDecode_Private_GetMIME(QCBORDecodeContext          *pMe,
+                            const enum QCBORDecodeTagReq uTagRequirement,
+                            QCBORItem                   *pItem,
+                            UsefulBufC                  *pValue,
+                            bool                        *pbIsTag257,
+                            size_t                       uOffset)
 {
    QCBORError uErr;
 
@@ -964,10 +965,10 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetMIMEMessage(QCBORDecodeContext *pMe,
-                           const uint8_t       uTagRequirement,
-                           UsefulBufC         *pMessage,
-                           bool               *pbIsTag257)
+QCBORDecode_GetMIMEMessage(QCBORDecodeContext          *pMe,
+                           const enum QCBORDecodeTagReq uTagRequirement,
+                           UsefulBufC                  *pMessage,
+                           bool                        *pbIsTag257)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -983,11 +984,11 @@
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetMIMEMessageInMapN(QCBORDecodeContext *pMe,
-                                 const int64_t       nLabel,
-                                 const uint8_t       uTagRequirement,
-                                 UsefulBufC         *pMessage,
-                                 bool               *pbIsTag257)
+QCBORDecode_GetMIMEMessageInMapN(QCBORDecodeContext          *pMe,
+                                 const int64_t                nLabel,
+                                 const enum QCBORDecodeTagReq uTagRequirement,
+                                 UsefulBufC                  *pMessage,
+                                 bool                        *pbIsTag257)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -998,20 +999,20 @@
                                             &Item,
                                             &uOffset);
    QCBORDecode_Private_GetMIME(pMe,
-                                uTagRequirement,
-                               &Item,
-                                pMessage,
-                                pbIsTag257,
-                                uOffset);
+                               uTagRequirement,
+                              &Item,
+                               pMessage,
+                               pbIsTag257,
+                               uOffset);
 }
 
 /* Public function; see qcbor_tag_decode.h */
 void
-QCBORDecode_GetMIMEMessageInMapSZ(QCBORDecodeContext *pMe,
-                                  const char         *szLabel,
-                                  const uint8_t       uTagRequirement,
-                                  UsefulBufC         *pMessage,
-                                  bool               *pbIsTag257)
+QCBORDecode_GetMIMEMessageInMapSZ(QCBORDecodeContext          *pMe,
+                                  const char                  *szLabel,
+                                  const enum QCBORDecodeTagReq uTagRequirement,
+                                  UsefulBufC                  *pMessage,
+                                  bool                        *pbIsTag257)
 {
    QCBORItem  Item;
    size_t     uOffset;
@@ -1022,11 +1023,11 @@
                                              &Item,
                                              &uOffset);
    QCBORDecode_Private_GetMIME(pMe,
-                                uTagRequirement,
-                               &Item,
-                                pMessage,
-                                pbIsTag257,
-                                uOffset);
+                               uTagRequirement,
+                              &Item,
+                               pMessage,
+                               pbIsTag257,
+                               uOffset);
 }