@plasius/learning 0.2.1 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -1
- package/dist/index.cjs +438 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +11 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +436 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -367,6 +367,16 @@ declare const JUNIOR_CODER_MISSION_STAGE_ORDER_V1: readonly ["learn", "predict",
|
|
|
367
367
|
declare function validateMissionAuthoringBundle(bundle: MissionAuthoringBundleV1, module: LearningModuleVersionV1): MissionAuthoringValidationIssueV1[];
|
|
368
368
|
/** Fail fast for CI and immutable authoring registration. */
|
|
369
369
|
declare function assertValidMissionAuthoringBundle(bundle: MissionAuthoringBundleV1, module: LearningModuleVersionV1): void;
|
|
370
|
+
/**
|
|
371
|
+
* Original visual-programming mission for Robot Maze Dash. Learner content
|
|
372
|
+
* contains no protected route, answer key or hidden assessment expectation.
|
|
373
|
+
*/
|
|
374
|
+
declare const ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
375
|
+
/**
|
|
376
|
+
* Original first mission for Skywing Sprint. Learner content documents the
|
|
377
|
+
* flight controls without exposing protected numeric targets or source answers.
|
|
378
|
+
*/
|
|
379
|
+
declare const SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
370
380
|
/** Original first-mission exemplar; no protected content appears in learner data. */
|
|
371
381
|
declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
372
382
|
|
|
@@ -375,4 +385,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
375
385
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
376
386
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
377
387
|
|
|
378
|
-
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, type PublishedStaticProjectSnapshotV1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
|
388
|
+
export { type AssessmentCheckResultV1, type AssessmentCriterionV1, type AssessmentDimensionV1, type AssessmentResultV1, type AssessmentRubricV1, type AttemptEvidenceV1, type BadgeDefinitionV1, type CommercialStateV1, type CourseMaterialAudienceV1, type CourseMaterialKindV1, type CourseMaterialV1, type CourseMaterialsManifestV1, type FacilitatorMissionAuthoringV1, type GuardianAiConsentV1, type HardwareItemV1, type HardwareModeV1, type HardwareRequirementManifestV1, type HardwareVerificationStatusV1, JUNIOR_CODER_MISSION_STAGE_ORDER_V1, JUNIOR_CODER_MODULE_PRICE_V1_1, JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1, JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1, type LearnerMissionAuthoringV1, type LearningGoalV1, type LearningModuleVersionV1, type LearningPathVersionV1, type LearningValidationIssueV1, MISSION_AUTHORING_CONTRACT_VERSION_V1, type MissionAccessibilityAlternativeV1, type MissionArtifactKindV1, type MissionArtifactReferenceV1, type MissionAuthoringBundleV1, type MissionAuthoringGoalV1, type MissionAuthoringValidationIssueV1, type MissionEvidenceKindV1, type MissionEvidenceRequirementV1, type MissionEvidenceRetentionV1, type MissionInteractionModeV1, type MissionInteractionRequirementV1, type MissionReadinessCheckV1, type MissionRewardBindingV1, type MissionSideAdventureV1, type MissionStageCardV1, type MissionStageKindV1, type MissionV1, type ModuleAgentDefinitionV1, type ModuleAgentFeedbackV1, type ModuleAgentRoleV1, type ModuleCategoryV1, type ModuleEntitlementV1, type ModulePricingV1, type ModuleReferencePriceV1, type PublishedStaticProjectSnapshotV1, ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1, ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1, SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1, type ScoreBandV1, assertValidLearningPath, assertValidMissionAuthoringBundle, calculateAssessment, validateAssessmentRubric, validateLearningPath, validateMissionAuthoringBundle };
|
package/dist/index.js
CHANGED
|
@@ -1088,6 +1088,440 @@ function assertValidMissionAuthoringBundle(bundle, module2) {
|
|
|
1088
1088
|
throw new Error(`Invalid mission authoring bundle:
|
|
1089
1089
|
${summary}`);
|
|
1090
1090
|
}
|
|
1091
|
+
var ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1 = {
|
|
1092
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1093
|
+
moduleId: "junior-coder.robot-maze-dash",
|
|
1094
|
+
moduleVersion: "1.1.0",
|
|
1095
|
+
missionId: "robot-maze-dash-mission-1",
|
|
1096
|
+
learner: {
|
|
1097
|
+
estimatedMinutes: 20,
|
|
1098
|
+
stages: [
|
|
1099
|
+
{
|
|
1100
|
+
kind: "learn",
|
|
1101
|
+
instruction: "Meet the move, turn-left and turn-right action blocks and read what each command does.",
|
|
1102
|
+
artifactIds: ["robot-maze-dash-m1-art"]
|
|
1103
|
+
},
|
|
1104
|
+
{
|
|
1105
|
+
kind: "predict",
|
|
1106
|
+
instruction: "Predict where the robot will stop after it follows the blocks from top to bottom.",
|
|
1107
|
+
artifactIds: []
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
kind: "build",
|
|
1111
|
+
instruction: "Arrange the action blocks so the rescue robot can reach the beacon.",
|
|
1112
|
+
artifactIds: ["robot-maze-dash-m1-program"]
|
|
1113
|
+
},
|
|
1114
|
+
{
|
|
1115
|
+
kind: "run",
|
|
1116
|
+
instruction: "Use the Run action button to watch the robot follow your visual program.",
|
|
1117
|
+
artifactIds: ["robot-maze-dash-m1-program"]
|
|
1118
|
+
},
|
|
1119
|
+
{
|
|
1120
|
+
kind: "assess",
|
|
1121
|
+
instruction: "Run the visible and protected deterministic mission checks.",
|
|
1122
|
+
artifactIds: []
|
|
1123
|
+
},
|
|
1124
|
+
{
|
|
1125
|
+
kind: "inspect",
|
|
1126
|
+
instruction: "Compare the highlighted block with the first goal that did not pass.",
|
|
1127
|
+
artifactIds: []
|
|
1128
|
+
},
|
|
1129
|
+
{
|
|
1130
|
+
kind: "fix",
|
|
1131
|
+
instruction: "Move, add or remove one action block, then run the mission again.",
|
|
1132
|
+
artifactIds: ["robot-maze-dash-m1-program"]
|
|
1133
|
+
},
|
|
1134
|
+
{
|
|
1135
|
+
kind: "explain",
|
|
1136
|
+
instruction: "Explain how the order of your blocks changed the robot path.",
|
|
1137
|
+
artifactIds: []
|
|
1138
|
+
},
|
|
1139
|
+
{
|
|
1140
|
+
kind: "reward",
|
|
1141
|
+
instruction: "Collect the evidence-bound badge when the score and safety check pass.",
|
|
1142
|
+
artifactIds: []
|
|
1143
|
+
}
|
|
1144
|
+
],
|
|
1145
|
+
readinessChecks: [
|
|
1146
|
+
{
|
|
1147
|
+
id: "robot-maze-dash-m1-read-order",
|
|
1148
|
+
prompt: "Point to the first action the robot will follow.",
|
|
1149
|
+
scored: false
|
|
1150
|
+
}
|
|
1151
|
+
],
|
|
1152
|
+
artifacts: [
|
|
1153
|
+
{
|
|
1154
|
+
id: "robot-maze-dash-m1-program",
|
|
1155
|
+
kind: "starter-code",
|
|
1156
|
+
audience: "learner",
|
|
1157
|
+
solutionBearing: false
|
|
1158
|
+
},
|
|
1159
|
+
{
|
|
1160
|
+
id: "robot-maze-dash-m1-art",
|
|
1161
|
+
kind: "starter-assets",
|
|
1162
|
+
audience: "learner",
|
|
1163
|
+
solutionBearing: false
|
|
1164
|
+
},
|
|
1165
|
+
{
|
|
1166
|
+
id: "robot-maze-dash-m1-printable",
|
|
1167
|
+
kind: "printable",
|
|
1168
|
+
audience: "learner",
|
|
1169
|
+
solutionBearing: false
|
|
1170
|
+
}
|
|
1171
|
+
],
|
|
1172
|
+
goals: [
|
|
1173
|
+
{
|
|
1174
|
+
id: "robot-maze-dash-m1-starts",
|
|
1175
|
+
statement: "The visual program is structurally valid and starts.",
|
|
1176
|
+
visibility: "visible",
|
|
1177
|
+
criterionIds: ["robot-maze-dash-build"],
|
|
1178
|
+
completionRequired: true,
|
|
1179
|
+
aiRequired: false
|
|
1180
|
+
},
|
|
1181
|
+
{
|
|
1182
|
+
id: "robot-maze-dash-m1-reaches-beacon",
|
|
1183
|
+
statement: "The robot follows the action order and reaches the rescue beacon.",
|
|
1184
|
+
visibility: "visible",
|
|
1185
|
+
criterionIds: [
|
|
1186
|
+
"robot-maze-dash-goal-one",
|
|
1187
|
+
"robot-maze-dash-goal-two"
|
|
1188
|
+
],
|
|
1189
|
+
completionRequired: true,
|
|
1190
|
+
aiRequired: false
|
|
1191
|
+
},
|
|
1192
|
+
{
|
|
1193
|
+
id: "robot-maze-dash-m1-safe-preview",
|
|
1194
|
+
statement: "The robot stays inside the private maze simulator boundary.",
|
|
1195
|
+
visibility: "visible",
|
|
1196
|
+
criterionIds: ["robot-maze-dash-safety"],
|
|
1197
|
+
completionRequired: true,
|
|
1198
|
+
aiRequired: false
|
|
1199
|
+
}
|
|
1200
|
+
],
|
|
1201
|
+
interactions: [
|
|
1202
|
+
{
|
|
1203
|
+
id: "robot-maze-dash-m1-reorder-blocks",
|
|
1204
|
+
description: "Change the order of visual action blocks.",
|
|
1205
|
+
primaryMode: "drag",
|
|
1206
|
+
alternativeIds: ["robot-maze-dash-m1-button-reorder"]
|
|
1207
|
+
},
|
|
1208
|
+
{
|
|
1209
|
+
id: "robot-maze-dash-m1-run-control",
|
|
1210
|
+
description: "Start the private maze simulation.",
|
|
1211
|
+
primaryMode: "pointer",
|
|
1212
|
+
alternativeIds: ["robot-maze-dash-m1-keyboard-run"]
|
|
1213
|
+
}
|
|
1214
|
+
],
|
|
1215
|
+
accessibilityAlternatives: [
|
|
1216
|
+
{
|
|
1217
|
+
id: "robot-maze-dash-m1-button-reorder",
|
|
1218
|
+
modes: ["keyboard", "pointer"],
|
|
1219
|
+
equivalentOutcome: true,
|
|
1220
|
+
description: "Use labelled Move up and Move down buttons instead of dragging a block."
|
|
1221
|
+
},
|
|
1222
|
+
{
|
|
1223
|
+
id: "robot-maze-dash-m1-keyboard-run",
|
|
1224
|
+
modes: ["keyboard"],
|
|
1225
|
+
equivalentOutcome: true,
|
|
1226
|
+
description: "Start the same simulation by pressing Enter or Space on the Run button."
|
|
1227
|
+
}
|
|
1228
|
+
],
|
|
1229
|
+
evidenceRequirements: [
|
|
1230
|
+
{
|
|
1231
|
+
id: "robot-maze-dash-m1-assessment",
|
|
1232
|
+
goalIds: [
|
|
1233
|
+
"robot-maze-dash-m1-starts",
|
|
1234
|
+
"robot-maze-dash-m1-reaches-beacon",
|
|
1235
|
+
"robot-maze-dash-m1-safe-preview"
|
|
1236
|
+
],
|
|
1237
|
+
kind: "assessment-result",
|
|
1238
|
+
retention: "entitlement",
|
|
1239
|
+
containsPersonalData: false
|
|
1240
|
+
},
|
|
1241
|
+
{
|
|
1242
|
+
id: "robot-maze-dash-m1-explanation",
|
|
1243
|
+
goalIds: ["robot-maze-dash-m1-reaches-beacon"],
|
|
1244
|
+
kind: "learner-explanation",
|
|
1245
|
+
retention: "attempt",
|
|
1246
|
+
containsPersonalData: false
|
|
1247
|
+
}
|
|
1248
|
+
],
|
|
1249
|
+
sideAdventures: [
|
|
1250
|
+
{
|
|
1251
|
+
id: "robot-maze-dash-m1-remix",
|
|
1252
|
+
prompt: "Invent a different safe route and describe which action block must change first.",
|
|
1253
|
+
completionRequired: false
|
|
1254
|
+
}
|
|
1255
|
+
],
|
|
1256
|
+
rewardBindings: [
|
|
1257
|
+
{
|
|
1258
|
+
id: "robot-maze-dash-m1-badge",
|
|
1259
|
+
badgeId: "robot-maze-dash-mission-complete",
|
|
1260
|
+
goalIds: [
|
|
1261
|
+
"robot-maze-dash-m1-starts",
|
|
1262
|
+
"robot-maze-dash-m1-reaches-beacon",
|
|
1263
|
+
"robot-maze-dash-m1-safe-preview"
|
|
1264
|
+
],
|
|
1265
|
+
deterministic: true,
|
|
1266
|
+
random: false,
|
|
1267
|
+
tokenConvertible: false
|
|
1268
|
+
}
|
|
1269
|
+
]
|
|
1270
|
+
},
|
|
1271
|
+
facilitator: {
|
|
1272
|
+
artifacts: [
|
|
1273
|
+
{
|
|
1274
|
+
id: "robot-maze-dash-m1-answer-key",
|
|
1275
|
+
kind: "answer-key",
|
|
1276
|
+
audience: "facilitator",
|
|
1277
|
+
solutionBearing: true
|
|
1278
|
+
},
|
|
1279
|
+
{
|
|
1280
|
+
id: "robot-maze-dash-m1-protected-tests",
|
|
1281
|
+
kind: "protected-test",
|
|
1282
|
+
audience: "facilitator",
|
|
1283
|
+
solutionBearing: true
|
|
1284
|
+
}
|
|
1285
|
+
],
|
|
1286
|
+
protectedGoals: [
|
|
1287
|
+
{
|
|
1288
|
+
id: "robot-maze-dash-m1-protected-bounds",
|
|
1289
|
+
statement: "The interpreter stops safely at walls, bounds and its action limit.",
|
|
1290
|
+
visibility: "protected",
|
|
1291
|
+
criterionIds: [
|
|
1292
|
+
"robot-maze-dash-edge-one",
|
|
1293
|
+
"robot-maze-dash-edge-two"
|
|
1294
|
+
],
|
|
1295
|
+
completionRequired: false,
|
|
1296
|
+
aiRequired: false
|
|
1297
|
+
}
|
|
1298
|
+
],
|
|
1299
|
+
prompts: [
|
|
1300
|
+
"Ask the learner to point to the first action block before suggesting a change.",
|
|
1301
|
+
"Use the command reference and visible goal; never reveal the protected route or expected block list."
|
|
1302
|
+
]
|
|
1303
|
+
}
|
|
1304
|
+
};
|
|
1305
|
+
var SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1 = {
|
|
1306
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1307
|
+
moduleId: "junior-coder.skywing-sprint",
|
|
1308
|
+
moduleVersion: "1.1.0",
|
|
1309
|
+
missionId: "skywing-sprint-mission-1",
|
|
1310
|
+
learner: {
|
|
1311
|
+
estimatedMinutes: 20,
|
|
1312
|
+
stages: [
|
|
1313
|
+
{
|
|
1314
|
+
kind: "learn",
|
|
1315
|
+
instruction: "Read how lift, gravity and gate-gap functions change Skywing's flight.",
|
|
1316
|
+
artifactIds: ["skywing-sprint-m1-art"]
|
|
1317
|
+
},
|
|
1318
|
+
{
|
|
1319
|
+
kind: "predict",
|
|
1320
|
+
instruction: "Predict whether Skywing will rise or fall after one lift pulse.",
|
|
1321
|
+
artifactIds: []
|
|
1322
|
+
},
|
|
1323
|
+
{
|
|
1324
|
+
kind: "build",
|
|
1325
|
+
instruction: "Adjust the three documented settings in the starter JavaScript.",
|
|
1326
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1327
|
+
},
|
|
1328
|
+
{
|
|
1329
|
+
kind: "run",
|
|
1330
|
+
instruction: "Use the Run action button to start the private flight preview.",
|
|
1331
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1332
|
+
},
|
|
1333
|
+
{
|
|
1334
|
+
kind: "assess",
|
|
1335
|
+
instruction: "Run the visible and protected deterministic flight checks.",
|
|
1336
|
+
artifactIds: []
|
|
1337
|
+
},
|
|
1338
|
+
{
|
|
1339
|
+
kind: "inspect",
|
|
1340
|
+
instruction: "Compare the highlighted setting with the first goal that did not pass.",
|
|
1341
|
+
artifactIds: []
|
|
1342
|
+
},
|
|
1343
|
+
{
|
|
1344
|
+
kind: "fix",
|
|
1345
|
+
instruction: "Change one setting, run again and observe the flight telemetry.",
|
|
1346
|
+
artifactIds: ["skywing-sprint-m1-code"]
|
|
1347
|
+
},
|
|
1348
|
+
{
|
|
1349
|
+
kind: "explain",
|
|
1350
|
+
instruction: "Explain how lift and gravity changed Skywing's vertical speed.",
|
|
1351
|
+
artifactIds: []
|
|
1352
|
+
},
|
|
1353
|
+
{
|
|
1354
|
+
kind: "reward",
|
|
1355
|
+
instruction: "Collect the evidence-bound badge when the score and safety check pass.",
|
|
1356
|
+
artifactIds: []
|
|
1357
|
+
}
|
|
1358
|
+
],
|
|
1359
|
+
readinessChecks: [
|
|
1360
|
+
{
|
|
1361
|
+
id: "skywing-sprint-m1-predict-velocity",
|
|
1362
|
+
prompt: "Point to the setting that changes Skywing's upward push.",
|
|
1363
|
+
scored: false
|
|
1364
|
+
}
|
|
1365
|
+
],
|
|
1366
|
+
artifacts: [
|
|
1367
|
+
{
|
|
1368
|
+
id: "skywing-sprint-m1-code",
|
|
1369
|
+
kind: "starter-code",
|
|
1370
|
+
audience: "learner",
|
|
1371
|
+
solutionBearing: false
|
|
1372
|
+
},
|
|
1373
|
+
{
|
|
1374
|
+
id: "skywing-sprint-m1-art",
|
|
1375
|
+
kind: "starter-assets",
|
|
1376
|
+
audience: "learner",
|
|
1377
|
+
solutionBearing: false
|
|
1378
|
+
},
|
|
1379
|
+
{
|
|
1380
|
+
id: "skywing-sprint-m1-printable",
|
|
1381
|
+
kind: "printable",
|
|
1382
|
+
audience: "learner",
|
|
1383
|
+
solutionBearing: false
|
|
1384
|
+
}
|
|
1385
|
+
],
|
|
1386
|
+
goals: [
|
|
1387
|
+
{
|
|
1388
|
+
id: "skywing-sprint-m1-starts",
|
|
1389
|
+
statement: "The JavaScript settings are valid and the private preview starts.",
|
|
1390
|
+
visibility: "visible",
|
|
1391
|
+
criterionIds: ["skywing-sprint-build"],
|
|
1392
|
+
completionRequired: true,
|
|
1393
|
+
aiRequired: false
|
|
1394
|
+
},
|
|
1395
|
+
{
|
|
1396
|
+
id: "skywing-sprint-m1-safe-flight",
|
|
1397
|
+
statement: "Lift and gravity create a controllable flight through the rescue gate.",
|
|
1398
|
+
visibility: "visible",
|
|
1399
|
+
criterionIds: [
|
|
1400
|
+
"skywing-sprint-goal-one",
|
|
1401
|
+
"skywing-sprint-goal-two"
|
|
1402
|
+
],
|
|
1403
|
+
completionRequired: true,
|
|
1404
|
+
aiRequired: false
|
|
1405
|
+
},
|
|
1406
|
+
{
|
|
1407
|
+
id: "skywing-sprint-m1-private-runtime",
|
|
1408
|
+
statement: "The game stays inside the private educational preview boundary.",
|
|
1409
|
+
visibility: "visible",
|
|
1410
|
+
criterionIds: ["skywing-sprint-safety"],
|
|
1411
|
+
completionRequired: true,
|
|
1412
|
+
aiRequired: false
|
|
1413
|
+
}
|
|
1414
|
+
],
|
|
1415
|
+
interactions: [
|
|
1416
|
+
{
|
|
1417
|
+
id: "skywing-sprint-m1-run-control",
|
|
1418
|
+
description: "Start the private flight simulation.",
|
|
1419
|
+
primaryMode: "pointer",
|
|
1420
|
+
alternativeIds: ["skywing-sprint-m1-keyboard-run"]
|
|
1421
|
+
},
|
|
1422
|
+
{
|
|
1423
|
+
id: "skywing-sprint-m1-flight-control",
|
|
1424
|
+
description: "Send a lift pulse while the preview is running.",
|
|
1425
|
+
primaryMode: "keyboard",
|
|
1426
|
+
alternativeIds: []
|
|
1427
|
+
},
|
|
1428
|
+
{
|
|
1429
|
+
id: "skywing-sprint-m1-flight-motion",
|
|
1430
|
+
description: "Observe Skywing moving through the animated gate preview.",
|
|
1431
|
+
primaryMode: "motion",
|
|
1432
|
+
alternativeIds: ["skywing-sprint-m1-reduced-motion"]
|
|
1433
|
+
}
|
|
1434
|
+
],
|
|
1435
|
+
accessibilityAlternatives: [
|
|
1436
|
+
{
|
|
1437
|
+
id: "skywing-sprint-m1-keyboard-run",
|
|
1438
|
+
modes: ["keyboard"],
|
|
1439
|
+
equivalentOutcome: true,
|
|
1440
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
1441
|
+
},
|
|
1442
|
+
{
|
|
1443
|
+
id: "skywing-sprint-m1-reduced-motion",
|
|
1444
|
+
modes: ["text"],
|
|
1445
|
+
equivalentOutcome: true,
|
|
1446
|
+
description: "Use the position, velocity and gate-status text instead of animation."
|
|
1447
|
+
}
|
|
1448
|
+
],
|
|
1449
|
+
evidenceRequirements: [
|
|
1450
|
+
{
|
|
1451
|
+
id: "skywing-sprint-m1-assessment",
|
|
1452
|
+
goalIds: [
|
|
1453
|
+
"skywing-sprint-m1-starts",
|
|
1454
|
+
"skywing-sprint-m1-safe-flight",
|
|
1455
|
+
"skywing-sprint-m1-private-runtime"
|
|
1456
|
+
],
|
|
1457
|
+
kind: "assessment-result",
|
|
1458
|
+
retention: "entitlement",
|
|
1459
|
+
containsPersonalData: false
|
|
1460
|
+
},
|
|
1461
|
+
{
|
|
1462
|
+
id: "skywing-sprint-m1-explanation",
|
|
1463
|
+
goalIds: ["skywing-sprint-m1-safe-flight"],
|
|
1464
|
+
kind: "learner-explanation",
|
|
1465
|
+
retention: "attempt",
|
|
1466
|
+
containsPersonalData: false
|
|
1467
|
+
}
|
|
1468
|
+
],
|
|
1469
|
+
sideAdventures: [
|
|
1470
|
+
{
|
|
1471
|
+
id: "skywing-sprint-m1-remix",
|
|
1472
|
+
prompt: "Invent a new gate name and choose one setting to make the flight gentler.",
|
|
1473
|
+
completionRequired: false
|
|
1474
|
+
}
|
|
1475
|
+
],
|
|
1476
|
+
rewardBindings: [
|
|
1477
|
+
{
|
|
1478
|
+
id: "skywing-sprint-m1-badge",
|
|
1479
|
+
badgeId: "skywing-sprint-mission-complete",
|
|
1480
|
+
goalIds: [
|
|
1481
|
+
"skywing-sprint-m1-starts",
|
|
1482
|
+
"skywing-sprint-m1-safe-flight",
|
|
1483
|
+
"skywing-sprint-m1-private-runtime"
|
|
1484
|
+
],
|
|
1485
|
+
deterministic: true,
|
|
1486
|
+
random: false,
|
|
1487
|
+
tokenConvertible: false
|
|
1488
|
+
}
|
|
1489
|
+
]
|
|
1490
|
+
},
|
|
1491
|
+
facilitator: {
|
|
1492
|
+
artifacts: [
|
|
1493
|
+
{
|
|
1494
|
+
id: "skywing-sprint-m1-answer-key",
|
|
1495
|
+
kind: "answer-key",
|
|
1496
|
+
audience: "facilitator",
|
|
1497
|
+
solutionBearing: true
|
|
1498
|
+
},
|
|
1499
|
+
{
|
|
1500
|
+
id: "skywing-sprint-m1-protected-tests",
|
|
1501
|
+
kind: "protected-test",
|
|
1502
|
+
audience: "facilitator",
|
|
1503
|
+
solutionBearing: true
|
|
1504
|
+
}
|
|
1505
|
+
],
|
|
1506
|
+
protectedGoals: [
|
|
1507
|
+
{
|
|
1508
|
+
id: "skywing-sprint-m1-protected-resilience",
|
|
1509
|
+
statement: "The runtime clamps unsafe values and terminates bounded simulations.",
|
|
1510
|
+
visibility: "protected",
|
|
1511
|
+
criterionIds: [
|
|
1512
|
+
"skywing-sprint-edge-one",
|
|
1513
|
+
"skywing-sprint-edge-two"
|
|
1514
|
+
],
|
|
1515
|
+
completionRequired: false,
|
|
1516
|
+
aiRequired: false
|
|
1517
|
+
}
|
|
1518
|
+
],
|
|
1519
|
+
prompts: [
|
|
1520
|
+
"Ask the learner which direction a positive velocity moves Skywing before suggesting a setting change.",
|
|
1521
|
+
"Use the visible telemetry and function reference; never reveal protected numeric targets or expected source fragments."
|
|
1522
|
+
]
|
|
1523
|
+
}
|
|
1524
|
+
};
|
|
1091
1525
|
var ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1 = {
|
|
1092
1526
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1093
1527
|
moduleId: "junior-coder.road-hopper-rally",
|
|
@@ -1443,6 +1877,8 @@ export {
|
|
|
1443
1877
|
JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1,
|
|
1444
1878
|
MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1445
1879
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
1880
|
+
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
1881
|
+
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|
|
1446
1882
|
assertValidLearningPath,
|
|
1447
1883
|
assertValidMissionAuthoringBundle,
|
|
1448
1884
|
calculateAssessment,
|