2024 - Team 102 Match form (new system)

Refactored 2024 form to use the new and improved JSON schema

[
  {
    "type": "derived",
    "formula": "2*(didStartingZone + autoAmp) + 5*autoSpeaker",
    "id": "totalAutoPoints"
  },
  {
    "type": "derived",
    "formula": "2*teleopSpeaker + teleopAmpSpeaker*5 + teleopAmp",
    "id": "totalTeleopPoints"
  },
  {
    "type": "derived",
    "formula": "5*teleopTrap + endgameSpotlit + multiselect(endgameStage, 'not parked', 0, 'parked (at least partially in the stage zone)', 1, 'on stage (fully off the Ground)', 3)",
    "id": "totalEndgamePoints"
  },
  {
    "type": "derived",
    "formula": "totalAutoPoints + totalTeleopPoints + totalEndgamePoints",
    "id": "contributedPoints"
  },
  {
    "type": "derived",
    "formula": "autoAmp + autoSpeaker",
    "id": "totalAutoNotes"
  },
  {
    "type": "derived",
    "formula": "teleopAmp + teleopSpeaker + teleopAmpSpeaker",
    "id": "totalTeleopNotes"
  },
  {
    "type": "derived",
    "formula": "autoAmp + autoSpeaker + teleopAmp + teleopSpeaker + teleopAmpSpeaker",
    "id": "totalNotes"
  },
  {
    "type": "header",
    "label": "Autonomous"
  },
  {
    "type": "checkbox",
    "label": "Did they entirely leave Starting Zone?",
    "id": "didStartingZone"
  },
  {
    "type": "subheader",
    "label": "Auto Speaker"
  },
  {
    "type": "counter",
    "label": "Notes scored in Speaker",
    "id": "autoSpeaker"
  },
  {
    "type": "counter",
    "label": "Speaker attempts missed",
    "id": "autoSpeakerMiss",
    "variant": "bad"
  },
  {
    "type": "subheader",
    "label": "Auto Amp"
  },
  {
    "type": "counter",
    "label": "Notes scored in Amp",
    "id": "autoAmp"
  },
  {
    "type": "counter",
    "label": "Amp attempts missed",
    "id": "autoAmpMiss",
    "variant": "bad"
  },
  {
    "type": "derived",
    "formula": "((135 - max(onStageTimeStart, onStageTimeEnd)) / (totalTeleopNotes + teleopTrap)) || 160",
    "id": "cycleTime"
  },
  {
    "type": "derived",
    "formula": "14.646447 - log(cycleTime, 1.4142136)",
    "id": "cycleSpeedFactor"
  },
  {
    "type": "derived",
    "formula": "autoAmp + teleopAmp",
    "id": "totalAmpNotes"
  },
  {
    "type": "derived",
    "formula": "autoSpeaker + teleopSpeaker",
    "id": "totalSpeakerNotes"
  },
  {
    "type": "derived",
    "formula": "14.646447 - log(max(5, abs(onStageTimeEnd - onStageTimeStart)), 1.4142136)",
    "id": "onStageSpeedFactor"
  },
  {
    "type": "spacer"
  },
  {
    "type": "header",
    "label": "Teleop"
  },
  {
    "type": "subheader",
    "label": "Teleop Speaker"
  },
  {
    "type": "counter",
    "label": "Notes scored in Speaker",
    "id": "teleopSpeaker"
  },
  {
    "type": "counter",
    "label": "Notes scored in AMP'ed Speaker",
    "id": "teleopAmpSpeaker"
  },
  {
    "type": "counter",
    "label": "Speaker attemps missed",
    "id": "teleopSpeakerMiss",
    "variant": "bad"
  },
  {
    "type": "subheader",
    "label": "Teleop Amp"
  },
  {
    "type": "counter",
    "label": "Notes scored in Amp",
    "id": "teleopAmp"
  },
  {
    "type": "counter",
    "label": "Amp attempts missed",
    "id": "teleopAmpMiss",
    "variant": "bad"
  },
  {
    "type": "subheader",
    "label": "Passing"
  },
  {
    "type": "counter",
    "label": "Notes passed into Wing",
    "id": "teleopPass"
  },
  {
    "type": "subheader",
    "label": "Trap"
  },
  {
    "type": "counter",
    "label": "Notes scored in Traps (1/Trap)",
    "id": "teleopTrap"
  },
  {
    "type": "spacer"
  },
  {
    "type": "header",
    "label": "Endgame"
  },
  {
    "type": "slider",
    "label": "How much time was on the clock when they started climbing?",
    "id": "onStageTimeStart",
    "options": {
      "min": 0,
      "max": 90,
      "step": -5
    },
    "variant": "time"
  },
  {
    "type": "slider",
    "label": "How much time was on the clock when they stopped climbing?",
    "id": "onStageTimeEnd",
    "options": {
      "min": 0,
      "max": 90,
      "step": -5
    },
    "variant": "time"
  },
  {
    "type": "multiselect",
    "label": "Stage status of robot at end of match:",
    "options": [
      "Not Parked",
      "Parked (At least partially in the Stage zone)",
      "On Stage (Fully off the ground)"
    ],
    "id": "endgameStage"
  },
  {
    "type": "checkbox",
    "label": "Did they Harmonize (2 or more robots climbed on 1 chain)",
    "id": "endgameHarmonize"
  },
  {
    "type": "checkbox",
    "label": "Robot Spotlit (High Note on same stage as Robot)",
    "id": "endgameSpotlit"
  },
  {
    "type": "spacer"
  },
  {
    "type": "header",
    "label": "General"
  },
  {
    "type": "checkbox",
    "label": "Defended (stopped or delayed at least one score)?",
    "id": "defended"
  },
  {
    "type": "checkbox",
    "label": "Died during the match (or never started)?",
    "id": "diedDuringMatch"
  },
  {
    "type": "checkbox",
    "label": "Recovered from freeze?",
    "id": "recoveredFromFreeze"
  },
  {
    "type": "derived",
    "formula": "1 - diedDuringMatch + 0.5*recoveredFromFreeze",
    "id": "reliabilityFactor"
  },
  {
    "type": "checkbox",
    "label": "Outstanding performance? (If so, definitely explain why!)",
    "id": "outstandingPerformance"
  },
  {
    "type": "textblock",
    "label": "Other comments and notes:",
    "id": "otherNotes"
  }
]