## 4 Proposed Sandbox Environment Architecture
### Programmable Psychological Test Structure  
It is advisable to store the test in the form of a packed ZIP archive (Figure 1) [44]. This ensures the reliability and guaranteed delivery of the entire package of sources required for testing. The index.json file must be present at the root of the archive, which describes the structure and settings of the test. It also announces the entire list of resource files that can be used in a psychological test. Resource files can be located in the archive in any way convenient for the developer. The index.json file for each resource file specifies a path relative to the root of the archive.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline  & **Mobile Device** & **Legacy PC** & **Modern PC** & **All Devices** \\ \hline Sample Size & 1000 & 1000 & 1000 & 3000 \\ Mean & 9.596 & 12.217 & 10.251 & 10.688 \\ First Quartile & 4.963 & 6.232 & 5.607 & 5.512 \\ Median & 6.633 & 8.043 & 7.150 & 7.283 \\ Third Quartile & 9.211 & 10.974 & 9.441 & 9.939 \\ Standard Deviation & 11.718 & 15.456 & 12.265 & 13.296 \\ \hline \hline \end{tabular}
\end{table}
Table 2: Estimation of reaction time when answering a question PQ106-01.  
\begin{table}
\begin{tabular}{c c c c c} \hline \hline  & **Mobile Device** & **Legacy PC** & **Modern PC** & **All Devices** \\ \hline Sample Size & 1000 & 1000 & 1000 & 3000 \\ Mean & 8.115 & 7.732 & 6.877 & 7.575 \\ First Quartile & 3.414 & 3.899 & 3.423 & 3.540 \\ Median & 4.680 & 4.893 & 4.531 & 4.687 \\ Third Quartile & 7.387 & 6.644 & 6.283 & 6.730 \\ Standard Deviation & 11.670 & 12.008 & 10.480 & 11.416 \\ \hline \hline \end{tabular}
\end{table}
Table 3: Estimating the response time when answering question PQ610.  
The description of the test is proposed to be formed from four sections (Figure 2):
3. Blocks are one or more test blocks, each of which is initialized by tools of the platform. Within the block, it is declared which HTML file will be used as a basis, and which JS and CSS files must be injected for the block to work. In addition, each block has a number of its own settings, such as an interrupt condition or a time limit.
4. Scales are a list of scales, the values of which will be calculated during testing. All the logic for calculating values is implemented in the test itself, and only the names of the scales are declared in index.json.
5. Resources are a list of resource files that can be requested during the test. For each file, the path to the file in the archive, the file type (Image/HTML/JS/CSS) and its alias, which will be accessed, are indicated.
6. Settings are settings for the entire test (for example, limitation on device requirements).  
Currently, it is assumed that resource files can be of four types: Image, HTML, JS, or CSS. In the future, it is possible to expand this list, for example, in the direction of supporting data or audio files. In the current solution, it is assumed that data of various types can be pre-converted into JS files in order to be able to programmatically access them.  
The following extensions are supported for Image files: gif, jpg, jpeg, tiff, png.  
The following extensions are supported for HTML files: html, htm, html5, xhtml.  
The following extensions are supported for CSS files: css, css3.  
Only one extension is supported for JS files: js.