/// <summary>
            /// Initializes the current instance from a JSON document using the specified JSON reader.
            /// </summary>
            /// <param name="data">The UTF-8 encoded JSON document being deserialized.</param>
            /// <param name="reader">The JSON reader used during deserialization.</param>
            internal void InitFromJson(byte[] data, ref Utf8JsonReader reader)
            {
                Debug.Assert(reader.TokenType == JsonTokenType.StartObject);

                string propertyName = null;

                while (reader.Read())
                {
                    switch (reader.TokenType)
                    {
                    case JsonTokenType.PropertyName:
                    {
                        propertyName = mPool.GetStringFromUtf8(reader.ValueSpan);
                        break;
                    }

                    case JsonTokenType.StartObject:
                    {
                        switch (propertyName)
                        {
                        case "index":
                            Index = mPool.GetBulkResponseItemIndex();
                            Index.InitFromJson(data, ref reader);
                            break;

                        default:
                            // unexpected property, skip all children!
                            reader.Skip();
                            break;
                        }

                        break;
                    }

                    case JsonTokenType.EndObject:
                    {
                        return;
                    }

                    default:
                    {
                        // unexpected token, skip!
                        reader.Skip();
                        break;
                    }
                    }
                }

                throw new ArgumentException("The reader did not deliver a closing 'EndObject'.");
            }
            public Item_Index Index;             // JSON field: 'index'

            /// <summary>
            /// Resets the item for re-use.
            /// </summary>
            public void Reset()
            {
                mPool.Return(Index);
                Index = null;
            }