# parameter-kinds-literal pydantic_v2.BaseModel
  > GET https://api.example.com/values?amount=12345678901234567890.123
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('12345678901234567890.123') = None
  > GET https://api.example.com/values?amount=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('1.50') = None
  > GET https://api.example.com/values?amounts=12345678901234567890.123&amounts=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amounts [Decimal('12345678901234567890.123'), Decimal('1.50')] = None
  > GET https://api.example.com/values?count=12
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send count 12 = None
  > GET https://api.example.com/values?flag=true
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send flag True = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed 5 = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed '5' = None
  refuse amount Decimal('NaN') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amount Decimal('Infinity') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amounts [Decimal('1.50'), Decimal('-Infinity')] ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amounts') [operation_id='getValues', location=('query', 'amounts'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse count inf ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.count') [operation_id='getValues', location=('query', 'count'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  > GET https://api.example.com/values?step=0.25
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send step of 0.25 = None
  > GET https://api.example.com/values?ratio=2.2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send ratio of 2.2 = None
  > GET https://api.example.com/values?level=2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send level of 2 = None
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '12345678901234567890.123' = ValuesGetResponse204XAmountHeader(root=Decimal('12345678901234567890.123'))
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '1.50' = ValuesGetResponse204XAmountHeader(root=Decimal('1.50'))
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amounts '12345678901234567890.123,1.50' = ValuesGetResponse204XAmountsHeader(root=[Decimal('12345678901234567890.123'), Decimal('1.50')])
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Step '12345678901234567890.12' = ValuesGetResponse204XStepHeader(root=1.2345678901234567e+19)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '2.2' = ValuesGetResponse204XRatioHeader(root=2.2)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '0.5' = ValuesGetResponse204XRatioHeader(root=0.5)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Level '2' = ValuesGetResponse204XLevelHeader(root=2)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Count '12' = ValuesGetResponse204XCountHeader(root=12)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Flag 'true' = ValuesGetResponse204XFlagHeader(root=True)
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed '5' = ValuesGetResponse204XMixedHeader(root='5')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed 'abc' = ValuesGetResponse204XMixedHeader(root='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with 5 = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with '5' = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='abc', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text alone = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='abc', either='abc')
# parameter-kinds-literal pydantic_v2.dataclass
  > GET https://api.example.com/values?amount=12345678901234567890.123
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('12345678901234567890.123') = None
  > GET https://api.example.com/values?amount=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('1.50') = None
  > GET https://api.example.com/values?amounts=12345678901234567890.123&amounts=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amounts [Decimal('12345678901234567890.123'), Decimal('1.50')] = None
  > GET https://api.example.com/values?count=12
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send count 12 = None
  > GET https://api.example.com/values?flag=true
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send flag True = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed 5 = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed '5' = None
  refuse amount Decimal('NaN') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amount Decimal('Infinity') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amounts [Decimal('1.50'), Decimal('-Infinity')] ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amounts') [operation_id='getValues', location=('query', 'amounts'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse count inf ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.count') [operation_id='getValues', location=('query', 'count'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  > GET https://api.example.com/values?step=0.25
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send step of 0.25 = None
  > GET https://api.example.com/values?ratio=2.2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send ratio of 2.2 = None
  > GET https://api.example.com/values?level=2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send level of 2 = None
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '12345678901234567890.123' = Decimal('12345678901234567890.123')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '1.50' = Decimal('1.50')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amounts '12345678901234567890.123,1.50' = [Decimal('12345678901234567890.123'), Decimal('1.50')]
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Step '12345678901234567890.12' = 1.2345678901234567e+19
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '2.2' = 2.2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '0.5' = 0.5
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Level '2' = 2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Count '12' = 12
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Flag 'true' = True
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed '5' = '5'
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed 'abc' = 'abc'
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with 5 = Values(amount=MISSING, amounts=MISSING, step=MISSING, level=MISSING, count=MISSING, flag=MISSING, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with '5' = Values(amount=MISSING, amounts=MISSING, step=MISSING, level=MISSING, count=MISSING, flag=MISSING, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='abc', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text alone = Values(amount=MISSING, amounts=MISSING, step=MISSING, level=MISSING, count=MISSING, flag=MISSING, mixed='abc', either='abc')
# parameter-kinds-literal dataclasses.dataclass
  > GET https://api.example.com/values?amount=12345678901234567890.123
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('12345678901234567890.123') = None
  > GET https://api.example.com/values?amount=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('1.50') = None
  > GET https://api.example.com/values?amounts=12345678901234567890.123&amounts=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amounts [Decimal('12345678901234567890.123'), Decimal('1.50')] = None
  > GET https://api.example.com/values?count=12
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send count 12 = None
  > GET https://api.example.com/values?flag=true
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send flag True = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed 5 = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed '5' = None
  refuse amount Decimal('NaN') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amount Decimal('Infinity') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amounts [Decimal('1.50'), Decimal('-Infinity')] ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amounts') [operation_id='getValues', location=('query', 'amounts'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse count inf ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.count') [operation_id='getValues', location=('query', 'count'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  > GET https://api.example.com/values?step=0.25
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send step of 0.25 = None
  > GET https://api.example.com/values?ratio=2.2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send ratio of 2.2 = None
  > GET https://api.example.com/values?level=2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send level of 2 = None
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '12345678901234567890.123' = Decimal('12345678901234567890.123')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '1.50' = Decimal('1.50')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amounts '12345678901234567890.123,1.50' = [Decimal('12345678901234567890.123'), Decimal('1.50')]
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Step '12345678901234567890.12' = 1.2345678901234567e+19
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '2.2' = 2.2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '0.5' = 0.5
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Level '2' = 2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Count '12' = 12
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Flag 'true' = True
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed '5' = '5'
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed 'abc' = 'abc'
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with 5 = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with '5' = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='abc', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text alone = Values(amount=None, amounts=None, step=None, level=None, count=None, flag=None, mixed='abc', either='abc')
# parameter-kinds-literal typing.TypedDict
  > GET https://api.example.com/values?amount=12345678901234567890.123
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('12345678901234567890.123') = None
  > GET https://api.example.com/values?amount=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('1.50') = None
  > GET https://api.example.com/values?amounts=12345678901234567890.123&amounts=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amounts [Decimal('12345678901234567890.123'), Decimal('1.50')] = None
  > GET https://api.example.com/values?count=12
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send count 12 = None
  > GET https://api.example.com/values?flag=true
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send flag True = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed 5 = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed '5' = None
  refuse amount Decimal('NaN') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amount Decimal('Infinity') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amounts [Decimal('1.50'), Decimal('-Infinity')] ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amounts') [operation_id='getValues', location=('query', 'amounts'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse count inf ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.count') [operation_id='getValues', location=('query', 'count'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  > GET https://api.example.com/values?step=0.25
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send step of 0.25 = None
  > GET https://api.example.com/values?ratio=2.2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send ratio of 2.2 = None
  > GET https://api.example.com/values?level=2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send level of 2 = None
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '12345678901234567890.123' = Decimal('12345678901234567890.123')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '1.50' = Decimal('1.50')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amounts '12345678901234567890.123,1.50' = [Decimal('12345678901234567890.123'), Decimal('1.50')]
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Step '12345678901234567890.12' = 1.2345678901234567e+19
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '2.2' = 2.2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '0.5' = 0.5
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Level '2' = 2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Count '12' = 12
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Flag 'true' = True
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed '5' = '5'
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed 'abc' = 'abc'
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with 5 = {'mixed': '5', 'either': '7'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with '5' = {'mixed': '5', 'either': '7'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields = {'amount': Decimal('12345678901234567890.123'), 'amounts': [Decimal('1.50'), Decimal('2')], 'step': 1.2345678901234567e+19, 'level': 2, 'count': 12, 'flag': True, 'mixed': '5', 'either': '7'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields of text = {'amount': Decimal('12345678901234567890.123'), 'amounts': [Decimal('1.50'), Decimal('2')], 'step': 1.2345678901234567e+19, 'level': 2, 'count': 12, 'flag': True, 'mixed': 'abc', 'either': 'abc'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts = {'amount': Decimal('12345678901234567890.123'), 'amounts': [Decimal('1.50'), Decimal('2')], 'step': 1.2345678901234567e+19, 'level': 2, 'count': 12, 'flag': True, 'mixed': '5', 'either': '7'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text = {'amount': Decimal('12345678901234567890.123'), 'amounts': [Decimal('1.50'), Decimal('2')], 'step': 1.2345678901234567e+19, 'level': 2, 'count': 12, 'flag': True, 'mixed': '5', 'either': 'abc'}
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text alone = {'mixed': 'abc', 'either': 'abc'}
# parameter-kinds-literal msgspec.Struct
  warning UserWarning: msgspec checks multiple_of on float by a floating-point remainder, which rejects multiples of 0.01 that floats only approximate; Values.step is generated without this constraint.
  warning UserWarning: msgspec checks multiple_of on float by a floating-point remainder, which rejects multiples of 0.01 that floats only approximate; ValuesGetQueryStepParameter is generated without this constraint.
  warning UserWarning: msgspec checks multiple_of on float by a floating-point remainder, which rejects multiples of 0.01 that floats only approximate; ValuesGetResponse204XStepHeader is generated without this constraint.
  > GET https://api.example.com/values?amount=12345678901234567890.123
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('12345678901234567890.123') = None
  > GET https://api.example.com/values?amount=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amount Decimal('1.50') = None
  > GET https://api.example.com/values?amounts=12345678901234567890.123&amounts=1.50
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send amounts [Decimal('12345678901234567890.123'), Decimal('1.50')] = None
  > GET https://api.example.com/values?count=12
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send count 12 = None
  > GET https://api.example.com/values?flag=true
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send flag True = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed 5 = None
  > GET https://api.example.com/values?mixed=5
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send mixed '5' = None
  refuse amount Decimal('NaN') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amount Decimal('Infinity') ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amount') [operation_id='getValues', location=('query', 'amount'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse amounts [Decimal('1.50'), Decimal('-Infinity')] ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.amounts') [operation_id='getValues', location=('query', 'amounts'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  refuse count inf ! DecodeError: DecodeError(operation_id='getValues', reason='unencodable', location='query.count') [operation_id='getValues', location=('query', 'count'), body_bytes=b'', truncated=False, cause=ParameterEncodingError('A value must be a finite JSON number')] unencodable
  > GET https://api.example.com/values?step=0.25
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send step of 0.25 = None
  > GET https://api.example.com/values?ratio=2.2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send ratio of 2.2 = None
  > GET https://api.example.com/values?level=2
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  send level of 2 = None
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '12345678901234567890.123' = Decimal('12345678901234567890.123')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amount '1.50' = Decimal('1.50')
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Amounts '12345678901234567890.123,1.50' = [Decimal('12345678901234567890.123'), Decimal('1.50')]
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Step '12345678901234567890.12' = 1.2345678901234567e+19
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '2.2' = 2.2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Ratio '0.5' = 0.5
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Level '2' = 2
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Count '12' = 12
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Flag 'true' = True
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed '5' = '5'
  > GET https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate] b''
  read X-Mixed 'abc' = 'abc'
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with 5 = Values(amount=UNSET, amounts=UNSET, step=UNSET, level=UNSET, count=UNSET, flag=UNSET, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  send fields with '5' = Values(amount=UNSET, amounts=UNSET, step=UNSET, level=UNSET, count=UNSET, flag=UNSET, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read fields of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='abc', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='7')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text = Values(amount=Decimal('12345678901234567890.123'), amounts=[Decimal('1.50'), Decimal('2')], step=1.2345678901234567e+19, level=2, count=12, flag=True, mixed='5', either='abc')
  > POST https://api.example.com/values
    [host: api.example.com, accept-encoding: gzip, deflate, accept: application/x-www-form-urlencoded, multipart/form-data, content-type: application/x-www-form-urlencoded, content-length: 108] b'amount=12345678901234567890.123&amounts=1.50&amounts=2&step=0.25&level=2&count=12&flag=true&mixed=5&either=5'
  read parts of text alone = Values(amount=UNSET, amounts=UNSET, step=UNSET, level=UNSET, count=UNSET, flag=UNSET, mixed='abc', either='abc')
