---
url: 'https://adk.nht.io/api/@nhtio/adk/batteries/interfaces/JsonSchema.md'
description: >-
  The subset of JSON Schema that Chat-family tool/function `parameters` accept,
  as emitted by {@link
  ChatHelpersCommon.descriptionToChatCompletionsJsonSchema}. The index signature
  allows extra keywords to pass through to the wire.
---

# Interface: JsonSchema

Defined in: [batteries/llm/chat\_common/types.ts:69](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L69)

The subset of JSON Schema that Chat-family tool/function `parameters` accept, as emitted by
[ChatHelpersCommon.descriptionToChatCompletionsJsonSchema](../llm/ollama/interfaces/ChatHelpersCommon.md#property-descriptiontochatcompletionsjsonschema). The index signature allows
extra keywords to pass through to the wire.

## Indexable

```ts
[key: string]: unknown
```

Pass-through for any other JSON Schema keyword.

## Properties

| Property                                                           | Type                                                                                                                  | Description                                                               | Defined in                                                                                                                          |
| ------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|  `additionalProperties?` | `boolean` | `JsonSchema`                                                                                             | Whether (or what schema) additional, undeclared properties are permitted. | [batteries/llm/chat\_common/types.ts:87](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L87) |
|  `default?`                           | `unknown`                                                                                                             | Default value for the node.                                               | [batteries/llm/chat\_common/types.ts:77](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L77) |
|  `description?`                   | `string`                                                                                                              | Human-readable description of the schema node.                            | [batteries/llm/chat\_common/types.ts:73](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L73) |
|  `enum?`                                 | `unknown`\[]                                                                                                           | Permitted values for the node.                                            | [batteries/llm/chat\_common/types.ts:75](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L75) |
|  `examples?`                         | `unknown`\[]                                                                                                           | Example values for the node.                                              | [batteries/llm/chat\_common/types.ts:79](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L79) |
|  `items?`                               | `JsonSchema` | `JsonSchema`\[]                                                                                        | Element schema(s) for `array` types.                                      | [batteries/llm/chat\_common/types.ts:85](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L85) |
|  `properties?`                     | [`Record`](https://www.typescriptlang.org/docs/handbook/utility-types.html#recordkeys-type)<`string`, `JsonSchema`> | Property schemas keyed by property name (for `object` types).             | [batteries/llm/chat\_common/types.ts:81](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L81) |
|  `required?`                         | `string`\[]                                                                                                            | Names of required properties (for `object` types).                        | [batteries/llm/chat\_common/types.ts:83](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L83) |
|  `type?`                                 | `"string"` | `"number"` | `"boolean"` | `"object"` | `"array"` | `"integer"` | `"null"`                         | JSON Schema primitive/compound type.                                      | [batteries/llm/chat\_common/types.ts:71](https://github.com/NHTIO/ADK/blob/v1.20260609.0/src/batteries/llm/chat_common/types.ts#L71) |
