@plasius/learning 0.2.4 → 0.2.6
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 +24 -1
- package/dist/index.cjs +450 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -1
- package/dist/index.d.ts +13 -1
- package/dist/index.js +448 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -382,6 +382,18 @@ declare const SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
|
382
382
|
* and ball controls without receiving protected collision targets or answers.
|
|
383
383
|
*/
|
|
384
384
|
declare const PADDLE_PULSE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
|
+
/**
|
|
386
|
+
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
387
|
+
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
388
|
+
* while protected route and action-limit checks stay facilitator-only.
|
|
389
|
+
*/
|
|
390
|
+
declare const RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
391
|
+
/**
|
|
392
|
+
* Original first mission for Meteor Shield. Learners tune documented targeting,
|
|
393
|
+
* energy and timing controls without receiving protected resource targets or
|
|
394
|
+
* projectile answers.
|
|
395
|
+
*/
|
|
396
|
+
declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
397
|
/** Original first-mission exemplar; no protected content appears in learner data. */
|
|
386
398
|
declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
387
399
|
|
|
@@ -390,4 +402,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
390
402
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
391
403
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
392
404
|
|
|
393
|
-
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, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, 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 };
|
|
405
|
+
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, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, 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, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, 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.d.ts
CHANGED
|
@@ -382,6 +382,18 @@ declare const SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
|
382
382
|
* and ball controls without receiving protected collision targets or answers.
|
|
383
383
|
*/
|
|
384
384
|
declare const PADDLE_PULSE_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
|
+
/**
|
|
386
|
+
* Original first mission for Rescue Crew Commander. The learner arranges a
|
|
387
|
+
* typed visual program and can inspect its synchronized JavaScript projection,
|
|
388
|
+
* while protected route and action-limit checks stay facilitator-only.
|
|
389
|
+
*/
|
|
390
|
+
declare const RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
391
|
+
/**
|
|
392
|
+
* Original first mission for Meteor Shield. Learners tune documented targeting,
|
|
393
|
+
* energy and timing controls without receiving protected resource targets or
|
|
394
|
+
* projectile answers.
|
|
395
|
+
*/
|
|
396
|
+
declare const METEOR_SHIELD_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
385
397
|
/** Original first-mission exemplar; no protected content appears in learner data. */
|
|
386
398
|
declare const ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1: MissionAuthoringBundleV1;
|
|
387
399
|
|
|
@@ -390,4 +402,4 @@ declare function validateLearningPath(path: LearningPathVersionV1): LearningVali
|
|
|
390
402
|
/** Fail fast when a path is not safe to publish or consume. */
|
|
391
403
|
declare function assertValidLearningPath(path: LearningPathVersionV1): void;
|
|
392
404
|
|
|
393
|
-
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, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, 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 };
|
|
405
|
+
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, METEOR_SHIELD_MISSION_ONE_AUTHORING_V1, 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, PADDLE_PULSE_MISSION_ONE_AUTHORING_V1, type PublishedStaticProjectSnapshotV1, RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1, 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
|
@@ -1742,6 +1742,452 @@ var PADDLE_PULSE_MISSION_ONE_AUTHORING_V1 = {
|
|
|
1742
1742
|
]
|
|
1743
1743
|
}
|
|
1744
1744
|
};
|
|
1745
|
+
var RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1 = {
|
|
1746
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1747
|
+
moduleId: "junior-coder.rescue-crew-commander",
|
|
1748
|
+
moduleVersion: "1.1.0",
|
|
1749
|
+
missionId: "rescue-crew-commander-mission-1",
|
|
1750
|
+
learner: {
|
|
1751
|
+
estimatedMinutes: 20,
|
|
1752
|
+
stages: [
|
|
1753
|
+
{
|
|
1754
|
+
kind: "learn",
|
|
1755
|
+
instruction: "Meet the helper, job, route and priority blocks and read what each block does in the synchronized JavaScript view.",
|
|
1756
|
+
artifactIds: ["rescue-crew-commander-m1-art"]
|
|
1757
|
+
},
|
|
1758
|
+
{
|
|
1759
|
+
kind: "predict",
|
|
1760
|
+
instruction: "Predict which helper will act first and which safe route it will follow.",
|
|
1761
|
+
artifactIds: []
|
|
1762
|
+
},
|
|
1763
|
+
{
|
|
1764
|
+
kind: "build",
|
|
1765
|
+
instruction: "Arrange the visual blocks to give each helper one safe rescue job.",
|
|
1766
|
+
artifactIds: ["rescue-crew-commander-m1-program"]
|
|
1767
|
+
},
|
|
1768
|
+
{
|
|
1769
|
+
kind: "run",
|
|
1770
|
+
instruction: "Use the Run action button to watch the crew follow the typed visual program.",
|
|
1771
|
+
artifactIds: ["rescue-crew-commander-m1-program"]
|
|
1772
|
+
},
|
|
1773
|
+
{
|
|
1774
|
+
kind: "assess",
|
|
1775
|
+
instruction: "Run the visible and protected deterministic crew checks.",
|
|
1776
|
+
artifactIds: []
|
|
1777
|
+
},
|
|
1778
|
+
{
|
|
1779
|
+
kind: "inspect",
|
|
1780
|
+
instruction: "Compare the highlighted block with the first goal that did not pass and inspect the matching JavaScript line.",
|
|
1781
|
+
artifactIds: []
|
|
1782
|
+
},
|
|
1783
|
+
{
|
|
1784
|
+
kind: "fix",
|
|
1785
|
+
instruction: "Move or replace one job, route or priority block, then run the mission again.",
|
|
1786
|
+
artifactIds: ["rescue-crew-commander-m1-program"]
|
|
1787
|
+
},
|
|
1788
|
+
{
|
|
1789
|
+
kind: "explain",
|
|
1790
|
+
instruction: "Explain how job order and priority changed the crew state and rescue result.",
|
|
1791
|
+
artifactIds: []
|
|
1792
|
+
},
|
|
1793
|
+
{
|
|
1794
|
+
kind: "reward",
|
|
1795
|
+
instruction: "Collect the evidence-bound badge when the score and private-simulator safety check pass.",
|
|
1796
|
+
artifactIds: []
|
|
1797
|
+
}
|
|
1798
|
+
],
|
|
1799
|
+
readinessChecks: [
|
|
1800
|
+
{
|
|
1801
|
+
id: "rescue-crew-commander-m1-find-priority",
|
|
1802
|
+
prompt: "Point to the block that decides which helper acts first.",
|
|
1803
|
+
scored: false
|
|
1804
|
+
}
|
|
1805
|
+
],
|
|
1806
|
+
artifacts: [
|
|
1807
|
+
{
|
|
1808
|
+
id: "rescue-crew-commander-m1-program",
|
|
1809
|
+
kind: "starter-code",
|
|
1810
|
+
audience: "learner",
|
|
1811
|
+
solutionBearing: false
|
|
1812
|
+
},
|
|
1813
|
+
{
|
|
1814
|
+
id: "rescue-crew-commander-m1-art",
|
|
1815
|
+
kind: "starter-assets",
|
|
1816
|
+
audience: "learner",
|
|
1817
|
+
solutionBearing: false
|
|
1818
|
+
},
|
|
1819
|
+
{
|
|
1820
|
+
id: "rescue-crew-commander-m1-printable",
|
|
1821
|
+
kind: "printable",
|
|
1822
|
+
audience: "learner",
|
|
1823
|
+
solutionBearing: false
|
|
1824
|
+
}
|
|
1825
|
+
],
|
|
1826
|
+
goals: [
|
|
1827
|
+
{
|
|
1828
|
+
id: "rescue-crew-commander-m1-starts",
|
|
1829
|
+
statement: "The typed visual program is structurally valid and starts.",
|
|
1830
|
+
visibility: "visible",
|
|
1831
|
+
criterionIds: ["rescue-crew-commander-build"],
|
|
1832
|
+
completionRequired: true,
|
|
1833
|
+
aiRequired: false
|
|
1834
|
+
},
|
|
1835
|
+
{
|
|
1836
|
+
id: "rescue-crew-commander-m1-safe-jobs",
|
|
1837
|
+
statement: "Every helper receives one suitable job and the highest-priority rescue starts first.",
|
|
1838
|
+
visibility: "visible",
|
|
1839
|
+
criterionIds: [
|
|
1840
|
+
"rescue-crew-commander-goal-one",
|
|
1841
|
+
"rescue-crew-commander-goal-two"
|
|
1842
|
+
],
|
|
1843
|
+
completionRequired: true,
|
|
1844
|
+
aiRequired: false
|
|
1845
|
+
},
|
|
1846
|
+
{
|
|
1847
|
+
id: "rescue-crew-commander-m1-private-runtime",
|
|
1848
|
+
statement: "The crew stays inside the private simulator and follows only host-provided actions.",
|
|
1849
|
+
visibility: "visible",
|
|
1850
|
+
criterionIds: ["rescue-crew-commander-safety"],
|
|
1851
|
+
completionRequired: true,
|
|
1852
|
+
aiRequired: false
|
|
1853
|
+
}
|
|
1854
|
+
],
|
|
1855
|
+
interactions: [
|
|
1856
|
+
{
|
|
1857
|
+
id: "rescue-crew-commander-m1-reorder-blocks",
|
|
1858
|
+
description: "Change the order of typed job, route and priority blocks.",
|
|
1859
|
+
primaryMode: "drag",
|
|
1860
|
+
alternativeIds: ["rescue-crew-commander-m1-button-reorder"]
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
id: "rescue-crew-commander-m1-run-control",
|
|
1864
|
+
description: "Start the private rescue-crew simulation.",
|
|
1865
|
+
primaryMode: "pointer",
|
|
1866
|
+
alternativeIds: ["rescue-crew-commander-m1-keyboard-run"]
|
|
1867
|
+
},
|
|
1868
|
+
{
|
|
1869
|
+
id: "rescue-crew-commander-m1-crew-motion",
|
|
1870
|
+
description: "Observe helpers change state and follow their assigned routes.",
|
|
1871
|
+
primaryMode: "motion",
|
|
1872
|
+
alternativeIds: ["rescue-crew-commander-m1-status-view"]
|
|
1873
|
+
}
|
|
1874
|
+
],
|
|
1875
|
+
accessibilityAlternatives: [
|
|
1876
|
+
{
|
|
1877
|
+
id: "rescue-crew-commander-m1-button-reorder",
|
|
1878
|
+
modes: ["keyboard", "pointer"],
|
|
1879
|
+
equivalentOutcome: true,
|
|
1880
|
+
description: "Use labelled Move up and Move down buttons instead of dragging a visual block."
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
id: "rescue-crew-commander-m1-keyboard-run",
|
|
1884
|
+
modes: ["keyboard"],
|
|
1885
|
+
equivalentOutcome: true,
|
|
1886
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
1887
|
+
},
|
|
1888
|
+
{
|
|
1889
|
+
id: "rescue-crew-commander-m1-status-view",
|
|
1890
|
+
modes: ["text", "symbol", "reduced-motion"],
|
|
1891
|
+
equivalentOutcome: true,
|
|
1892
|
+
description: "Read each helper's job, route, priority and state from the status list without animation or colour dependence."
|
|
1893
|
+
}
|
|
1894
|
+
],
|
|
1895
|
+
evidenceRequirements: [
|
|
1896
|
+
{
|
|
1897
|
+
id: "rescue-crew-commander-m1-assessment",
|
|
1898
|
+
goalIds: [
|
|
1899
|
+
"rescue-crew-commander-m1-starts",
|
|
1900
|
+
"rescue-crew-commander-m1-safe-jobs",
|
|
1901
|
+
"rescue-crew-commander-m1-private-runtime"
|
|
1902
|
+
],
|
|
1903
|
+
kind: "assessment-result",
|
|
1904
|
+
retention: "entitlement",
|
|
1905
|
+
containsPersonalData: false
|
|
1906
|
+
},
|
|
1907
|
+
{
|
|
1908
|
+
id: "rescue-crew-commander-m1-explanation",
|
|
1909
|
+
goalIds: ["rescue-crew-commander-m1-safe-jobs"],
|
|
1910
|
+
kind: "learner-explanation",
|
|
1911
|
+
retention: "attempt",
|
|
1912
|
+
containsPersonalData: false
|
|
1913
|
+
}
|
|
1914
|
+
],
|
|
1915
|
+
sideAdventures: [
|
|
1916
|
+
{
|
|
1917
|
+
id: "rescue-crew-commander-m1-remix",
|
|
1918
|
+
prompt: "Invent an original helper role and explain which safe route and priority it should receive.",
|
|
1919
|
+
completionRequired: false
|
|
1920
|
+
}
|
|
1921
|
+
],
|
|
1922
|
+
rewardBindings: [
|
|
1923
|
+
{
|
|
1924
|
+
id: "rescue-crew-commander-m1-badge",
|
|
1925
|
+
badgeId: "rescue-crew-commander-mission-complete",
|
|
1926
|
+
goalIds: [
|
|
1927
|
+
"rescue-crew-commander-m1-starts",
|
|
1928
|
+
"rescue-crew-commander-m1-safe-jobs",
|
|
1929
|
+
"rescue-crew-commander-m1-private-runtime"
|
|
1930
|
+
],
|
|
1931
|
+
deterministic: true,
|
|
1932
|
+
random: false,
|
|
1933
|
+
tokenConvertible: false
|
|
1934
|
+
}
|
|
1935
|
+
]
|
|
1936
|
+
},
|
|
1937
|
+
facilitator: {
|
|
1938
|
+
artifacts: [
|
|
1939
|
+
{
|
|
1940
|
+
id: "rescue-crew-commander-m1-answer-key",
|
|
1941
|
+
kind: "answer-key",
|
|
1942
|
+
audience: "facilitator",
|
|
1943
|
+
solutionBearing: true
|
|
1944
|
+
},
|
|
1945
|
+
{
|
|
1946
|
+
id: "rescue-crew-commander-m1-protected-tests",
|
|
1947
|
+
kind: "protected-test",
|
|
1948
|
+
audience: "facilitator",
|
|
1949
|
+
solutionBearing: true
|
|
1950
|
+
}
|
|
1951
|
+
],
|
|
1952
|
+
protectedGoals: [
|
|
1953
|
+
{
|
|
1954
|
+
id: "rescue-crew-commander-m1-protected-resilience",
|
|
1955
|
+
statement: "The interpreter rejects unknown blocks, duplicate assignments and programs over the action limit.",
|
|
1956
|
+
visibility: "protected",
|
|
1957
|
+
criterionIds: [
|
|
1958
|
+
"rescue-crew-commander-edge-one",
|
|
1959
|
+
"rescue-crew-commander-edge-two"
|
|
1960
|
+
],
|
|
1961
|
+
completionRequired: false,
|
|
1962
|
+
aiRequired: false
|
|
1963
|
+
}
|
|
1964
|
+
],
|
|
1965
|
+
prompts: [
|
|
1966
|
+
"Ask the learner which helper should act first before suggesting a block change.",
|
|
1967
|
+
"Use the block reference, status list and visible goal; never reveal the protected assignment order or expected block sequence."
|
|
1968
|
+
]
|
|
1969
|
+
}
|
|
1970
|
+
};
|
|
1971
|
+
var METEOR_SHIELD_MISSION_ONE_AUTHORING_V1 = {
|
|
1972
|
+
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1973
|
+
moduleId: "junior-coder.meteor-shield",
|
|
1974
|
+
moduleVersion: "1.1.0",
|
|
1975
|
+
missionId: "meteor-shield-mission-1",
|
|
1976
|
+
learner: {
|
|
1977
|
+
estimatedMinutes: 20,
|
|
1978
|
+
stages: [
|
|
1979
|
+
{
|
|
1980
|
+
kind: "learn",
|
|
1981
|
+
instruction: "Read how target column, shield energy and launch delay change a rescue defence.",
|
|
1982
|
+
artifactIds: ["meteor-shield-m1-art"]
|
|
1983
|
+
},
|
|
1984
|
+
{
|
|
1985
|
+
kind: "predict",
|
|
1986
|
+
instruction: "Predict which rescue base the shield will protect first.",
|
|
1987
|
+
artifactIds: []
|
|
1988
|
+
},
|
|
1989
|
+
{
|
|
1990
|
+
kind: "build",
|
|
1991
|
+
instruction: "Adjust the three documented settings in the starter JavaScript.",
|
|
1992
|
+
artifactIds: ["meteor-shield-m1-code"]
|
|
1993
|
+
},
|
|
1994
|
+
{
|
|
1995
|
+
kind: "run",
|
|
1996
|
+
instruction: "Use the Run action button to start the private meteor-wave preview.",
|
|
1997
|
+
artifactIds: ["meteor-shield-m1-code"]
|
|
1998
|
+
},
|
|
1999
|
+
{
|
|
2000
|
+
kind: "assess",
|
|
2001
|
+
instruction: "Run the visible and protected deterministic defence checks.",
|
|
2002
|
+
artifactIds: []
|
|
2003
|
+
},
|
|
2004
|
+
{
|
|
2005
|
+
kind: "inspect",
|
|
2006
|
+
instruction: "Compare the highlighted setting with the first goal that did not pass.",
|
|
2007
|
+
artifactIds: []
|
|
2008
|
+
},
|
|
2009
|
+
{
|
|
2010
|
+
kind: "fix",
|
|
2011
|
+
instruction: "Change one setting, run again and observe the energy and target telemetry.",
|
|
2012
|
+
artifactIds: ["meteor-shield-m1-code"]
|
|
2013
|
+
},
|
|
2014
|
+
{
|
|
2015
|
+
kind: "explain",
|
|
2016
|
+
instruction: "Explain how targeting and launch timing affected the remaining shield energy.",
|
|
2017
|
+
artifactIds: []
|
|
2018
|
+
},
|
|
2019
|
+
{
|
|
2020
|
+
kind: "reward",
|
|
2021
|
+
instruction: "Collect the evidence-bound badge when the score and safety check pass.",
|
|
2022
|
+
artifactIds: []
|
|
2023
|
+
}
|
|
2024
|
+
],
|
|
2025
|
+
readinessChecks: [
|
|
2026
|
+
{
|
|
2027
|
+
id: "meteor-shield-m1-find-energy",
|
|
2028
|
+
prompt: "Point to the setting that limits how many shields can launch.",
|
|
2029
|
+
scored: false
|
|
2030
|
+
}
|
|
2031
|
+
],
|
|
2032
|
+
artifacts: [
|
|
2033
|
+
{
|
|
2034
|
+
id: "meteor-shield-m1-code",
|
|
2035
|
+
kind: "starter-code",
|
|
2036
|
+
audience: "learner",
|
|
2037
|
+
solutionBearing: false
|
|
2038
|
+
},
|
|
2039
|
+
{
|
|
2040
|
+
id: "meteor-shield-m1-art",
|
|
2041
|
+
kind: "starter-assets",
|
|
2042
|
+
audience: "learner",
|
|
2043
|
+
solutionBearing: false
|
|
2044
|
+
},
|
|
2045
|
+
{
|
|
2046
|
+
id: "meteor-shield-m1-printable",
|
|
2047
|
+
kind: "printable",
|
|
2048
|
+
audience: "learner",
|
|
2049
|
+
solutionBearing: false
|
|
2050
|
+
}
|
|
2051
|
+
],
|
|
2052
|
+
goals: [
|
|
2053
|
+
{
|
|
2054
|
+
id: "meteor-shield-m1-starts",
|
|
2055
|
+
statement: "The JavaScript settings are valid and the private preview starts.",
|
|
2056
|
+
visibility: "visible",
|
|
2057
|
+
criterionIds: ["meteor-shield-build"],
|
|
2058
|
+
completionRequired: true,
|
|
2059
|
+
aiRequired: false
|
|
2060
|
+
},
|
|
2061
|
+
{
|
|
2062
|
+
id: "meteor-shield-m1-resource-defence",
|
|
2063
|
+
statement: "A shield launches toward the selected meteor while keeping enough energy for the next wave.",
|
|
2064
|
+
visibility: "visible",
|
|
2065
|
+
criterionIds: [
|
|
2066
|
+
"meteor-shield-goal-one",
|
|
2067
|
+
"meteor-shield-goal-two"
|
|
2068
|
+
],
|
|
2069
|
+
completionRequired: true,
|
|
2070
|
+
aiRequired: false
|
|
2071
|
+
},
|
|
2072
|
+
{
|
|
2073
|
+
id: "meteor-shield-m1-private-runtime",
|
|
2074
|
+
statement: "The game stays inside the private educational preview boundary.",
|
|
2075
|
+
visibility: "visible",
|
|
2076
|
+
criterionIds: ["meteor-shield-safety"],
|
|
2077
|
+
completionRequired: true,
|
|
2078
|
+
aiRequired: false
|
|
2079
|
+
}
|
|
2080
|
+
],
|
|
2081
|
+
interactions: [
|
|
2082
|
+
{
|
|
2083
|
+
id: "meteor-shield-m1-run-control",
|
|
2084
|
+
description: "Start the private meteor-wave simulation.",
|
|
2085
|
+
primaryMode: "pointer",
|
|
2086
|
+
alternativeIds: ["meteor-shield-m1-keyboard-run"]
|
|
2087
|
+
},
|
|
2088
|
+
{
|
|
2089
|
+
id: "meteor-shield-m1-target-control",
|
|
2090
|
+
description: "Move the targeting reticle between rescue columns and launch a shield.",
|
|
2091
|
+
primaryMode: "keyboard",
|
|
2092
|
+
alternativeIds: []
|
|
2093
|
+
},
|
|
2094
|
+
{
|
|
2095
|
+
id: "meteor-shield-m1-wave-motion",
|
|
2096
|
+
description: "Observe meteors and shield pulses crossing the rescue zone.",
|
|
2097
|
+
primaryMode: "motion",
|
|
2098
|
+
alternativeIds: ["meteor-shield-m1-telemetry"]
|
|
2099
|
+
}
|
|
2100
|
+
],
|
|
2101
|
+
accessibilityAlternatives: [
|
|
2102
|
+
{
|
|
2103
|
+
id: "meteor-shield-m1-keyboard-run",
|
|
2104
|
+
modes: ["keyboard"],
|
|
2105
|
+
equivalentOutcome: true,
|
|
2106
|
+
description: "Press Enter or Space on the play-icon Run button to start the same preview."
|
|
2107
|
+
},
|
|
2108
|
+
{
|
|
2109
|
+
id: "meteor-shield-m1-telemetry",
|
|
2110
|
+
modes: ["text", "reduced-motion"],
|
|
2111
|
+
equivalentOutcome: true,
|
|
2112
|
+
description: "Use target column, wave, distance and energy text instead of projectile animation."
|
|
2113
|
+
}
|
|
2114
|
+
],
|
|
2115
|
+
evidenceRequirements: [
|
|
2116
|
+
{
|
|
2117
|
+
id: "meteor-shield-m1-assessment",
|
|
2118
|
+
goalIds: [
|
|
2119
|
+
"meteor-shield-m1-starts",
|
|
2120
|
+
"meteor-shield-m1-resource-defence",
|
|
2121
|
+
"meteor-shield-m1-private-runtime"
|
|
2122
|
+
],
|
|
2123
|
+
kind: "assessment-result",
|
|
2124
|
+
retention: "entitlement",
|
|
2125
|
+
containsPersonalData: false
|
|
2126
|
+
},
|
|
2127
|
+
{
|
|
2128
|
+
id: "meteor-shield-m1-explanation",
|
|
2129
|
+
goalIds: ["meteor-shield-m1-resource-defence"],
|
|
2130
|
+
kind: "learner-explanation",
|
|
2131
|
+
retention: "attempt",
|
|
2132
|
+
containsPersonalData: false
|
|
2133
|
+
}
|
|
2134
|
+
],
|
|
2135
|
+
sideAdventures: [
|
|
2136
|
+
{
|
|
2137
|
+
id: "meteor-shield-m1-remix",
|
|
2138
|
+
prompt: "Invent an original rescue-base signal and describe the safe game event that activates it.",
|
|
2139
|
+
completionRequired: false
|
|
2140
|
+
}
|
|
2141
|
+
],
|
|
2142
|
+
rewardBindings: [
|
|
2143
|
+
{
|
|
2144
|
+
id: "meteor-shield-m1-badge",
|
|
2145
|
+
badgeId: "meteor-shield-mission-complete",
|
|
2146
|
+
goalIds: [
|
|
2147
|
+
"meteor-shield-m1-starts",
|
|
2148
|
+
"meteor-shield-m1-resource-defence",
|
|
2149
|
+
"meteor-shield-m1-private-runtime"
|
|
2150
|
+
],
|
|
2151
|
+
deterministic: true,
|
|
2152
|
+
random: false,
|
|
2153
|
+
tokenConvertible: false
|
|
2154
|
+
}
|
|
2155
|
+
]
|
|
2156
|
+
},
|
|
2157
|
+
facilitator: {
|
|
2158
|
+
artifacts: [
|
|
2159
|
+
{
|
|
2160
|
+
id: "meteor-shield-m1-answer-key",
|
|
2161
|
+
kind: "answer-key",
|
|
2162
|
+
audience: "facilitator",
|
|
2163
|
+
solutionBearing: true
|
|
2164
|
+
},
|
|
2165
|
+
{
|
|
2166
|
+
id: "meteor-shield-m1-protected-tests",
|
|
2167
|
+
kind: "protected-test",
|
|
2168
|
+
audience: "facilitator",
|
|
2169
|
+
solutionBearing: true
|
|
2170
|
+
}
|
|
2171
|
+
],
|
|
2172
|
+
protectedGoals: [
|
|
2173
|
+
{
|
|
2174
|
+
id: "meteor-shield-m1-protected-resilience",
|
|
2175
|
+
statement: "The runtime clamps unsafe resources and terminates bounded projectile simulations.",
|
|
2176
|
+
visibility: "protected",
|
|
2177
|
+
criterionIds: [
|
|
2178
|
+
"meteor-shield-edge-one",
|
|
2179
|
+
"meteor-shield-edge-two"
|
|
2180
|
+
],
|
|
2181
|
+
completionRequired: false,
|
|
2182
|
+
aiRequired: false
|
|
2183
|
+
}
|
|
2184
|
+
],
|
|
2185
|
+
prompts: [
|
|
2186
|
+
"Ask the learner which setting controls a limited resource before suggesting a code edit.",
|
|
2187
|
+
"Use visible telemetry and the function reference; never reveal protected numeric targets or expected source fragments."
|
|
2188
|
+
]
|
|
2189
|
+
}
|
|
2190
|
+
};
|
|
1745
2191
|
var ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1 = {
|
|
1746
2192
|
version: MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
1747
2193
|
moduleId: "junior-coder.road-hopper-rally",
|
|
@@ -2095,8 +2541,10 @@ export {
|
|
|
2095
2541
|
JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT,
|
|
2096
2542
|
JUNIOR_CODER_ROBOT_RESCUE_PATH_V1,
|
|
2097
2543
|
JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1,
|
|
2544
|
+
METEOR_SHIELD_MISSION_ONE_AUTHORING_V1,
|
|
2098
2545
|
MISSION_AUTHORING_CONTRACT_VERSION_V1,
|
|
2099
2546
|
PADDLE_PULSE_MISSION_ONE_AUTHORING_V1,
|
|
2547
|
+
RESCUE_CREW_COMMANDER_MISSION_ONE_AUTHORING_V1,
|
|
2100
2548
|
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
2101
2549
|
ROBOT_MAZE_DASH_MISSION_ONE_AUTHORING_V1,
|
|
2102
2550
|
SKYWING_SPRINT_MISSION_ONE_AUTHORING_V1,
|