# The JSON files

As covered in the [Property Panel](/squirrel-addon-documentation/building-an-addon/property-panel.md) section there are three JSON files which are needed for the addon to work.  They handle your state definition, communication between the addon and Squirrel and how to display the property panel in the designer.

<details>

<summary>defaultState.json</summary>

The default state is a JSON representation of the data model you want Squirrel to use when it saves a project with your addon in, and when it adds your addon to the Squirrel canvas for the first time.

This JSON object is available inside your addon via the getter [getCopyOfState()](/squirrel-addon-documentation/squirrel-helper-library/angular/methods/getcopyofstate.md) this returns a copy of the state object.  To set properties of state you need to send the data to Squirrel using the [sendToSquirrel()](/squirrel-addon-documentation/squirrel-helper-library/javascript/methods/sendtosquirrel.md) method.  If the property you are updating has been bound to a spreadsheet cell in Squirrel, the data you pass will be inserted into the relevant cell(s).

</details>

<details>

<summary>messageBindings.json</summary>

This file lets Squirrel know whether the property in defaultState in the addon is to be used to:

**send** data from the addon to Squirrel, &#x20;

**receive** data from Squirrel into the addon or

**both** send and receive data

</details>

<details>

<summary>propertyPanel.json</summary>

This file contains a JSON representation of the property panel.  You create the panel using a collection of pre-defined [elements ](/squirrel-addon-documentation/building-an-addon/property-panel/property-panel-elements.md)available.

</details>

## Walkthrough video

{% embed url="<https://www.loom.com/share/f3fa5ad9c1cd4e67ac66cb9d531efd2f>" %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://learn.squirrel365.io/squirrel-addon-documentation/squirrel-helper-library/angular/getting-started/the-json-files.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
