mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-28 18:26:54 +00:00
2322 lines
62 KiB
Plaintext
2322 lines
62 KiB
Plaintext
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
|
|
exports[`challenge schema > should not be changed without informing the mobile team 1`] = `
|
|
{
|
|
"keys": {
|
|
"assignments": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
21,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"items": [
|
|
{
|
|
"type": "string",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"type": "string",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"bilibiliIds": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
11,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"keys": {
|
|
"aid": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "number",
|
|
},
|
|
"bvid": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"cid": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"block": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"regex": "/^[a-z0-9-]+$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"blockId": {
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"options": {
|
|
"name": "valid mongo id",
|
|
},
|
|
"regex": "/^[0-9a-fA-F]{24}$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"blockLabel": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"full-stack-open",
|
|
"a1-professional-spanish",
|
|
"responsive-web-design-v9",
|
|
"javascript-v9",
|
|
"front-end-development-libraries-v9",
|
|
"python-v9",
|
|
"relational-databases-v9",
|
|
"back-end-development-and-apis-v9",
|
|
"full-stack-developer-v9",
|
|
"a1-professional-chinese",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "optional",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"superBlock",
|
|
],
|
|
},
|
|
"then": {
|
|
"allow": [
|
|
"workshop",
|
|
"lab",
|
|
"lecture",
|
|
"review",
|
|
"quiz",
|
|
"exam",
|
|
"warm-up",
|
|
"learn",
|
|
"practice",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"blockLayout": {
|
|
"allow": [
|
|
"challenge-list",
|
|
"challenge-grid",
|
|
"dialogue-grid",
|
|
"link",
|
|
"project-list",
|
|
"legacy-challenge-list",
|
|
"legacy-link",
|
|
"legacy-challenge-grid",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"certification": {
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"regex": "/^[a-z0-9-/]+$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"challengeFiles": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"contents": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"editableRegionBoundaries": {
|
|
"items": [
|
|
{
|
|
"type": "number",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"error": {
|
|
"allow": [
|
|
null,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ext": {
|
|
"type": "string",
|
|
},
|
|
"fileKey": {
|
|
"type": "string",
|
|
},
|
|
"history": {
|
|
"items": [
|
|
{
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"id": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
},
|
|
"seed": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"challengeOrder": {
|
|
"type": "number",
|
|
},
|
|
"challengeType": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 0,
|
|
},
|
|
"name": "min",
|
|
},
|
|
{
|
|
"args": {
|
|
"limit": 31,
|
|
},
|
|
"name": "max",
|
|
},
|
|
],
|
|
"type": "number",
|
|
},
|
|
"chapter": {
|
|
"type": "string",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"full-stack-open",
|
|
"a1-professional-spanish",
|
|
"responsive-web-design-v9",
|
|
"javascript-v9",
|
|
"front-end-development-libraries-v9",
|
|
"python-v9",
|
|
"relational-databases-v9",
|
|
"back-end-development-and-apis-v9",
|
|
"full-stack-developer-v9",
|
|
"a1-professional-chinese",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "optional",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"superBlock",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"dashedName": {
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"regex": "/^[a-z0-9-]+$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"demoType": {
|
|
"allow": [
|
|
"onClick",
|
|
"onLoad",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "string",
|
|
},
|
|
"description": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
7,
|
|
11,
|
|
19,
|
|
22,
|
|
31,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"disableLoopProtectPreview": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "boolean",
|
|
},
|
|
"disableLoopProtectTests": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "boolean",
|
|
},
|
|
"explanation": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
19,
|
|
22,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"fillInTheBlank": {
|
|
"keys": {
|
|
"blanks": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"answer": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"feedback": {
|
|
"allow": [
|
|
null,
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"inputType": {
|
|
"allow": [
|
|
"pinyin-tone",
|
|
"pinyin-to-hanzi",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "optional",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"sentence": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"forumTopicId": {
|
|
"type": "number",
|
|
},
|
|
"hasEditableBoundaries": {
|
|
"type": "boolean",
|
|
},
|
|
"helpCategory": {
|
|
"allow": [
|
|
"JavaScript",
|
|
"HTML-CSS",
|
|
"Python",
|
|
"Backend Development",
|
|
"C-Sharp",
|
|
"English",
|
|
"Odin",
|
|
"Euler",
|
|
"Rosetta",
|
|
"Chinese Curriculum",
|
|
"Spanish Curriculum",
|
|
"General",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"hooks": {
|
|
"keys": {
|
|
"afterAll": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"afterEach": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"beforeAll": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"beforeEach": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"id": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"options": {
|
|
"name": "valid mongo id",
|
|
},
|
|
"regex": "/^[0-9a-fA-F]{24}$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"inputType": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
22,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
"a1-professional-chinese",
|
|
"a2-professional-chinese",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"superBlock",
|
|
],
|
|
},
|
|
"then": {
|
|
"allow": [
|
|
"pinyin-tone",
|
|
"pinyin-to-hanzi",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "optional",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"instructions": {
|
|
"type": "string",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
10,
|
|
13,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"isExam": {
|
|
"type": "boolean",
|
|
},
|
|
"isLastChallengeInBlock": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "boolean",
|
|
},
|
|
"lang": {
|
|
"type": "string",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"a2-english-for-developers",
|
|
"b1-english-for-developers",
|
|
"a1-professional-spanish",
|
|
"a2-professional-spanish",
|
|
"a1-professional-chinese",
|
|
"a2-professional-chinese",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"superBlock",
|
|
],
|
|
},
|
|
"then": {
|
|
"allow": [
|
|
"en-US",
|
|
"es",
|
|
"zh-CN",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"module": {
|
|
"type": "string",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"full-stack-open",
|
|
"a1-professional-spanish",
|
|
"responsive-web-design-v9",
|
|
"javascript-v9",
|
|
"front-end-development-libraries-v9",
|
|
"python-v9",
|
|
"relational-databases-v9",
|
|
"back-end-development-and-apis-v9",
|
|
"full-stack-developer-v9",
|
|
"a1-professional-chinese",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "optional",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"superBlock",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"msTrophyId": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
18,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"nodules": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"contents": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"paragraph",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"type",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"files": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
"interactiveEditor",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"type",
|
|
],
|
|
},
|
|
"then": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"contents": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"contentsHtml": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"ext": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"name": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"type": {
|
|
"allow": [
|
|
"paragraph",
|
|
"interactiveEditor",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"notes": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"order": {
|
|
"type": "number",
|
|
},
|
|
"prerequisites": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
17,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"id": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"options": {
|
|
"name": "valid mongo id",
|
|
},
|
|
"regex": "/^[0-9a-fA-F]{24}$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"title": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"questions": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
11,
|
|
19,
|
|
15,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 0,
|
|
},
|
|
"name": "length",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"answers": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"answer": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"audioId": {
|
|
"allow": [
|
|
null,
|
|
],
|
|
"type": "string",
|
|
},
|
|
"feedback": {
|
|
"allow": [
|
|
null,
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"comparator": "answer",
|
|
},
|
|
"name": "unique",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"solution": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
{
|
|
"args": {
|
|
"limit": {
|
|
"ref": {
|
|
"path": [
|
|
"answers",
|
|
"length",
|
|
],
|
|
},
|
|
},
|
|
},
|
|
"name": "max",
|
|
},
|
|
],
|
|
"type": "number",
|
|
},
|
|
"text": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"quizzes": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
8,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"otherwise": {
|
|
"flags": {
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"questions": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"answer": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"audioData": {
|
|
"keys": {
|
|
"audio": {
|
|
"keys": {
|
|
"filename": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"finishTimestamp": {
|
|
"type": "number",
|
|
},
|
|
"startTimestamp": {
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"transcript": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"character": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"text": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"distractors": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"allow": [
|
|
{
|
|
"ref": {
|
|
"ancestor": 2,
|
|
"path": [
|
|
"answer",
|
|
],
|
|
},
|
|
},
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "forbidden",
|
|
},
|
|
"type": "any",
|
|
},
|
|
{
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 3,
|
|
},
|
|
"name": "length",
|
|
},
|
|
{
|
|
"name": "unique",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"text": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"preferences": {
|
|
"messages": {
|
|
"array.invalidLength": "Quiz must have exactly 10 or 20 questions.",
|
|
},
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"method": [Function],
|
|
},
|
|
"name": "custom",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"required": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"crossDomain": {
|
|
"type": "boolean",
|
|
},
|
|
"link": {
|
|
"type": "string",
|
|
},
|
|
"raw": {
|
|
"type": "boolean",
|
|
},
|
|
"src": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"saveSubmissionToDB": {
|
|
"type": "boolean",
|
|
},
|
|
"scene": {
|
|
"keys": {
|
|
"commands": {
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"background": {
|
|
"allow": [
|
|
"cafe.png",
|
|
"chaos.png",
|
|
"company1-boardroom.png",
|
|
"company1-breakroom.png",
|
|
"company1-center.png",
|
|
"company1-dining.png",
|
|
"company1-lydia-cubicle.png",
|
|
"company1-parking.png",
|
|
"company1-reception.png",
|
|
"company1-roof.png",
|
|
"company2-boardroom.png",
|
|
"company2-breakroom.png",
|
|
"company2-center.png",
|
|
"company2-dining.png",
|
|
"company2-lydia-cubicle.png",
|
|
"company2-parking.png",
|
|
"company2-reception.png",
|
|
"company2-roof.png",
|
|
"company3-boardmeeting.png",
|
|
"company3-breakroom.png",
|
|
"company3-center.png",
|
|
"company3-dining.png",
|
|
"company3-lydia-cubicle.png",
|
|
"company3-parking.png",
|
|
"company3-reception.png",
|
|
"company3-roof.png",
|
|
"cubicle.png",
|
|
"desk.png",
|
|
"hacker-space-cafe.png",
|
|
"hacker-space.png",
|
|
"interview-room1.png",
|
|
"interview-room2.png",
|
|
"interview-room3.png",
|
|
"living-room.png",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "string",
|
|
},
|
|
"character": {
|
|
"allow": [
|
|
"Alice",
|
|
"Amy",
|
|
"Anna",
|
|
"Bob",
|
|
"Brian",
|
|
"Candidate",
|
|
"David",
|
|
"Delivery Man",
|
|
"Expert",
|
|
"Jake",
|
|
"James",
|
|
"Jessica",
|
|
"Jim",
|
|
"Josh",
|
|
"Linda",
|
|
"Lisa",
|
|
"Maria",
|
|
"Mark",
|
|
"Riker",
|
|
"Sarah",
|
|
"Second Candidate",
|
|
"Sophie",
|
|
"Tom",
|
|
"Ángela",
|
|
"Camila",
|
|
"Carlos",
|
|
"Elena",
|
|
"Esteban",
|
|
"Joaquín",
|
|
"Julieta",
|
|
"Luis",
|
|
"Luna",
|
|
"Marisol",
|
|
"Mateo",
|
|
"Noelia",
|
|
"René",
|
|
"Sebastián",
|
|
"Diego",
|
|
"Valeria",
|
|
"Chen Na",
|
|
"Huang Jingyi",
|
|
"Li Hong",
|
|
"Li Ping",
|
|
"Lin Yating",
|
|
"Liu Ming",
|
|
"Wang Hua",
|
|
"Zhang Wei",
|
|
"Zhou Jia",
|
|
"Zhou Yongjie",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"dialogue": {
|
|
"keys": {
|
|
"align": {
|
|
"allow": [
|
|
"left",
|
|
"center",
|
|
"right",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "string",
|
|
},
|
|
"text": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"finishTime": {
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"opacity": {
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"position": {
|
|
"keys": {
|
|
"x": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"y": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"z": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"startTime": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"preferences": {
|
|
"messages": {
|
|
"array.unique": "Dialogues must not have overlapping times.",
|
|
},
|
|
},
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"comparator": [Function],
|
|
},
|
|
"name": "unique",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"setup": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"keys": {
|
|
"alwaysShowDialogue": {
|
|
"type": "boolean",
|
|
},
|
|
"audio": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"keys": {
|
|
"filename": {
|
|
"allow": [
|
|
"1.1-1.mp3",
|
|
"1.1-2.mp3",
|
|
"1.1-3.mp3",
|
|
"1.1-4.mp3",
|
|
"1.1-5.mp3",
|
|
"1.2-1.mp3",
|
|
"1.2-2.mp3",
|
|
"1.2-3.mp3",
|
|
"1.2-4.mp3",
|
|
"1.2-5.mp3",
|
|
"1.3-1.mp3",
|
|
"1.3-2.mp3",
|
|
"1.3-3.mp3",
|
|
"1.3-4.mp3",
|
|
"1.3-5.mp3",
|
|
"2.1-1.mp3",
|
|
"2.1-2.mp3",
|
|
"2.1-3.mp3",
|
|
"2.1-4.mp3",
|
|
"2.1-5.mp3",
|
|
"2.2-1.mp3",
|
|
"2.2-2.mp3",
|
|
"2.2-3.mp3",
|
|
"2.2-4.mp3",
|
|
"2.2-5.mp3",
|
|
"2.3-1.mp3",
|
|
"2.3-2.mp3",
|
|
"2.3-3.mp3",
|
|
"2.3-4.mp3",
|
|
"2.3-5.mp3",
|
|
"3.1-1.mp3",
|
|
"3.1-2.mp3",
|
|
"3.1-3.mp3",
|
|
"3.1-4.mp3",
|
|
"3.1-5.mp3",
|
|
"3.2-1.mp3",
|
|
"3.2-2.mp3",
|
|
"3.2-3.mp3",
|
|
"3.2-4.mp3",
|
|
"3.2-5.mp3",
|
|
"3.3-1.mp3",
|
|
"3.3-2.mp3",
|
|
"3.3-3.mp3",
|
|
"3.3-4.mp3",
|
|
"3.3-5.mp3",
|
|
"4.1-1.mp3",
|
|
"4.1-2.mp3",
|
|
"4.1-3.mp3",
|
|
"4.1-4.mp3",
|
|
"4.1-5.mp3",
|
|
"4.2-1.mp3",
|
|
"4.2-2.mp3",
|
|
"4.2-3.mp3",
|
|
"4.2-4.mp3",
|
|
"4.2-5.mp3",
|
|
"4.3-1.mp3",
|
|
"4.3-2.mp3",
|
|
"4.3-3.mp3",
|
|
"4.3-4.mp3",
|
|
"4.3-5.mp3",
|
|
"5.1-1.mp3",
|
|
"5.1-2.mp3",
|
|
"5.1-3.mp3",
|
|
"5.2-1.mp3",
|
|
"5.2-2.mp3",
|
|
"5.2-3.mp3",
|
|
"5.3-1.mp3",
|
|
"5.3-2.mp3",
|
|
"5.3-3.mp3",
|
|
"6.1-1.mp3",
|
|
"6.1-2.mp3",
|
|
"6.1-3.mp3",
|
|
"6.2-1.mp3",
|
|
"6.2-2.mp3",
|
|
"6.2-3.mp3",
|
|
"6.3-1.mp3",
|
|
"6.3-2.mp3",
|
|
"6.3-3.mp3",
|
|
"7.1-1.mp3",
|
|
"7.1-2.mp3",
|
|
"7.1-3.mp3",
|
|
"7.2-1.mp3",
|
|
"7.2-2.mp3",
|
|
"7.2-3.mp3",
|
|
"7.3-1.mp3",
|
|
"7.3-2.mp3",
|
|
"7.3-3.mp3",
|
|
"8.1-1.mp3",
|
|
"8.1-2.mp3",
|
|
"8.1-3.mp3",
|
|
"8.2-1.mp3",
|
|
"8.2-2.mp3",
|
|
"8.2-3.mp3",
|
|
"8.3-1.mp3",
|
|
"8.3-2.mp3",
|
|
"8.3-3.mp3",
|
|
"9.1-1.mp3",
|
|
"9.1-2.mp3",
|
|
"9.1-3.mp3",
|
|
"9.2-1.mp3",
|
|
"9.2-2.mp3",
|
|
"9.2-3.mp3",
|
|
"9.3-1.mp3",
|
|
"9.3-2.mp3",
|
|
"9.3-3.mp3",
|
|
"B1_1-1.mp3",
|
|
"B1_1-2.mp3",
|
|
"B1_1-3.mp3",
|
|
"B1_2-1.mp3",
|
|
"B1_2-2.mp3",
|
|
"B1_2-3.mp3",
|
|
"B1_3-1.mp3",
|
|
"B1_3-2.mp3",
|
|
"B1_3-3.mp3",
|
|
"B1_4-1.mp3",
|
|
"B1_4-2.mp3",
|
|
"B1_4-3.mp3",
|
|
"B1_4-4.mp3",
|
|
"B1_5-1.mp3",
|
|
"B1_5-2.mp3",
|
|
"B1_5-3.mp3",
|
|
"B1_6-1.mp3",
|
|
"B1_6-2.mp3",
|
|
"B1_6-3.mp3",
|
|
"B1_7-1.mp3",
|
|
"B1_7-2.mp3",
|
|
"B1_7-3.mp3",
|
|
"B1_8-1.mp3",
|
|
"B1_8-2.mp3",
|
|
"B1_8-3.mp3",
|
|
"B1_9-1.mp3",
|
|
"B1_9-2.mp3",
|
|
"B1_9-3.mp3",
|
|
"B1_10-1.mp3",
|
|
"B1_10-2.mp3",
|
|
"B1_10-3.mp3",
|
|
"B1_11-1.mp3",
|
|
"B1_11-2.mp3",
|
|
"B1_11-3.mp3",
|
|
"B1_12-1.mp3",
|
|
"B1_12-2.mp3",
|
|
"B1_12-3.mp3",
|
|
"B1_13-1.mp3",
|
|
"B1_13-2.mp3",
|
|
"B1_13-3.mp3",
|
|
"B1_14-1.mp3",
|
|
"B1_14-2.mp3",
|
|
"B1_14-3.mp3",
|
|
"B1_15-1.mp3",
|
|
"B1_15-2.mp3",
|
|
"B1_15-3.mp3",
|
|
"B1_16-1.mp3",
|
|
"B1_16-2.mp3",
|
|
"B1_16-3.mp3",
|
|
"B1_17-1.mp3",
|
|
"B1_17-2.mp3",
|
|
"B1_17-3.mp3",
|
|
"B1_18-1.mp3",
|
|
"B1_18-2.mp3",
|
|
"B1_18-3.mp3",
|
|
"B1_19-1.mp3",
|
|
"B1_19-2.mp3",
|
|
"B1_19-3.mp3",
|
|
"B1_20-1.mp3",
|
|
"B1_20-2.mp3",
|
|
"B1_20-3.mp3",
|
|
"B1_21-1.mp3",
|
|
"B1_21-2.mp3",
|
|
"B1_21-3.mp3",
|
|
"B1_22-1.mp3",
|
|
"B1_22-2.mp3",
|
|
"B1_22-3.mp3",
|
|
"B1_23-1.mp3",
|
|
"B1_23-2.mp3",
|
|
"B1_23-3.mp3",
|
|
"B1_24-1.mp3",
|
|
"B1_24-2.mp3",
|
|
"B1_24-3.mp3",
|
|
"ES_A1_spanish_greetings_in_the_morning.mp3",
|
|
"ES_A1_spanish_greetings_in_the_afternoon.mp3",
|
|
"ES_A1_spanish_greetings_in_the_evening.mp3",
|
|
"ES_A1_spanish_greetings_camila_practice.mp3",
|
|
"ES_A1_spanish_meet_luna.mp3",
|
|
"ES_A1_spanish_meet_mateo.mp3",
|
|
"ES_A1_spanish_meet_julieta.mp3",
|
|
"ES_A1_spanish_meet_mateo_practice.mp3",
|
|
"ES_A1_spanish_introducing_yourself_vocabulary.mp3",
|
|
"ES_A1_spanish_meet_angela_and_basti.mp3",
|
|
"ES_A1_spanish_meet_camila_and_mateo.mp3",
|
|
"ES_A1_first_questions_numbers.mp3",
|
|
"ES_A1_first_questions_warmup.mp3",
|
|
"ES_A1_alphabet.mp3",
|
|
"ES_A1_alphabet_practice.mp3",
|
|
"ES_A1_andescommerce_company_profile.mp3",
|
|
"ES_A1_basic_personal_details_numbers_10_29.mp3",
|
|
"ES_A1_basic_personal_details_numbers_mixed.mp3",
|
|
"ES_A1_basti_asks_luna_about_carlos_dialogue.mp3",
|
|
"ES_A1_basti_personal_details.mp3",
|
|
"ES_A1_diego_mini_biography.mp3",
|
|
"ES_A1_esteban_asks_angela_about_luis_dialogue.mp3",
|
|
"ES_A1_camila_asks_basti_about_marisol_dialogue.mp3",
|
|
"ES_A1_carlos_workplace_profile.mp3",
|
|
"ES_A1_company_departments_and_employees.mp3",
|
|
"ES_A1_company_details_fill_in.mp3",
|
|
"ES_A1_company_facts_short.mp3",
|
|
"ES_A1_describing_a_company_basics_vocabulary.mp3",
|
|
"ES_A1_describing_company_and_people_numbers_practice.mp3",
|
|
"ES_A1_elena_asks_esteban_about_diego_dialogue.mp3",
|
|
"ES_A1_elena_talks_about_her_company.mp3",
|
|
"ES_A1_esteban_personal_records_dialogue_with_angela.mp3",
|
|
"ES_A1_describing_company_and_people_numbers_21_100.mp3",
|
|
"ES_A1_joaquin_workplace_profile.mp3",
|
|
"ES_A1_julieta_personal_details.mp3",
|
|
"ES_A1_luis_workplace_profile.mp3",
|
|
"ES_A1_luna_personal_data_form.mp3",
|
|
"ES_A1_marisol_mini_biography.mp3",
|
|
"ES_A1_mateo_asks_julieta_about_valeria_dialogue.mp3",
|
|
"ES_A1_mateo_camila_phone_number_dialogue.mp3",
|
|
"ES_A1_mateo_email_dialogue_with_camila.mp3",
|
|
"ES_A1_noelia_mini_biography.mp3",
|
|
"ES_A1_personal_details_just_questions.mp3",
|
|
"ES_A1_questions_about_joaquin_workplace_profile.mp3",
|
|
"ES_A1_questions_about_noelia_mini_biography.mp3",
|
|
"ES_A1_sebastian_asks_elena_about_her_company.mp3",
|
|
"ES_A1_spanish_fundamentals_numbers_0_9.mp3",
|
|
"ES_A1_spanish_fundamentals_numbers_mixed.mp3",
|
|
"ES_A1_valeria_mini_biography.mp3",
|
|
"ES_A1_vowels.mp3",
|
|
"ES_A1_vowels_aiu.mp3",
|
|
"ES_A1_vowels_oiu.mp3",
|
|
"ES_A1_vowels_uae.mp3",
|
|
"ES_A1_warm_up_describing_people_at_work.mp3",
|
|
"ES_A1_what_each_department_does.mp3",
|
|
"ES_A1_what_the_company_does.mp3",
|
|
"ZH_A1_greetings_and_introductions_wanghua.mp3",
|
|
"ZH_A1_greetings_and_introductions_liuming.mp3",
|
|
"ZH_A1_greetings_and_introductions_chenna.mp3",
|
|
"ZH_A1_greetings_and_introductions_dialogue.mp3",
|
|
"ZH_A1_greetings_and_introductions_warm_up.mp3",
|
|
"ZH_A1_chinese_fundamentals_hello_world.mp3",
|
|
"ZH_A1_pinyin_single_finals.mp3",
|
|
"ZH_A1_pinyin_initials.mp3",
|
|
"ZH_A1_pinyin_compound_finals.mp3",
|
|
"ZH_A1_pinyin_nasal_finals.mp3",
|
|
"ZH_A1_pinyin_special_spelling_rules.mp3",
|
|
"ZH_A1_pinyin_practice.mp3",
|
|
"ZH_A1_numbers_and_personal_information_numbers_0_10.mp3",
|
|
"ZH_A1_numbers_and_personal_information_numbers_11_19.mp3",
|
|
"ZH_A1_numbers_and_personal_information_numbers_20_99.mp3",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"finishTimestamp": {
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"startTime": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"startTimestamp": {
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"background": {
|
|
"allow": [
|
|
"cafe.png",
|
|
"chaos.png",
|
|
"company1-boardroom.png",
|
|
"company1-breakroom.png",
|
|
"company1-center.png",
|
|
"company1-dining.png",
|
|
"company1-lydia-cubicle.png",
|
|
"company1-parking.png",
|
|
"company1-reception.png",
|
|
"company1-roof.png",
|
|
"company2-boardroom.png",
|
|
"company2-breakroom.png",
|
|
"company2-center.png",
|
|
"company2-dining.png",
|
|
"company2-lydia-cubicle.png",
|
|
"company2-parking.png",
|
|
"company2-reception.png",
|
|
"company2-roof.png",
|
|
"company3-boardmeeting.png",
|
|
"company3-breakroom.png",
|
|
"company3-center.png",
|
|
"company3-dining.png",
|
|
"company3-lydia-cubicle.png",
|
|
"company3-parking.png",
|
|
"company3-reception.png",
|
|
"company3-roof.png",
|
|
"cubicle.png",
|
|
"desk.png",
|
|
"hacker-space-cafe.png",
|
|
"hacker-space.png",
|
|
"interview-room1.png",
|
|
"interview-room2.png",
|
|
"interview-room3.png",
|
|
"living-room.png",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"characters": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"character": {
|
|
"allow": [
|
|
"Alice",
|
|
"Amy",
|
|
"Anna",
|
|
"Bob",
|
|
"Brian",
|
|
"Candidate",
|
|
"David",
|
|
"Delivery Man",
|
|
"Expert",
|
|
"Jake",
|
|
"James",
|
|
"Jessica",
|
|
"Jim",
|
|
"Josh",
|
|
"Linda",
|
|
"Lisa",
|
|
"Maria",
|
|
"Mark",
|
|
"Riker",
|
|
"Sarah",
|
|
"Second Candidate",
|
|
"Sophie",
|
|
"Tom",
|
|
"Ángela",
|
|
"Camila",
|
|
"Carlos",
|
|
"Elena",
|
|
"Esteban",
|
|
"Joaquín",
|
|
"Julieta",
|
|
"Luis",
|
|
"Luna",
|
|
"Marisol",
|
|
"Mateo",
|
|
"Noelia",
|
|
"René",
|
|
"Sebastián",
|
|
"Diego",
|
|
"Valeria",
|
|
"Chen Na",
|
|
"Huang Jingyi",
|
|
"Li Hong",
|
|
"Li Ping",
|
|
"Lin Yating",
|
|
"Liu Ming",
|
|
"Wang Hua",
|
|
"Zhang Wei",
|
|
"Zhou Jia",
|
|
"Zhou Yongjie",
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"opacity": {
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"position": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"keys": {
|
|
"x": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"y": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
"z": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"preferences": {
|
|
"convert": false,
|
|
},
|
|
"type": "number",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
"solutions": {
|
|
"items": [
|
|
{
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"contents": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"editableRegionBoundaries": {
|
|
"items": [
|
|
{
|
|
"type": "number",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"error": {
|
|
"allow": [
|
|
null,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ext": {
|
|
"type": "string",
|
|
},
|
|
"fileKey": {
|
|
"type": "string",
|
|
},
|
|
"history": {
|
|
"items": [
|
|
{
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"id": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"name": {
|
|
"type": "string",
|
|
},
|
|
"path": {
|
|
"type": "string",
|
|
},
|
|
"seed": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"limit": 1,
|
|
},
|
|
"name": "min",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"sourceLocation": {
|
|
"type": "string",
|
|
},
|
|
"suborder": {
|
|
"type": "number",
|
|
},
|
|
"superBlock": {
|
|
"rules": [
|
|
{
|
|
"args": {
|
|
"regex": "/^[a-z0-9-/]+$/",
|
|
},
|
|
"name": "pattern",
|
|
},
|
|
],
|
|
"type": "string",
|
|
},
|
|
"superOrder": {
|
|
"type": "number",
|
|
},
|
|
"template": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"tests": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"items": [
|
|
{
|
|
"keys": {
|
|
"id": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
"testString": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"text": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
{
|
|
"keys": {
|
|
"id": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"title": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
],
|
|
"type": "array",
|
|
},
|
|
"title": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
"transcript": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
24,
|
|
11,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"translationPending": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "boolean",
|
|
},
|
|
"url": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
12,
|
|
13,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"usesMultifileEditor": {
|
|
"type": "boolean",
|
|
},
|
|
"videoId": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
11,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"flags": {
|
|
"presence": "required",
|
|
},
|
|
"type": "string",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"videoLocaleIds": {
|
|
"type": "any",
|
|
"whens": [
|
|
{
|
|
"is": {
|
|
"allow": [
|
|
{
|
|
"override": true,
|
|
},
|
|
11,
|
|
],
|
|
"flags": {
|
|
"only": true,
|
|
"presence": "required",
|
|
},
|
|
"type": "any",
|
|
},
|
|
"ref": {
|
|
"path": [
|
|
"challengeType",
|
|
],
|
|
},
|
|
"then": {
|
|
"keys": {
|
|
"espanol": {
|
|
"type": "string",
|
|
},
|
|
"italian": {
|
|
"type": "string",
|
|
},
|
|
"portuguese": {
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
},
|
|
},
|
|
],
|
|
},
|
|
"videoUrl": {
|
|
"allow": [
|
|
"",
|
|
],
|
|
"type": "string",
|
|
},
|
|
},
|
|
"type": "object",
|
|
}
|
|
`;
|