---
title: "POST /api/admin/product-features"
method: POST
path: "/api/admin/product-features"
tags: ["Admin"]
---

# POST /api/admin/product-features

`POST /api/admin/product-features`

## Request

- Base URL: `https://www.revuo.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://www.revuo.ai/api/admin/product-features`
- Auth: none declared

## Request body

- SetProductFeatureRequest
  - `productId` string, nullable, required
  - `featureId` string, nullable, required
  - `value` BsonValue
    - `asBoolean` boolean
    - `asBsonArray` BsonValue[], nullable
    - `asBsonBinaryData` BsonBinaryData
      - `asBoolean` boolean
      - `asBsonArray` BsonValue[], nullable
      - `asBsonBinaryData` BsonBinaryData (recursive)
      - `asBsonDateTime` BsonDateTime
        - `asBoolean` boolean
        - `asBsonArray` BsonValue[], nullable
        - `asBsonBinaryData` BsonBinaryData (recursive)
        - `asBsonDateTime` BsonDateTime (recursive)
        - `asBsonDocument` BsonElement[], nullable
          - `name` string, nullable
          - `value` BsonValue (recursive)
        - `asBsonJavaScript` BsonJavaScript
          - `asBoolean` boolean
          - `asBsonArray` BsonValue[], nullable
          - `asBsonBinaryData` BsonBinaryData (recursive)
          - `asBsonDateTime` BsonDateTime (recursive)
          - `asBsonDocument` BsonElement[], nullable
            - `name` string, nullable
            - `value` BsonValue (recursive)
          - `asBsonJavaScript` BsonJavaScript (recursive)
          - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `code` string, nullable
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `scope` BsonElement[], nullable
              - …
          - `asBsonMaxKey` BsonMaxKey
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonMinKey` BsonMinKey
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey (recursive)
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonNull` BsonNull
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull (recursive)
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonRegularExpression` BsonRegularExpression
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression (recursive)
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `pattern` string, nullable
            - `options` string, nullable
          - `asBsonSymbol` BsonSymbol
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol (recursive)
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `name` string, nullable
          - `asBsonTimestamp` BsonTimestamp
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp (recursive)
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `value` integer
            - `increment` integer
            - `timestamp` integer
          - `asBsonUndefined` BsonUndefined
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined (recursive)
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonValue` BsonValue (recursive)
          - `asByteArray` string, byte, nullable
          - `asDecimal` number, double
          - `asDecimal128` Decimal128
          - `asDouble` number, double
          - `asGuid` string, uuid
          - `asInt32` integer
          - `asInt64` integer
          - `asLocalTime` string, date-time
          - `asNullableBoolean` boolean, nullable
          - `asNullableDecimal` number, double, nullable
          - `asNullableDecimal128` Decimal128
          - `asNullableDouble` number, double, nullable
          - `asNullableGuid` string, uuid, nullable
          - `asNullableInt32` integer, nullable
          - `asNullableInt64` integer, nullable
          - `asNullableLocalTime` string, date-time, nullable
          - `asNullableObjectId` ObjectId
            - `timestamp` integer
            - `creationTime` string, date-time
          - `asNullableUniversalTime` string, date-time, nullable
          - `asObjectId` ObjectId
            - `timestamp` integer
            - `creationTime` string, date-time
          - `asRegex` Regex
            - `options` 'none' | 'ignoreCase' | 'multiline' | 'explicitCapture' | 'compiled' | 'singleline' | 'ignorePatternWhitespace' | 'rightToLeft' | 'ecmaScript' | 'cultureInvariant' | 'nonBacktracking'
            - `rightToLeft` boolean
            - `matchTimeout` string, date-span
          - `asString` string, nullable
          - `asUniversalTime` string, date-time
          - `isBoolean` boolean
          - `isBsonArray` boolean
          - `isBsonBinaryData` boolean
          - `isBsonDateTime` boolean
          - `isBsonDocument` boolean
          - `isBsonJavaScript` boolean
          - `isBsonJavaScriptWithScope` boolean
          - `isBsonMaxKey` boolean
          - `isBsonMinKey` boolean
          - `isBsonNull` boolean
          - `isBsonRegularExpression` boolean
          - `isBsonSymbol` boolean
          - `isBsonTimestamp` boolean
          - `isBsonUndefined` boolean
          - `isDecimal128` boolean
          - `isDouble` boolean
          - `isGuid` boolean
          - `isInt32` boolean
          - `isInt64` boolean
          - `isNumeric` boolean
          - `isObjectId` boolean
          - `isString` boolean
          - `isValidDateTime` boolean
          - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `code` string, nullable
        - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
          - `asBoolean` boolean
          - `asBsonArray` BsonValue[], nullable
          - `asBsonBinaryData` BsonBinaryData (recursive)
          - `asBsonDateTime` BsonDateTime (recursive)
          - `asBsonDocument` BsonElement[], nullable
            - `name` string, nullable
            - `value` BsonValue (recursive)
          - `asBsonJavaScript` BsonJavaScript
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `code` string, nullable
          - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
          - `asBsonMaxKey` BsonMaxKey
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonMinKey` BsonMinKey
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey (recursive)
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonNull` BsonNull
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull (recursive)
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonRegularExpression` BsonRegularExpression
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression (recursive)
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `pattern` string, nullable
            - `options` string, nullable
          - `asBsonSymbol` BsonSymbol
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol (recursive)
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `name` string, nullable
          - `asBsonTimestamp` BsonTimestamp
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp (recursive)
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `value` integer
            - `increment` integer
            - `timestamp` integer
          - `asBsonUndefined` BsonUndefined
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey
              - …
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined (recursive)
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonValue` BsonValue (recursive)
          - `asByteArray` string, byte, nullable
          - `asDecimal` number, double
          - `asDecimal128` Decimal128
          - `asDouble` number, double
          - `asGuid` string, uuid
          - `asInt32` integer
          - `asInt64` integer
          - `asLocalTime` string, date-time
          - `asNullableBoolean` boolean, nullable
          - `asNullableDecimal` number, double, nullable
          - `asNullableDecimal128` Decimal128
          - `asNullableDouble` number, double, nullable
          - `asNullableGuid` string, uuid, nullable
          - `asNullableInt32` integer, nullable
          - `asNullableInt64` integer, nullable
          - `asNullableLocalTime` string, date-time, nullable
          - `asNullableObjectId` ObjectId
            - `timestamp` integer
            - `creationTime` string, date-time
          - `asNullableUniversalTime` string, date-time, nullable
          - `asObjectId` ObjectId
            - `timestamp` integer
            - `creationTime` string, date-time
          - `asRegex` Regex
            - `options` 'none' | 'ignoreCase' | 'multiline' | 'explicitCapture' | 'compiled' | 'singleline' | 'ignorePatternWhitespace' | 'rightToLeft' | 'ecmaScript' | 'cultureInvariant' | 'nonBacktracking'
            - `rightToLeft` boolean
            - `matchTimeout` string, date-span
          - `asString` string, nullable
          - `asUniversalTime` string, date-time
          - `isBoolean` boolean
          - `isBsonArray` boolean
          - `isBsonBinaryData` boolean
          - `isBsonDateTime` boolean
          - `isBsonDocument` boolean
          - `isBsonJavaScript` boolean
          - `isBsonJavaScriptWithScope` boolean
          - `isBsonMaxKey` boolean
          - `isBsonMinKey` boolean
          - `isBsonNull` boolean
          - `isBsonRegularExpression` boolean
          - `isBsonSymbol` boolean
          - `isBsonTimestamp` boolean
          - `isBsonUndefined` boolean
          - `isDecimal128` boolean
          - `isDouble` boolean
          - `isGuid` boolean
          - `isInt32` boolean
          - `isInt64` boolean
          - `isNumeric` boolean
          - `isObjectId` boolean
          - `isString` boolean
          - `isValidDateTime` boolean
          - `code` string, nullable
          - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `scope` BsonElement[], nullable
            - `name` string, nullable
            - `value` BsonValue (recursive)
        - `asBsonMaxKey` BsonMaxKey
          - `asBoolean` boolean
          - `asBsonArray` BsonValue[], nullable
          - `asBsonBinaryData` BsonBinaryData (recursive)
          - `asBsonDateTime` BsonDateTime (recursive)
          - `asBsonDocument` BsonElement[], nullable
            - `name` string, nullable
            - `value` BsonValue (recursive)
          - `asBsonJavaScript` BsonJavaScript
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript (recursive)
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `code` string, nullable
          - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope (recursive)
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `code` string, nullable
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `scope` BsonElement[], nullable
              - …
          - `asBsonMaxKey` BsonMaxKey (recursive)
          - `asBsonMinKey` BsonMinKey
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey (recursive)
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonNull` BsonNull
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull (recursive)
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
          - `asBsonRegularExpression` BsonRegularExpression
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression (recursive)
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `pattern` string, nullable
            - `options` string, nullable
          - `asBsonSymbol` BsonSymbol
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol (recursive)
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `name` string, nullable
          - `asBsonTimestamp` BsonTimestamp
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp (recursive)
            - `asBsonUndefined` BsonUndefined
              - …
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
            - `asString` string, nullable
            - `asUniversalTime` string, date-time
            - `isBoolean` boolean
            - `isBsonArray` boolean
            - `isBsonBinaryData` boolean
            - `isBsonDateTime` boolean
            - `isBsonDocument` boolean
            - `isBsonJavaScript` boolean
            - `isBsonJavaScriptWithScope` boolean
            - `isBsonMaxKey` boolean
            - `isBsonMinKey` boolean
            - `isBsonNull` boolean
            - `isBsonRegularExpression` boolean
            - `isBsonSymbol` boolean
            - `isBsonTimestamp` boolean
            - `isBsonUndefined` boolean
            - `isDecimal128` boolean
            - `isDouble` boolean
            - `isGuid` boolean
            - `isInt32` boolean
            - `isInt64` boolean
            - `isNumeric` boolean
            - `isObjectId` boolean
            - `isString` boolean
            - `isValidDateTime` boolean
            - `bsonType` 'endOfDocument' | 'double' | 'string' | 'document' | 'array' | 'binary' | 'undefined' | 'objectId' | 'boolean' | 'dateTime' | 'null' | 'regularExpression' | 'javaScript' | 'symbol' | 'javaScriptWithScope' | 'int32' | 'timestamp' | 'int64' | 'decimal128' | 'maxKey' | 'minKey'
            - `value` integer
            - `increment` integer
            - `timestamp` integer
          - `asBsonUndefined` BsonUndefined
            - `asBoolean` boolean
            - `asBsonArray` BsonValue[], nullable
            - `asBsonBinaryData` BsonBinaryData (recursive)
            - `asBsonDateTime` BsonDateTime (recursive)
            - `asBsonDocument` BsonElement[], nullable
              - …
            - `asBsonJavaScript` BsonJavaScript
              - …
            - `asBsonJavaScriptWithScope` BsonJavaScriptWithScope
              - …
            - `asBsonMaxKey` BsonMaxKey (recursive)
            - `asBsonMinKey` BsonMinKey
              - …
            - `asBsonNull` BsonNull
              - …
            - `asBsonRegularExpression` BsonRegularExpression
              - …
            - `asBsonSymbol` BsonSymbol
              - …
            - `asBsonTimestamp` BsonTimestamp
              - …
            - `asBsonUndefined` BsonUndefined (recursive)
            - `asBsonValue` BsonValue (recursive)
            - `asByteArray` string, byte, nullable
            - `asDecimal` number, double
            - `asDecimal128` Decimal128
            - `asDouble` number, double
            - `asGuid` string, uuid
            - `asInt32` integer
            - `asInt64` integer
            - `asLocalTime` string, date-time
            - `asNullableBoolean` boolean, nullable
            - `asNullableDecimal` number, double, nullable
            - `asNullableDecimal128` Decimal128
            - `asNullableDouble` number, double, nullable
            - `asNullableGuid` string, uuid, nullable
            - `asNullableInt32` integer, nullable
            - `asNullableInt64` integer, nullable
            - `asNullableLocalTime` string, date-time, nullable
            - `asNullableObjectId` ObjectId
              - …
            - `asNullableUniversalTime` string, date-time, nullable
            - `asObjectId` ObjectId
              - …
            - `asRegex` Regex
              - …
- … truncated; see the full OpenAPI document linked below

## Response `200`

OK

- ProductFeatureResponse
  - `id` string, nullable
  - `productId` string, nullable, required
  - `featureId` string, nullable, required
  - `value` unknown
  - `notes` string, nullable
  - `source` 'ai' | 'vendor' | 'admin'
  - `confidence` number, double, nullable

## Other responses

- `default`: Error (any 4xx/5xx status), as an RFC 9457 problem document.

---

[API](https://skmtc.dev/revuo/apis/revuo-web.md) · [All operations](https://skmtc.dev/revuo/apis/revuo-web/llms.txt) · [OpenAPI document](https://skmtc.dev/revuo/apis/revuo-web/revisions/3889a7c540d3?raw)
