{
  "contentVersion": "2026.08.14+1",
  "faults": [
    { "id": "fault.toe-curl",                "name": "Toe curl",                 "definition": "The toes crunch instead of lengthening, so the arch stops working.", "severity": "technique", "status": "published" },
    { "id": "fault.sickling",                "name": "Sickling",                 "definition": "The ankle rolls inward so the line breaks at the ankle.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.calf-grip",               "name": "Calf grip",                "definition": "The calf takes over work that belongs to the arch.", "severity": "technique", "status": "published" },
    { "id": "fault.rolling-out",             "name": "Rolling out",              "definition": "Weight drifts onto the little-toe side at the top of a rise.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.loss-of-control",         "name": "Loss of control",          "definition": "The movement is dropped or jerked rather than governed through its range.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.flat-landing",            "name": "Flat landing",             "definition": "Arriving flat-footed where the ball of the foot should take the weight.", "severity": "technique", "status": "published" },
    { "id": "fault.uneven-transfer",         "name": "Uneven transfer",          "definition": "Weight changes that should be equal come out unequal.", "severity": "technique", "status": "published" },
    { "id": "fault.lost-spot",               "name": "Lost spot",                "definition": "The head fails to find and hold a fixed point through a turn.", "severity": "technique", "status": "published" },
    { "id": "fault.hip-hike",                "name": "Hip hike",                 "definition": "One hip lifts or drops to buy height or balance.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.borrowed-momentum",       "name": "Borrowed momentum",        "definition": "Arms or torso supply force the legs should have generated.", "severity": "technique", "status": "published" },
    { "id": "fault.stiff-landing",           "name": "Stiff landing",            "definition": "The plié does not absorb the landing.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.late-beat",               "name": "Late beat",                "definition": "A beat or join that should happen in the air happens on the floor.", "severity": "technique", "status": "published" },
    { "id": "fault.unison-break",            "name": "Unison break",             "definition": "Individual range chosen over matching the line.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.leaning-back",            "name": "Leaning back",             "definition": "The torso tips back to buy leg height.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.diffuse-isolation",       "name": "Diffuse isolation",        "definition": "Movement leaks into body parts that should stay still.", "severity": "technique", "status": "published" },
    { "id": "fault.tone-mismatch",           "name": "Tone mismatch",            "definition": "The quality of movement does not match the style.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.rushing-tempo",           "name": "Rushing tempo",            "definition": "The step arrives ahead of the music or skips its own shape.", "severity": "technique", "status": "published" },
    { "id": "fault.travel-drift",            "name": "Travel drift",             "definition": "The step leaves its intended track or finishing point.", "severity": "technique", "status": "published" },
    { "id": "fault.standing-side-collapse",  "name": "Standing-side collapse",   "definition": "The supporting side sinks instead of lengthening.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.shoulder-twist",          "name": "Shoulder twist",           "definition": "The shoulders rotate to compensate for the hips.", "severity": "technique", "status": "published" },
    { "id": "fault.lumbar-only-extension",   "name": "Lumbar-only extension",    "definition": "A back bend hinges at the lower back rather than spreading through the spine.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.shape-collapse",          "name": "Shape collapse",           "definition": "A defined floor pattern degrades into an approximation.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.hip-lock",                "name": "Hip lock",                 "definition": "The hips are held rigid where the style needs them to answer the weight change.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.heel-lift",               "name": "Heel lift",                "definition": "The heels leave the floor in a demi-plié, so there is nothing left to push against.", "severity": "technique", "status": "published" },
    { "id": "fault.sitting-in-plie",         "name": "Sitting in the plié",      "definition": "The bottom of a plié becomes a rest stop instead of a turning point.", "severity": "technique", "status": "published" },
    { "id": "fault.knee-track",              "name": "Knee track",               "definition": "The knee falls inside the line of the foot instead of tracking over the toes.", "severity": "injury-risk", "status": "published" },
    { "id": "fault.turnout-loss",            "name": "Turnout loss",             "definition": "The thigh gives up its rotation partway through the movement.", "severity": "technique", "status": "published" },
    { "id": "fault.dropped-elbow",           "name": "Dropped elbow",            "definition": "The arm collapses at the elbow, so the line stops before it reaches the hand.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.rushed-preparation",      "name": "Rushed preparation",       "definition": "The preparation is skipped, so the step starts with nothing underneath it.", "severity": "technique", "status": "published" },
    { "id": "fault.travelling-jump",         "name": "Travelling jump",          "definition": "A jump that should stay on one spot drifts across the floor.", "severity": "technique", "status": "published" },
    { "id": "fault.loose-close",             "name": "Loose close",              "definition": "The feet finish short of the position, so the shape ends approximately.", "severity": "technique", "status": "published" },
    { "id": "fault.sympathy-movement",       "name": "Sympathy movement",        "definition": "The thigh joins in a movement that belongs to the lower leg alone.", "severity": "technique", "status": "published" },
    { "id": "fault.flat-front",              "name": "Flat front",               "definition": "The body stays square to the front where the step asks for an angle.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.dropped-eyeline",         "name": "Dropped eyeline",          "definition": "The eyes fall to the floor and the head stops being part of the line.", "severity": "cosmetic", "status": "published" },
    { "id": "fault.held-breath",             "name": "Held breath",              "definition": "Breathing stops, and the movement goes rigid with it.", "severity": "technique", "status": "published" }
  ],

  "capabilities": [
    { "id": "cap.releve-control", "name": "Controlled single-leg relevé",
      "test": "20 single-leg relevés each side, lowering over four counts, without dropping the heel or rolling out.",
      "evidence": { "kind": "attested", "attestedBy": ["parent", "teacher"], "supportingDrillIds": ["drill.eccentric-heel-drops", "drill.slow-releve-barre"], "suggestedDrillReps": 24 },
      "prePointe": true,
      "evidenceNote": "Drill counts tell you what to practise. They never attest this — an adult who has watched you does.",
      "expiresAfterDays": 120, "status": "published" },
    { "id": "cap.arch-strength", "name": "Working arch",
      "test": "Doming and theraband points through full range with no toe curl, both feet.",
      "evidence": { "kind": "attested", "attestedBy": ["parent", "teacher"], "supportingDrillIds": ["drill.theraband-points", "drill.doming"], "suggestedDrillReps": 20 },
      "prePointe": true,
      "evidenceNote": "Drill counts tell you what to practise. They never attest this — an adult who has watched you does.",
      "expiresAfterDays": 120, "status": "published" },
    { "id": "cap.core-back-control", "name": "Core and back control",
      "test": "Three 20-second hollow holds, then a standing back bend that spreads through the upper back with the abdominals engaged.",
      "evidence": { "kind": "attested", "attestedBy": ["teacher"], "supportingDrillIds": ["drill.core-back-prep"] },
      "expiresAfterDays": 180, "status": "published" },
    { "id": "cap.spotting", "name": "Reliable spotting",
      "test": "Eight chaînés along a taped line, finishing on the line, without dizziness.",
      "evidence": { "kind": "derived", "supportingDrillIds": ["drill.quarter-turn-spotting", "drill.line-tape-chaines"], "suggestedDrillReps": 12 },
      "expiresAfterDays": null, "status": "published" }
  ],

  "techniques": [
    {
      "id": "tech.tendu", "name": "Tendu with full point", "aka": ["Battement tendu"],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "The shape every other step is judged through. A late point shortens the line before the leg has even arrived.",
      "corrections": [
        { "id": "corr.tendu.toe-curl", "ordinal": 1, "faultId": "fault.toe-curl",
          "symptom": "Curling the toes to look pointed",
          "fix": "Press through the ball of the foot first, then let the toes lengthen last. If the toes crunch, the arch has stopped working and the line breaks under the foot.",
          "cue": "Point from the ankle, not the toes.", "video": null },
        { "id": "corr.tendu.sickling", "ordinal": 2, "faultId": "fault.sickling",
          "symptom": "Sickling — the ankle rolls inward",
          "fix": "Lead the movement with the little-toe side of the foot and keep the heel travelling forward. Check it in the mirror side-on, not front-on.",
          "cue": "Show me your heel.", "video": null },
        { "id": "corr.tendu.calf-grip", "ordinal": 3, "faultId": "fault.calf-grip",
          "symptom": "Gripping with the calf on the way back",
          "fix": "Let the arch do the work and soften the calf as the foot closes. Come back twice as slowly as you went out.",
          "cue": "Slow the way home.", "video": null }
      ],
      "drillIds": ["drill.theraband-points"], "video": null,
      "progressesTo": ["tech.degage"], "progressesFrom": [], "relatedTechniqueIds": ["tech.releve"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g3", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.releve", "name": "Relevé — single leg", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": ["pre-pointe"],
      "why": "Pointe work is not about getting up, it is about controlling the way down. This is the strength test underneath it.",
      "corrections": [
        { "id": "corr.releve.rolling-out", "ordinal": 1, "faultId": "fault.rolling-out",
          "symptom": "Rolling out onto the little toe at the top",
          "fix": "Aim the weight over the first two toes and keep the ankle stacked over the heel. A mirror at floor level tells the truth faster than a teacher can.",
          "cue": "Big toe stays home.", "video": null },
        { "id": "corr.releve.dropping", "ordinal": 2, "faultId": "fault.loss-of-control",
          "symptom": "Dropping down instead of lowering",
          "fix": "The heel should take four counts to reach the floor. Falling out of a relevé trains the exact opposite of what pointe needs.",
          "cue": "Land like the floor is glass.", "video": null },
        { "id": "corr.releve.calf-grip", "ordinal": 3, "faultId": "fault.calf-grip",
          "symptom": "The calf does the work instead of the foot",
          "fix": "Push the floor away through the ball of the foot and let the arch lift you, rather than hauling yourself up with the back of the leg. A calf that grips has already shortened before the foot has finished pointing, so the rise stops short of the top and the ankle never gets asked to hold you there.",
          "cue": "Push the floor, don’t pull the leg.", "video": null }
      ],
      "drillIds": ["drill.eccentric-heel-drops"], "video": null,
      "progressesTo": ["tech.pointe-rise"], "progressesFrom": [], "relatedTechniqueIds": ["tech.tendu"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pas-de-bourree-pique", "name": "Pas de bourrée piqué", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "Three sharp transfers on the balls of the feet, and you hear whether they are even before you see it. Each one has to be a real weight change onto a lifted heel, not a toe touching down on the way past.",
      "corrections": [
        { "id": "corr.pas-de-bourree-pique.flat-first-step", "ordinal": 1, "faultId": "fault.flat-landing",
          "symptom": "Landing flat on the first step",
          "fix": "Arrive on the ball of the foot with the heel lifted, then transfer. Flat feet turn a piqué into a walk.",
          "cue": "Tip of the foot first.", "video": null },
        { "id": "corr.pas-de-bourree-pique.uneven-three", "ordinal": 2, "faultId": "fault.uneven-transfer",
          "symptom": "The three steps come out uneven",
          "fix": "Count them out loud — one, two, three, equal weight. Uneven bourrées usually mean the second step is rushed to catch the music.",
          "cue": "Three of the same, not one and a half.", "video": null },
        { "id": "corr.pas-de-bourree-pique.body-left-behind", "ordinal": 3, "faultId": "fault.travel-drift",
          "symptom": "The feet travel but the body stays put",
          "fix": "Send your weight forward onto each foot as it arrives, so you finish standing over the third step instead of reaching back towards it. When only the feet move, the last transfer has almost nothing on it, and whatever comes next has to start from behind your own balance.",
          "cue": "Travel with your feet, not after them.", "video": null }
      ],
      "drillIds": ["drill.ball-of-foot-placement"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pirouette-en-dehors", "name": "Pirouette en dehors", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.turns", "tracks": [],
      "why": "Everything you have already learned arrives here at once — a plié to push from, a retiré that holds its shape, and a head that snaps. A clean single beats a wobbly double, because the double is only the single done twice.",
      "corrections": [
        { "id": "corr.pirouette-en-dehors.lost-spot", "ordinal": 1, "faultId": "fault.lost-spot",
          "symptom": "Losing the spot halfway round",
          "fix": "Pick something at your own eye height and let the head arrive last and leave first. Practise the head alone before adding the turn.",
          "cue": "Eyes lead, head follows, body last.", "video": null },
        { "id": "corr.pirouette-en-dehors.hip-drop", "ordinal": 2, "faultId": "fault.hip-hike",
          "symptom": "The supporting hip drops",
          "fix": "Lift out of the standing hip before you turn, not during. If the hip sits, the whole turn travels.",
          "cue": "Grow before you go.", "video": null },
        { "id": "corr.pirouette-en-dehors.open-arms", "ordinal": 3, "faultId": "fault.borrowed-momentum",
          "symptom": "Arms open on the way round",
          "fix": "Close first position on the preparation and keep the elbows in your own vision. Open arms are borrowed momentum.",
          "cue": "Hug the turn.", "video": null }
      ],
      "drillIds": ["drill.quarter-turn-spotting"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.chaines"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.assemble", "name": "Assemblé", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "The legs must meet in the air, not on the floor. A whole grade of jumps sits on this.",
      "corrections": [
        { "id": "corr.assemble.late-join", "ordinal": 1, "faultId": "fault.late-beat",
          "symptom": "The legs join after landing",
          "fix": "Beat the legs together at the top of the jump. Slow it down at the barre until the meeting happens in the air.",
          "cue": "Meet in the air, land as one.", "video": null },
        { "id": "corr.assemble.stiff-knee", "ordinal": 2, "faultId": "fault.stiff-landing",
          "symptom": "Landing with a stiff knee",
          "fix": "Roll through the toe, ball, heel and let the plié absorb it. Loud landings are unabsorbed landings.",
          "cue": "Quiet feet.", "video": null },
        { "id": "corr.assemble.loose-fifth", "ordinal": 3, "faultId": "fault.loose-close",
          "symptom": "The legs meet, but not in a real fifth",
          "fix": "Land with the front foot crossed properly over the back one and both heels down. The fifth you land in is the fifth the next jump has to leave from, so a landing that arrives approximately quietly lowers the standard of everything that follows it in the enchaînement.",
          "cue": "Land the position you jumped for.", "video": null }
      ],
      "drillIds": ["drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.developpe-devant", "name": "Développé devant", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "Unfolding, not lifting. The height is a by-product of control and turnout.",
      "corrections": [
        { "id": "corr.developpe-devant.hip-lift", "ordinal": 1, "faultId": "fault.hip-hike",
          "symptom": "The hip lifts to raise the leg",
          "fix": "Keep both hips level and stop the leg where the hip stays down. A lower honest extension scores higher than a hitched one.",
          "cue": "Level hips win.", "video": null },
        { "id": "corr.developpe-devant.jerky-unfold", "ordinal": 2, "faultId": "fault.loss-of-control",
          "symptom": "The leg jerks open",
          "fix": "Pass through a clean retiré and unfold in one smooth line. Practise with the hand on the barre and no mirror.",
          "cue": "Unfold like a fan.", "video": null },
        { "id": "corr.developpe-devant.leaning-back", "ordinal": 3, "faultId": "fault.leaning-back",
          "symptom": "The body leans back as the leg rises",
          "fix": "Keep the weight forward over the standing foot and stop the leg at the height where you can still stand up straight. Leaning back moves your ribs away from your hips to buy the last few inches, and inches bought that way vanish the moment the step has to travel out of the shape.",
          "cue": "Stay over your standing foot.", "video": null }
      ],
      "drillIds": ["drill.hipflexor-hamstring-set"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.arabesque"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.arabesque", "name": "Arabesque line", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.performance", "tracks": [],
      "why": "The photograph shape of ballet. Line, not height — and the audience reads the back before the leg.",
      "corrections": [
        { "id": "corr.arabesque.supporting-collapse", "ordinal": 1, "faultId": "fault.standing-side-collapse",
          "symptom": "Collapsing in the supporting side",
          "fix": "Lift up out of the standing hip and lengthen the front of the body as the leg goes back. When the supporting side sinks, the leg is being held up by the lower back instead of by the leg you are standing on — and the line breaks at exactly the point everyone is looking at.",
          "cue": "Long in front, lifted behind.", "video": null },
        { "id": "corr.arabesque.shoulder-twist", "ordinal": 2, "faultId": "fault.shoulder-twist",
          "symptom": "Shoulders twist to square the hips",
          "fix": "Keep the shoulders facing where the front arm points and let the line travel up the spine. Twisting the shoulders is the body squaring itself somewhere cheaper than the hip, and it splits one long diagonal into two shapes that argue with each other.",
          "cue": "One long diagonal.", "video": null },
        { "id": "corr.arabesque.rolled-in-leg", "ordinal": 3, "faultId": "fault.turnout-loss",
          "symptom": "The back leg rolls in so the knee faces the floor",
          "fix": "Turn the working leg out from the top of the thigh until the inside of the knee faces the side wall, and take the height back down until it stays there. A rolled-in leg goes higher because it has stopped being an arabesque — the hip has opened behind you, and the leg reads as lifted rather than placed.",
          "cue": "Knee to the side, even if it costs height.", "video": null }
      ],
      "drillIds": ["drill.upper-back-holds"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.developpe-devant"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.kick-line", "name": "Kick line", "aka": [],
      "styleId": "style.musical-theatre", "categoryId": "cat.jumps", "tracks": [],
      "why": "Unison over height, every time. In a line of eight, the lowest kick sets the level.",
      "corrections": [
        { "id": "corr.kick-line.max-height", "ordinal": 1, "faultId": "fault.unison-break",
          "symptom": "Kicking as high as you can",
          "fix": "Match the person beside you, not your own maximum. Uniform beats impressive in a line.",
          "cue": "Same height, same time.", "video": null },
        { "id": "corr.kick-line.leaning-back", "ordinal": 2, "faultId": "fault.leaning-back",
          "symptom": "Leaning back to get height",
          "fix": "Keep the chest lifted over the hips and lower the kick until you can. A leaning line reads as a tired line.",
          "cue": "Stay tall, take the lower kick.", "video": null },
        { "id": "corr.kick-line.early-kick", "ordinal": 3, "faultId": "fault.rushing-tempo",
          "symptom": "The kick arrives before the count",
          "fix": "Let the leg leave on the beat and arrive on the beat, watching the person beside you rather than the music running in your head. Early kicks spread down a line — one dancer ahead of the count pulls the two either side of her, and within four bars the line has stopped being one thing.",
          "cue": "Kick on the count, not before it.", "video": null }
      ],
      "drillIds": ["drill.wall-kick-set"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.fan-kick"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.fosse-isolations", "name": "Fosse isolations", "aka": [],
      "styleId": "style.musical-theatre", "categoryId": "cat.performance", "tracks": [],
      "why": "Everything still except the one thing moving. The stillness is the technique.",
      "corrections": [
        { "id": "corr.fosse-isolations.whole-body", "ordinal": 1, "faultId": "fault.diffuse-isolation",
          "symptom": "The whole body joins in",
          "fix": "Anchor the ribs and move one joint only. If the head bobs, you have borrowed the movement from somewhere else.",
          "cue": "One part moves, the rest waits.", "video": null },
        { "id": "corr.fosse-isolations.too-soft", "ordinal": 2, "faultId": "fault.tone-mismatch",
          "symptom": "Playing it soft and pretty",
          "fix": "Fosse is angular and precise, so finish each isolation with a sharp stop rather than a fade. The stop is what makes the shape visible at all — a movement that eases out leaves the eye nothing to catch, and in this style the edges are the whole point.",
          "cue": "Stop on the beat, not after it.", "video": null },
        { "id": "corr.fosse-isolations.absent-face", "ordinal": 3, "faultId": "fault.dropped-eyeline",
          "symptom": "The face is left out of it",
          "fix": "Decide where the eyes are going before you start, then take the head there deliberately and hold it as still as the ribs. Here the face is one more isolation, and eyes that drift tell an audience exactly which part of your body you are still having to think about.",
          "cue": "The eyes are part of the shape.", "video": null }
      ],
      "drillIds": ["drill.mirror-isolations"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.step-ball-change", "name": "Step ball change", "aka": [],
      "styleId": "style.musical-theatre", "categoryId": "cat.performance", "tracks": [],
      "why": "The workhorse. If the rhythm is clean here, the whole number sits on the music.",
      "corrections": [
        { "id": "corr.step-ball-change.flat-ball", "ordinal": 1, "faultId": "fault.flat-landing",
          "symptom": "Landing flat on the ball change",
          "fix": "Stay on the ball of the foot with the heel off the floor. Flat feet swallow the rhythm.",
          "cue": "Light, light, down.", "video": null },
        { "id": "corr.step-ball-change.rushing", "ordinal": 2, "faultId": "fault.rushing-tempo",
          "symptom": "Rushing the change",
          "fix": "The change is on the beat, the ball is before it. Count it out loud until your body agrees.",
          "cue": "And-a-one, not one-two-three.", "video": null },
        { "id": "corr.step-ball-change.creeping", "ordinal": 3, "faultId": "fault.travel-drift",
          "symptom": "It creeps forward across the floor",
          "fix": "Keep the ball change directly underneath you and put all the travel into the step itself. It creeps because the ball change is being used to steal an extra half-step forward, and eight of those leave you a metre off your mark with the next phrase already starting.",
          "cue": "Change under you, travel on the step.", "video": null }
      ],
      "drillIds": ["drill.rhythm-clap-through"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.chasse-pivot", "name": "Chassé pivot turn", "aka": [],
      "styleId": "style.musical-theatre", "categoryId": "cat.turns", "tracks": [],
      "why": "A turn that has to cover ground and still leave you facing the front. It is two jobs bolted together, and whichever one you think about second is the one that goes wrong.",
      "corrections": [
        { "id": "corr.chasse-pivot.lost-direction", "ordinal": 1, "faultId": "fault.travel-drift",
          "symptom": "The pivot loses the direction of travel",
          "fix": "Commit the chassé all the way downstage before the pivot begins, and turn late rather than early. Starting to turn while you are still travelling bends the path into a curve, so you arrive somewhere near where you were going instead of on it.",
          "cue": "Travel first, turn second.", "video": null },
        { "id": "corr.chasse-pivot.off-centre", "ordinal": 2, "faultId": "fault.lost-spot",
          "symptom": "Finishing off-centre",
          "fix": "Spot the front wall through the pivot and close the feet directly under your hips, not behind them. Feet that land behind the hips leave your weight trailing, and a pivot turning on trailing weight always runs out a quarter short of the front.",
          "cue": "Find front, then finish.", "video": null },
        { "id": "corr.chasse-pivot.no-plie", "ordinal": 3, "faultId": "fault.rushed-preparation",
          "symptom": "No bend in the chassé",
          "fix": "Let the knee bend into the chassé so the floor is what pushes you round. Without it there is nothing to turn on, so the shoulders start the pivot instead — and shoulders that start a turn also stop it, usually about three-quarters of the way through.",
          "cue": "Bend into the travel.", "video": null }
      ],
      "drillIds": ["drill.corner-travel"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.chaines"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.jazz-square", "name": "Jazz square", "aka": [],
      "styleId": "style.jazz", "categoryId": "cat.performance", "tracks": [],
      "why": "Four corners, four clear weight changes. It should look drawn, not scuffed.",
      "corrections": [
        { "id": "corr.jazz-square.collapse", "ordinal": 1, "faultId": "fault.shape-collapse",
          "symptom": "The square collapses into a shuffle",
          "fix": "Cross deliberately and place each foot on its corner. Slow it to half time and rebuild the shape.",
          "cue": "Draw the corners.", "video": null },
        { "id": "corr.jazz-square.hip-lock", "ordinal": 2, "faultId": "fault.hip-lock",
          "symptom": "Hips lock up",
          "fix": "Let the hips answer the weight change instead of holding still — jazz lives in the weight shift.",
          "cue": "Weight moves, hips reply.", "video": null },
        { "id": "corr.jazz-square.watching-feet", "ordinal": 3, "faultId": "fault.dropped-eyeline",
          "symptom": "Watching your own feet the whole way round",
          "fix": "Walk the pattern slowly until you can do it without looking, then take the eyes up and out. Looking down tips the chest forward over the feet, which shortens every one of the four steps — so the square you are drawing gets smaller the longer you watch it.",
          "cue": "Eyes up, feet know the way.", "video": null }
      ],
      "drillIds": ["drill.tape-square"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.chaines", "name": "Jazz chaînés", "aka": ["Chaîné turns"],
      "styleId": "style.jazz", "categoryId": "cat.turns", "tracks": [],
      "why": "Same step as the classical one, doing a different job. Here it is transport — fast, low and travelling, covering the floor between one shape and the next without ever leaving the line.",
      "corrections": [
        { "id": "corr.chaines.drift", "ordinal": 1, "faultId": "fault.travel-drift",
          "symptom": "Drifting off the line",
          "fix": "Tape a line and pick the spot at the far end of it before you start. In a jazz number these turns are getting you somewhere on a count, so a curved line does not just look untidy — it puts you in the wrong place for the next shape.",
          "cue": "Tiny feet, straight road.", "video": null },
        { "id": "corr.chaines.dizziness", "ordinal": 2, "faultId": "fault.lost-spot",
          "symptom": "Dizziness by the fourth turn",
          "fix": "Spot one point at the end of the line and snap the head, rather than letting it drag round. Dizziness is the head having been dragged, not the body having turned — the dancers who do eight of these at speed are spotting harder, not turning less.",
          "cue": "Snap, don’t swim.", "video": null },
        { "id": "corr.chaines.shrinking-travel", "ordinal": 3, "faultId": "fault.rushing-tempo",
          "symptom": "The turns get smaller and slower down the line",
          "fix": "Decide how far the line has to take you and take equal steps the whole way, rather than starting big and running out. Jazz chaînés are transport as much as technique — turns that shrink leave you short of the mark with counts still to fill.",
          "cue": "Every turn goes the same distance.", "video": null }
      ],
      "drillIds": ["drill.line-tape-chaines"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.jazz-pirouette"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": { "ballet": "tech.chaines-ballet" },
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.fan-kick", "name": "Fan kick", "aka": [],
      "styleId": "style.jazz", "categoryId": "cat.flexibility", "tracks": [],
      "why": "One big circle drawn with a straight leg, and it only reads if the side you are standing on stays completely quiet. The shape is in the working leg; the technique is all in the other one.",
      "corrections": [
        { "id": "corr.fan-kick.standing-knee", "ordinal": 1, "faultId": "fault.standing-side-collapse",
          "symptom": "The standing knee bends and the body sinks",
          "fix": "Press the standing foot into the floor and lengthen up as the working leg travels. Lower the kick to keep the height in your body.",
          "cue": "Grow on the standing side.", "video": null },
        { "id": "corr.fan-kick.rushed-arc", "ordinal": 2, "faultId": "fault.rushing-tempo",
          "symptom": "Rushing the arc",
          "fix": "Draw the whole circle rather than a straight kick with a curve stuck on the end, slowly enough that someone watching could trace the path. Rush it and the arc collapses into a diagonal, because the leg takes the shortest route the moment you stop giving it the time to go the long way.",
          "cue": "Paint the circle.", "video": null },
        { "id": "corr.fan-kick.tipping-torso", "ordinal": 3, "faultId": "fault.leaning-back",
          "symptom": "The body tips away from the leg",
          "fix": "Hold the chest over the hips and take the kick lower until you can keep it there. Tipping back swings the leg up as a counterweight instead of lifting it, and a leg thrown that way arrives at the top of the arc with nothing steering it.",
          "cue": "Chest stays where it is.", "video": null }
      ],
      "drillIds": ["drill.standing-leg-hold"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.kick-line"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.layout", "name": "Layout", "aka": [],
      "styleId": "style.jazz", "categoryId": "cat.performance", "tracks": [],
      "why": "A back-bend on one leg. Strength first, shape second — it is a core move dressed as a flexibility one.",
      "corrections": [
        { "id": "corr.layout.lumbar-only", "ordinal": 1, "faultId": "fault.lumbar-only-extension",
          "symptom": "Bending from the lower back only",
          "fix": "Spread the curve through the upper back and ribs with the abdominals switched on the whole way. Bending from the lower back alone stacks the entire range into a few small joints that were never built to take it, which is why this one tends to hurt weeks later rather than on the day.",
          "cue": "Bend high, brace low.", "video": null },
        { "id": "corr.layout.wandering-leg", "ordinal": 2, "faultId": "fault.standing-side-collapse",
          "symptom": "The standing leg wanders",
          "fix": "Root the standing foot and keep the hip pressing forward. Build it slowly — this one is a strength move.",
          "cue": "Anchor, then arch.", "video": null },
        { "id": "corr.layout.cold-range", "ordinal": 3, "faultId": "fault.rushed-preparation",
          "symptom": "Going for the full shape cold",
          "fix": "Warm the upper back and switch the abdominals on before you take any range at all, and let the depth build over weeks rather than in one class. This is a strength move wearing a flexibility move’s clothes — take the shape before the strength is there and the back ends up carrying the load the muscles were supposed to.",
          "cue": "Strength first, shape later.", "video": null }
      ],
      "drillIds": ["drill.core-back-prep"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": [],
      "safety": { "riskLevel": "high", "requiresSupervision": true, "requiresCapabilityIds": ["cap.core-back-control"],
                  "note": "Build the strength before you chase the shape. Wait until a teacher has seen you and cleared this one — it is not for practising alone." },
      "aliases": [],
      "levelSecureId": null, "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },

    {
      "id": "tech.degage", "name": "Dégagé", "aka": ["Battement dégagé", "Battement glissé"],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "A tendu that keeps going until the foot leaves the floor. It is the step where the brush becomes a jump: nothing you do in the air later — glissade, assemblé, grand battement — is better than the dégagé it grows out of.",
      "corrections": [
        { "id": "corr.degage.lifting-not-brushing", "ordinal": 1, "faultId": "fault.borrowed-momentum",
          "symptom": "The foot is lifted off the floor instead of brushed off it",
          "fix": "Press the foot along the floor through a full tendu and let the height happen at the end of the brush, not at the start of it. A lifted dégagé is the thigh doing the work, and the thigh cannot move fast enough for what comes next.",
          "cue": "Brush it off the floor.", "video": null },
        { "id": "corr.degage.toes-leave-first", "ordinal": 2, "faultId": "fault.toe-curl",
          "symptom": "The toes leave the floor before the heel has finished pushing",
          "fix": "Send the heel forward and let the ball of the foot be the last thing to leave. If the toes go first they curl to reach for the point, and the arch never gets to do its half of the movement.",
          "cue": "Heel pushes, toes leave last.", "video": null },
        { "id": "corr.degage.creeping-height", "ordinal": 3, "faultId": "fault.hip-hike",
          "symptom": "The dégagé climbs higher every repetition",
          "fix": "Pick the height at the start — low, just clear of the floor — and hold the same one for all eight. When the height creeps, it is the hip that is buying it, and the return stops passing through the floor at all.",
          "cue": "Same height, all eight.", "video": null }
      ],
      "drillIds": ["drill.degage-height-check", "drill.theraband-points"], "video": null,
      "progressesTo": ["tech.grand-battement", "tech.battement-frappe"], "progressesFrom": ["tech.tendu"],
      "relatedTechniqueIds": ["tech.tendu", "tech.grand-battement"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g4", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] },
      "status": "published"
    },
    {
      "id": "tech.pointe-rise", "name": "Rise to pointe at the barre", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": ["pre-pointe"],
      "why": "Everything in the pre-pointe track is preparation for this. It is a strength milestone, not a costume change.",
      "corrections": [], "drillIds": ["drill.slow-releve-barre", "drill.eccentric-heel-drops"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.releve"], "relatedTechniqueIds": ["tech.releve"],
      "safety": { "riskLevel": "high", "requiresSupervision": true,
                  "requiresCapabilityIds": ["cap.releve-control", "cap.arch-strength"],
                  "note": "Pointe work belongs in class, with a teacher who has assessed you in person. This page is here so you can read about it — it is not something to practise from." },
      "aliases": [],
      "levelSecureId": "lvl.rad.inter-foundation", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 1, "missing": ["corrections", "video", "quiz"] },
      "status": "published",
      "_note": "SEED RECORD — tier 1. Demonstrates the safety gate in §3.5: no dancer-side override, capabilities must be attested by an adult."
    },

    {
      "id": "tech.plie", "name": "Plié", "aka": ["Demi-plié", "Grand plié"],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "Every jump leaves from a plié and lands in one, and every turn starts in one. Nothing built on top of it can be better than the plié underneath it.",
      "corrections": [
        { "id": "corr.plie.heel-lift", "ordinal": 1, "faultId": "fault.heel-lift",
          "symptom": "The heels peel off the floor in demi-plié",
          "fix": "Stop the demi-plié at the depth where both heels still hold the floor, and go down slowly enough to feel them. Once a heel lifts, the push-off has been handed to the calf and there is nothing to jump from.",
          "cue": "Heels glued, knees wide.", "video": null },
        { "id": "corr.plie.knee-track", "ordinal": 2, "faultId": "fault.knee-track",
          "symptom": "The knees fall inside the line of the feet",
          "fix": "Send each knee out over the middle of its own foot, and hold the turnout from the top of the thigh rather than by twisting the feet. Knees inside the feet is where the strain lands, and it does not stay a technique problem for long.",
          "cue": "Open the knees, not the feet.", "video": null },
        { "id": "corr.plie.sitting", "ordinal": 3, "faultId": "fault.sitting-in-plie",
          "symptom": "Sitting at the bottom of a grand plié",
          "fix": "Treat the bottom as the moment you change direction, not a place you arrive at. The way up starts before the way down has finished, and the heels come back to the floor first.",
          "cue": "Pass through the bottom.", "video": null }
      ],
      "drillIds": ["drill.slow-plie-count", "drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.releve", "tech.assemble"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.rond-de-jambe-a-terre", "name": "Rond de jambe à terre", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "The step that teaches the hip to move on its own while everything else stays exactly where you put it. Half a class of turnout work is hiding in it.",
      "corrections": [
        { "id": "corr.rond-de-jambe-a-terre.hip-swing", "ordinal": 1, "faultId": "fault.hip-hike",
          "symptom": "The hip travels round with the foot",
          "fix": "Keep both hipbones facing the same wall the whole way round and let the leg rotate in the socket instead. Make the circle smaller until the hips can hold still — the size is worth nothing if the hips pay for it.",
          "cue": "Small circle, still hips.", "video": null },
        { "id": "corr.rond-de-jambe-a-terre.turn-in", "ordinal": 2, "faultId": "fault.turnout-loss",
          "symptom": "The leg turns in as it travels behind",
          "fix": "Lead with the heel going forward and with the toe coming back, thinking of showing the inside of the knee to the side wall as the leg passes. Rotation is lost at the top of the thigh, never at the foot.",
          "cue": "Take the heel round.", "video": null },
        { "id": "corr.rond-de-jambe-a-terre.uneven-speed", "ordinal": 3, "faultId": "fault.rushing-tempo",
          "symptom": "Racing the front half and dragging the back",
          "fix": "Keep the same speed and the same weight on the floor all the way through. Even pressure through the toe is what makes the circle look round.",
          "cue": "Same speed all the way round.", "video": null }
      ],
      "drillIds": ["drill.rdj-hip-check"], "video": null,
      "progressesTo": ["tech.rond-de-jambe-en-lair"], "progressesFrom": [], "relatedTechniqueIds": ["tech.battement-fondu"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g4", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.battement-fondu", "name": "Battement fondu", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "Fondu means melting, and it is the hardest thing at the barre to make look easy — two legs bending and stretching at exactly the same rate.",
      "corrections": [
        { "id": "corr.battement-fondu.out-of-time", "ordinal": 1, "faultId": "fault.loss-of-control",
          "symptom": "The supporting leg straightens before the working leg arrives",
          "fix": "The two legs bend together and arrive together. Say “bend-bend, stretch-stretch” out loud until the timing sits in your body — if the standing leg finishes first, the extension has nothing underneath it.",
          "cue": "Two legs, one clock.", "video": null },
        { "id": "corr.battement-fondu.knee-in", "ordinal": 2, "faultId": "fault.knee-track",
          "symptom": "The supporting knee rolls inward as it bends",
          "fix": "Track the knee over the middle of the foot and keep the weight off the inside edge. This is the moment where fondu quietly turns into an ankle problem.",
          "cue": "Knee over the shoelaces.", "video": null },
        { "id": "corr.battement-fondu.thigh-drops", "ordinal": 3, "faultId": "fault.turnout-loss",
          "symptom": "The working thigh gives up its rotation as it unfolds",
          "fix": "Hold the rotation from the top of the thigh all the way through the unfolding, and stop the extension at the height where you still have it. A lower fondu with the knee still facing the side is the harder one to do.",
          "cue": "Keep the knee facing the side.", "video": null }
      ],
      "drillIds": ["drill.fondu-both-knees"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.developpe-devant", "tech.plie"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.battement-frappe", "name": "Battement frappé", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "The one step at the barre allowed to be sharp. Everything else is asking for smooth — this is asking for strike and finish.",
      "corrections": [
        { "id": "corr.battement-frappe.whole-leg", "ordinal": 1, "faultId": "fault.sympathy-movement",
          "symptom": "The whole leg swings from the hip",
          "fix": "The thigh stays completely still and only the lower leg opens. Rest a hand on the working thigh — if the hand feels movement, the strike is coming from the wrong joint.",
          "cue": "Knee still, foot fast.", "video": null },
        { "id": "corr.battement-frappe.soft-accent", "ordinal": 2, "faultId": "fault.tone-mismatch",
          "symptom": "The foot arrives with no accent",
          "fix": "The accent is out, not in. Strike out to a fully stretched foot and make the return the quiet half of the movement. A frappé with the accent inward reads as a nervous tendu.",
          "cue": "Sharp out, quiet home.", "video": null },
        { "id": "corr.battement-frappe.sickle-return", "ordinal": 3, "faultId": "fault.sickling",
          "symptom": "The foot sickles coming back to cou-de-pied",
          "fix": "Wrap the foot with the heel forward and the little toe back so the ankle keeps its shape under speed. The step happens fast, which is precisely why a sloppy cou-de-pied can hide inside it.",
          "cue": "Heel forward, even at speed.", "video": null }
      ],
      "drillIds": ["drill.frappe-thigh-check"], "video": null,
      "progressesTo": ["tech.petit-battement"], "progressesFrom": [], "relatedTechniqueIds": ["tech.degage"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.petit-battement", "name": "Petit battement sur le cou-de-pied", "aka": ["Petit battement"],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "Tiny, fast and completely honest. It shows in about four counts whether your ankle and your thigh can work independently of each other.",
      "corrections": [
        { "id": "corr.petit-battement.wagging-thigh", "ordinal": 1, "faultId": "fault.sympathy-movement",
          "symptom": "The thigh wags along with the foot",
          "fix": "The knee stays out to the side and perfectly still; only the lower leg opens and closes. Slow it down until the thigh stops helping, then bring the speed back in stages.",
          "cue": "The hinge holds, the door swings.", "video": null },
        { "id": "corr.petit-battement.closing-knee", "ordinal": 2, "faultId": "fault.turnout-loss",
          "symptom": "The knee closes in as the tempo rises",
          "fix": "Take the tempo back down to where you can hold the rotation, then build up again. Speed bought with a turned-in knee is not speed you can use in the centre.",
          "cue": "Slower and open beats fast and closed.", "video": null },
        { "id": "corr.petit-battement.lazy-wrap", "ordinal": 3, "faultId": "fault.sickling",
          "symptom": "The wrapped foot loses its shape",
          "fix": "Keep the heel pressing forward of the ankle bone, front and back. Cou-de-pied is a shape you hold, not a place the foot happens to end up.",
          "cue": "Wrap it, don’t rest it.", "video": null }
      ],
      "drillIds": ["drill.cou-de-pied-shape"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.battement-frappe"], "relatedTechniqueIds": ["tech.battement-frappe"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g7", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.grand-battement", "name": "Grand battement", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "The height is a by-product. The step is really about throwing one leg and losing absolutely nothing else while you do it.",
      "corrections": [
        { "id": "corr.grand-battement.body-tips", "ordinal": 1, "faultId": "fault.leaning-back",
          "symptom": "The body tips away from the leg",
          "fix": "Keep the weight forward over the standing foot and let the leg come down before the body moves at all. A grand battement that shifts your torso has cost more than the height was worth.",
          "cue": "Leg goes, body stays.", "video": null },
        { "id": "corr.grand-battement.dropping", "ordinal": 2, "faultId": "fault.loss-of-control",
          "symptom": "The leg drops on the way down",
          "fix": "Come down at half the speed you went up, brushing through tendu, and place the foot rather than letting it land. The controlled return is what builds next month's height.",
          "cue": "Throw it, don’t drop it.", "video": null },
        { "id": "corr.grand-battement.hip-buys-height", "ordinal": 3, "faultId": "fault.hip-hike",
          "symptom": "The hip lifts to buy the last few inches",
          "fix": "Stop at the height where the hip stays down and spend the extra effort keeping the standing side long. A level hip reads higher than a hitched one, every time.",
          "cue": "Lower and level.", "video": null }
      ],
      "drillIds": ["drill.battement-brush-through", "drill.hipflexor-hamstring-set"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.degage"], "relatedTechniqueIds": ["tech.developpe-devant"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.echappe-releve", "name": "Échappé relevé", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": ["pre-pointe"],
      "why": "Two feet out, two feet in, and all of it judged on whether they arrive together. It is also the strongest ankle work the barre gives you.",
      "corrections": [
        { "id": "corr.echappe-releve.one-at-a-time", "ordinal": 1, "faultId": "fault.uneven-transfer",
          "symptom": "One foot arrives before the other",
          "fix": "Both feet leave and land on the same beat with the weight split evenly. Do it facing the barre with your eyes shut and listen — one sound means they arrived together.",
          "cue": "One sound, not two.", "video": null },
        { "id": "corr.echappe-releve.rolling-out", "ordinal": 2, "faultId": "fault.rolling-out",
          "symptom": "Rolling out at the top of the rise",
          "fix": "Aim the weight over the first two toes on both feet, and rise slightly lower until it stays there. Rolling out under speed is how ankles get hurt.",
          "cue": "Big toes take the weight.", "video": null },
        { "id": "corr.echappe-releve.approximate-close", "ordinal": 3, "faultId": "fault.loose-close",
          "symptom": "The close is only approximately the position",
          "fix": "Close into the position you started from and check it before you go again. A close that lands short every time slowly becomes what your fifth looks like.",
          "cue": "Finish the position.", "video": null }
      ],
      "drillIds": ["drill.echappe-one-sound", "drill.slow-releve-barre"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.releve"], "relatedTechniqueIds": ["tech.releve", "tech.plie"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.rond-de-jambe-en-lair", "name": "Rond de jambe en l’air", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "The thigh holds a shelf at 45 degrees and the lower leg draws an oval underneath it. All of it depends on the shelf not moving.",
      "corrections": [
        { "id": "corr.rond-de-jambe-en-lair.moving-thigh", "ordinal": 1, "faultId": "fault.sympathy-movement",
          "symptom": "The thigh swings with the oval",
          "fix": "Set the knee where you want it and refuse to let it move — the oval belongs to the lower leg alone. Rest a hand under the thigh at the barre and you will feel it drop long before you see it.",
          "cue": "Hold the shelf.", "video": null },
        { "id": "corr.rond-de-jambe-en-lair.knee-in", "ordinal": 2, "faultId": "fault.turnout-loss",
          "symptom": "The knee turns in as the leg opens",
          "fix": "Hold the rotation at the hip so the inside of the knee keeps facing upward. If it will not stay, make the oval smaller rather than letting the knee close.",
          "cue": "Small oval, open knee.", "video": null },
        { "id": "corr.rond-de-jambe-en-lair.flat-shape", "ordinal": 3, "faultId": "fault.shape-collapse",
          "symptom": "The oval flattens into a straight in-and-out",
          "fix": "Draw the shape properly — out, around and back to the same point. The curve is the step; without it you are only bending and stretching a knee in the air.",
          "cue": "Draw the oval, don’t fold it.", "video": null }
      ],
      "drillIds": ["drill.rdj-air-shelf"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.rond-de-jambe-a-terre"], "relatedTechniqueIds": ["tech.rond-de-jambe-a-terre"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.inter-foundation", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.cambre", "name": "Cambré", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "A bend that has to come from the whole spine. Done well it makes your back stronger; done from one place it just makes it sore.",
      "corrections": [
        { "id": "corr.cambre.lumbar-hinge", "ordinal": 1, "faultId": "fault.lumbar-only-extension",
          "symptom": "Bending from the lower back alone",
          "fix": "Lift up out of the hips first, then spread the curve from the top of the spine downward. The height you make before you bend is what keeps the low back out of trouble.",
          "cue": "Up first, then over.", "video": null },
        { "id": "corr.cambre.held-breath", "ordinal": 2, "faultId": "fault.held-breath",
          "symptom": "Holding your breath through the bend",
          "fix": "Breathe out going over and in coming up. A held breath locks the ribs, and locked ribs turn a spine that should curve into a single hinge.",
          "cue": "Breathe out over the top.", "video": null },
        { "id": "corr.cambre.hips-travel", "ordinal": 3, "faultId": "fault.standing-side-collapse",
          "symptom": "The hips travel to balance the bend",
          "fix": "Keep the hips stacked over the feet and take a smaller range. A cambré with the hips pushed forward has stopped being a back bend and become a hip stretch.",
          "cue": "Hips home, spine long.", "video": null }
      ],
      "drillIds": ["drill.roll-down", "drill.upper-back-holds"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.port-de-bras"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },

    {
      "id": "tech.port-de-bras", "name": "Port de bras", "aka": ["Positions of the arms"],
      "styleId": "style.ballet", "categoryId": "cat.performance", "tracks": [],
      "why": "The arms carry the whole line out to the audience, and they are the last thing most dancers practise — which makes them the quickest thing you can improve.",
      "corrections": [
        { "id": "corr.port-de-bras.dropped-elbow", "ordinal": 1, "faultId": "fault.dropped-elbow",
          "symptom": "The elbow drops and the line breaks",
          "fix": "Hold one soft curve from the shoulder blade through the elbow to the fingertips, with the elbow a little higher than the wrist. The support comes from underneath the arm, not from lifting the shoulder.",
          "cue": "Lift under the elbow.", "video": null },
        { "id": "corr.port-de-bras.snapping", "ordinal": 2, "faultId": "fault.rushing-tempo",
          "symptom": "The arms snap between the positions",
          "fix": "Move through the space between the positions and arrive with the music rather than ahead of it. The travelling is the port de bras; the positions are only the punctuation.",
          "cue": "Travel, then arrive.", "video": null },
        { "id": "corr.port-de-bras.eyes-down", "ordinal": 3, "faultId": "fault.dropped-eyeline",
          "symptom": "The eyes follow the floor",
          "fix": "Send the head and eyes with the hand, so the audience looks where you are looking. Eyes down closes the whole shape and makes even a correct arm look apologetic.",
          "cue": "Eyes go with the hand.", "video": null }
      ],
      "drillIds": ["drill.mirror-port-de-bras"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.epaulement", "tech.cambre"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.epaulement", "name": "Épaulement", "aka": ["Croisé and effacé"],
      "styleId": "style.ballet", "categoryId": "cat.performance", "tracks": [],
      "why": "The angle of the shoulders and head that turns a correct step into a danced one. Croisé and effacé are the difference between a photograph and a person.",
      "corrections": [
        { "id": "corr.epaulement.square-on", "ordinal": 1, "faultId": "fault.flat-front",
          "symptom": "Standing square when the step asks for a diagonal",
          "fix": "Set the feet to the corner first, then let the shoulders and head follow the front foot. Épaulement is decided before the step starts, not added while it is happening.",
          "cue": "Corner first, then move.", "video": null },
        { "id": "corr.epaulement.head-left-behind", "ordinal": 2, "faultId": "fault.shoulder-twist",
          "symptom": "The shoulders turn and the head stays",
          "fix": "The head travels with the shoulder line and inclines very slightly towards the higher arm. Shoulders that turn without the head just read as a mistake to anyone watching.",
          "cue": "Shoulders and head together.", "video": null },
        { "id": "corr.epaulement.mirror-dependence", "ordinal": 3, "faultId": "fault.dropped-eyeline",
          "symptom": "The angle only exists when you can see it",
          "fix": "Practise the facings away from the mirror so the angle lives in your body rather than in the reflection. Anything learnt only in the mirror disappears the moment you face an audience.",
          "cue": "Feel the angle, don’t check it.", "video": null }
      ],
      "drillIds": ["drill.facing-changes"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.port-de-bras", "tech.pas-de-basque"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.temps-lie", "name": "Temps lié", "aka": ["Transfer of weight"],
      "styleId": "style.ballet", "categoryId": "cat.feet-ankles", "tracks": [],
      "why": "Moving your weight from one leg to the other without anybody seeing the join. Every travelling step in the centre is made out of this one.",
      "corrections": [
        { "id": "corr.temps-lie.dropped-weight", "ordinal": 1, "faultId": "fault.uneven-transfer",
          "symptom": "The weight lands in one drop",
          "fix": "Push through the whole foot — heel, ball, toes — and let the plié carry you across. The transfer should take the entire count, not the last quarter of it.",
          "cue": "Pour the weight, don’t drop it.", "video": null },
        { "id": "corr.temps-lie.no-plie", "ordinal": 2, "faultId": "fault.rushed-preparation",
          "symptom": "Skipping the plié before the transfer",
          "fix": "The plié is the thing that moves you; without it you are left stepping. Take the demi-plié fully and let it push you onto the new leg.",
          "cue": "The plié moves you.", "video": null },
        { "id": "corr.temps-lie.shrinking", "ordinal": 3, "faultId": "fault.travel-drift",
          "symptom": "The step gets shorter every time",
          "fix": "Mark the distance on the floor and reach the same point every repetition. A transfer that shrinks is the body avoiding the moment when neither leg is in charge.",
          "cue": "Same distance, every time.", "video": null }
      ],
      "drillIds": ["drill.weight-transfer-tape"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.plie", "tech.pas-de-basque"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.balance", "name": "Balancé", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.performance", "tracks": [],
      "why": "Three steps that have to sound like a waltz. If all three weigh the same, it is not a balancé yet.",
      "corrections": [
        { "id": "corr.balance.even-three", "ordinal": 1, "faultId": "fault.rushing-tempo",
          "symptom": "The three steps come out even",
          "fix": "Down, up, up — the first step is long and deep, the next two are light and quick. Say it out loud while you dance it until the weight in your feet matches the words.",
          "cue": "Down, up, up.", "video": null },
        { "id": "corr.balance.creeping-forward", "ordinal": 2, "faultId": "fault.travel-drift",
          "symptom": "Travelling forward instead of side to side",
          "fix": "Send the first step properly out to the side and let the body ride over it. A balancé that creeps forward has stopped swinging and started walking.",
          "cue": "Out to the side, then over.", "video": null },
        { "id": "corr.balance.flat-quality", "ordinal": 3, "faultId": "fault.tone-mismatch",
          "symptom": "Dancing it flat",
          "fix": "Let the whole body rise and fall with the step and let the head and arms follow the direction of travel. The lilt is the step — without it the feet are merely correct.",
          "cue": "Let it breathe.", "video": null }
      ],
      "drillIds": ["drill.balance-out-loud"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.pas-de-basque"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pas-de-basque", "name": "Pas de basque", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.performance", "tracks": [],
      "why": "A step that draws half a circle on the floor and changes your weight twice while it does it. Generous, or it disappears completely.",
      "corrections": [
        { "id": "corr.pas-de-basque.no-circle", "ordinal": 1, "faultId": "fault.shape-collapse",
          "symptom": "The circle turns into a step to the side",
          "fix": "Let the leading foot draw a real semicircle out through second before any weight goes onto it. The path along the floor is the step.",
          "cue": "Draw the half circle.", "video": null },
        { "id": "corr.pas-de-basque.swallowed-transfer", "ordinal": 2, "faultId": "fault.uneven-transfer",
          "symptom": "The middle weight change gets swallowed",
          "fix": "Three clear weight changes: out, through, close. Count them at half speed until each one has a moment of its own.",
          "cue": "Three weights, not two.", "video": null },
        { "id": "corr.pas-de-basque.square-on", "ordinal": 3, "faultId": "fault.flat-front",
          "symptom": "Dancing it square to the front",
          "fix": "Take the épaulement with it — shoulders and head follow the direction of travel. Square-on it looks like a walk with a curve added afterwards.",
          "cue": "Take your shoulders with you.", "video": null }
      ],
      "drillIds": ["drill.weight-transfer-tape"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.balance", "tech.epaulement"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.retire-passe", "name": "Retiré / passé", "aka": ["Passé"],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "The shape every turn and half of every adage passes through. Wrong here, and it is wrong in everywhere it travels to.",
      "corrections": [
        { "id": "corr.retire-passe.knee-forward", "ordinal": 1, "faultId": "fault.turnout-loss",
          "symptom": "The knee drifts round to the front",
          "fix": "Hold the knee out to the side from the top of the thigh, with the toe just under the kneecap. When the knee comes forward the hip has closed, and every turn out of that shape will travel.",
          "cue": "Knee to the side wall.", "video": null },
        { "id": "corr.retire-passe.resting-foot", "ordinal": 2, "faultId": "fault.sickling",
          "symptom": "The foot rests against the leg instead of pointing",
          "fix": "Keep the foot fully pointed with the heel pressing forward, touching the leg rather than hanging on it. A resting foot flattens the line of both legs at once.",
          "cue": "Touch the leg, don’t grip it.", "video": null },
        { "id": "corr.retire-passe.hip-lifts", "ordinal": 3, "faultId": "fault.hip-hike",
          "symptom": "The working hip lifts with the knee",
          "fix": "Level the hips and lower the knee slightly until they stay level. Height bought at the hip is exactly what makes a pirouette fall out of its own axis later.",
          "cue": "Two level hips, lower knee.", "video": null }
      ],
      "drillIds": ["drill.retire-hold-check"], "video": null,
      "progressesTo": ["tech.pirouette-en-dehors"], "progressesFrom": [], "relatedTechniqueIds": ["tech.developpe-devant", "tech.pirouette-en-dehors"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g4", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.attitude-derriere", "name": "Attitude derrière", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.flexibility", "tracks": [],
      "why": "An arabesque with a bend in it, and far harder to hold than it looks: the knee has to stay up while the hip stays down.",
      "corrections": [
        { "id": "corr.attitude-derriere.dropped-knee", "ordinal": 1, "faultId": "fault.turnout-loss",
          "symptom": "The knee drops below the foot",
          "fix": "Lift the knee and keep it turned out so the whole leg reads as one designed shape behind you. Once the knee drops, the leg looks like an accident rather than a position.",
          "cue": "Knee up, not just the foot.", "video": null },
        { "id": "corr.attitude-derriere.lumbar-arch", "ordinal": 2, "faultId": "fault.lumbar-only-extension",
          "symptom": "Arching the lower back to lift the leg",
          "fix": "Lengthen the front of the body and let the curve spread through the upper back. Lower back only is where attitude stops being a shape and starts being an injury.",
          "cue": "Lift the front, then the leg.", "video": null },
        { "id": "corr.attitude-derriere.sinking", "ordinal": 3, "faultId": "fault.standing-side-collapse",
          "symptom": "Sinking on the standing side",
          "fix": "Press the standing foot into the floor and lengthen the entire supporting side. Attitude is held up by the leg you are standing on, not by the one in the air.",
          "cue": "Stand up out of the floor.", "video": null }
      ],
      "drillIds": ["drill.upper-back-holds", "drill.hipflexor-hamstring-set"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.retire-passe"], "relatedTechniqueIds": ["tech.arabesque"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },

    {
      "id": "tech.soutenu-en-tournant", "name": "Soutenu en tournant", "aka": ["Soutenu turn"],
      "styleId": "style.ballet", "categoryId": "cat.turns", "tracks": [],
      "why": "The turn that teaches everything a pirouette needs — a tight fifth, a still body and a head that snaps — without asking you to balance on one leg while you learn it.",
      "corrections": [
        { "id": "corr.soutenu-en-tournant.open-legs", "ordinal": 1, "faultId": "fault.loose-close",
          "symptom": "The legs come apart during the turn",
          "fix": "Cross into a tight fifth before you begin and keep both legs pressed together the whole way round. Any daylight between the ankles turns straight into travel.",
          "cue": "Glue the ankles.", "video": null },
        { "id": "corr.soutenu-en-tournant.head-drifts", "ordinal": 2, "faultId": "fault.lost-spot",
          "symptom": "The head drifts round with the body",
          "fix": "Find your spot before you start, leave it last and find it first. Practise the head on its own, standing completely still, before you add any turning.",
          "cue": "Head last, head first.", "video": null },
        { "id": "corr.soutenu-en-tournant.no-plie", "ordinal": 3, "faultId": "fault.rushed-preparation",
          "symptom": "Starting the turn with no plié",
          "fix": "Take a proper demi-plié on the preparation — a turn is powered from the floor. Skip it and the arms end up doing the work, which the shoulders will show to everyone watching.",
          "cue": "Push from the floor.", "video": null }
      ],
      "drillIds": ["drill.tight-fifth-hold", "drill.quarter-turn-spotting"], "video": null,
      "progressesTo": ["tech.pirouette-en-dehors"], "progressesFrom": [], "relatedTechniqueIds": ["tech.pirouette-en-dehors", "tech.chaines"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pirouette-en-dedans", "name": "Pirouette en dedans", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.turns", "tracks": [],
      "why": "The turn that travels towards the supporting leg, and the one that catches most dancers out — the power arrives from the step, not from the arms.",
      "corrections": [
        { "id": "corr.pirouette-en-dedans.arm-whip", "ordinal": 1, "faultId": "fault.borrowed-momentum",
          "symptom": "Whipping the arms round to start it",
          "fix": "The power comes from the step out and the plié; the arms simply close to first and stay there. Arms thrown open start the turn and then stop it a moment later.",
          "cue": "Step it, don’t swing it.", "video": null },
        { "id": "corr.pirouette-en-dedans.sitting-hip", "ordinal": 2, "faultId": "fault.hip-hike",
          "symptom": "The supporting hip sits into the turn",
          "fix": "Lift out of the standing hip on the preparation and keep the standing leg completely straight. A hip that sits sends the whole turn backwards off its spot.",
          "cue": "Stand tall on the way in.", "video": null },
        { "id": "corr.pirouette-en-dedans.reversed-spot", "ordinal": 3, "faultId": "fault.lost-spot",
          "symptom": "The head goes the wrong way",
          "fix": "Turning inward the head still leaves last and arrives first — it is simply travelling the other way. Take four quarter turns in the new direction before you attempt a whole one.",
          "cue": "Same head, new direction.", "video": null }
      ],
      "drillIds": ["drill.quarter-turn-spotting"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.soutenu-en-tournant"], "relatedTechniqueIds": ["tech.pirouette-en-dehors", "tech.pose-turn"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g7", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pose-turn", "name": "Posé turn", "aka": ["Piqué turn"],
      "styleId": "style.ballet", "categoryId": "cat.turns", "tracks": [],
      "why": "A travelling turn that has to arrive on a straight, strong leg every single time. Step onto a soft knee and the turn is finished before it starts.",
      "corrections": [
        { "id": "corr.pose-turn.soft-knee", "ordinal": 1, "faultId": "fault.loss-of-control",
          "symptom": "Stepping onto a bent leg",
          "fix": "Arrive with the standing leg fully straight and the foot directly under the hip. That straight leg is the axis of the turn — anything less and the turn sits down underneath you.",
          "cue": "Straight leg, straight up.", "video": null },
        { "id": "corr.pose-turn.off-line", "ordinal": 2, "faultId": "fault.travel-drift",
          "symptom": "Falling away from the line of travel",
          "fix": "Step directly along your line and close the retiré foot tight to the knee. Wide steps and a loose retiré are the two things that steer you off the track.",
          "cue": "Step down the line.", "video": null },
        { "id": "corr.pose-turn.wrong-spot", "ordinal": 3, "faultId": "fault.lost-spot",
          "symptom": "Spotting the front instead of the direction of travel",
          "fix": "Spot where you are going, not where you are. On a diagonal that means the corner, and the head snaps back to that corner on every single turn.",
          "cue": "Spot where you’re going.", "video": null }
      ],
      "drillIds": ["drill.pose-line-walk", "drill.line-tape-chaines"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.soutenu-en-tournant"], "relatedTechniqueIds": ["tech.chaines-ballet", "tech.pirouette-en-dedans"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g7", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.chaines-ballet", "name": "Chaînés", "aka": ["Tours chaînés", "Déboulés"],
      "styleId": "style.ballet", "categoryId": "cat.turns", "tracks": [],
      "why": "A chain of half-turns along one line, and the classical version asks for the two things that are hardest to keep at speed: a first position with no daylight in it, and a head that finds the same spot twice every revolution.",
      "corrections": [
        { "id": "corr.chaines-ballet.wide-first", "ordinal": 1, "faultId": "fault.loose-close",
          "symptom": "The first position opens out as the turns speed up",
          "fix": "Each half turn only turns you halfway if both feet stay directly underneath you. Let a gap open between the ankles and every step becomes a small arc instead, which is why wide chaînés drift sideways however hard you spot. Stop after four and look down at your feet.",
          "cue": "No daylight between the ankles.", "video": null },
        { "id": "corr.chaines-ballet.head-rides-along", "ordinal": 2, "faultId": "fault.lost-spot",
          "symptom": "The head travels round with the shoulders",
          "fix": "The body passes the front twice in every turn, so the head has two chances to leave late and arrive first — take both. A head that rides the shoulders makes one long smear of the room instead of a series of stops, and there is nothing for your balance to hold on to.",
          "cue": "Eyes stay, then whip.", "video": null },
        { "id": "corr.chaines-ballet.sinking-heels", "ordinal": 3, "faultId": "fault.loss-of-control",
          "symptom": "The heels sink between turns",
          "fix": "Stay up on demi-pointe for the whole line and hold the same height on every step. Dropping the heels puts the brakes on halfway through each turn, and the tempo you lose there gets paid back by rushing the last two.",
          "cue": "Stay tall the whole line.", "video": null }
      ],
      "drillIds": ["drill.chaines-tight-first", "drill.line-tape-chaines"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.soutenu-en-tournant"],
      "relatedTechniqueIds": ["tech.soutenu-en-tournant", "tech.pose-turn"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": { "jazz": "tech.chaines" },
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.changement", "name": "Changement", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "The simplest jump there is, which is exactly why it shows everything — the plié, the point in the air, and whether the change actually happened.",
      "corrections": [
        { "id": "corr.changement.heels-up", "ordinal": 1, "faultId": "fault.stiff-landing",
          "symptom": "Landing with the heels off the floor",
          "fix": "Both heels reach the floor on every landing and the plié absorbs the shock. Landing on the balls of the feet sends the whole jump straight into your shins.",
          "cue": "Heels down, every time.", "video": null },
        { "id": "corr.changement.late-change", "ordinal": 2, "faultId": "fault.late-beat",
          "symptom": "The feet change on the way down",
          "fix": "Change at the top of the jump with both legs straight and both feet pointed. If the change is visible on the descent, the jump has run out before the shape happened.",
          "cue": "Change at the top.", "video": null },
        { "id": "corr.changement.travelling", "ordinal": 3, "faultId": "fault.travelling-jump",
          "symptom": "The jump creeps forward",
          "fix": "Push straight up from both feet and land where you took off — mark the spot on the floor and check it. Travel usually means the weight was already forward in the plié.",
          "cue": "Land on your own mark.", "video": null }
      ],
      "drillIds": ["drill.jump-on-the-mark", "drill.plie-depth-ladder"], "video": null,
      "progressesTo": ["tech.echappe-saute"], "progressesFrom": [], "relatedTechniqueIds": ["tech.plie", "tech.assemble"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g3", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.echappe-saute", "name": "Échappé sauté", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "Jumping from two feet to two feet and back again, with a real second position in the middle. The width is the whole step.",
      "corrections": [
        { "id": "corr.echappe-saute.narrow-second", "ordinal": 1, "faultId": "fault.loose-close",
          "symptom": "Landing in a narrow second",
          "fix": "Open to a second you could actually stand in, and let both feet arrive at the same moment. A small second is nearly always a plié that never finished.",
          "cue": "Open wide, land wide.", "video": null },
        { "id": "corr.echappe-saute.bouncing", "ordinal": 2, "faultId": "fault.stiff-landing",
          "symptom": "Bouncing straight back out of the landing",
          "fix": "Let the plié go all the way down before the next jump leaves. The floor only gives the height back if you take the time to use it.",
          "cue": "Down before up.", "video": null },
        { "id": "corr.echappe-saute.uneven-split", "ordinal": 3, "faultId": "fault.travelling-jump",
          "symptom": "One leg does more of the opening",
          "fix": "Split the distance evenly between both feet so you finish where you started. The leg that travels less is usually the one you quietly prefer to stand on.",
          "cue": "Both feet travel the same.", "video": null }
      ],
      "drillIds": ["drill.jump-on-the-mark", "drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.changement"], "relatedTechniqueIds": ["tech.echappe-releve"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g4", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.glissade", "name": "Glissade", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "The joining step. It never gets a solo, and it decides whether the step after it has anywhere to go.",
      "corrections": [
        { "id": "corr.glissade.never-leaves", "ordinal": 1, "faultId": "fault.flat-landing",
          "symptom": "The glissade never leaves the floor",
          "fix": "It is a jump: the first foot slides out, the body travels after it, and there is a moment with both feet off the floor. Without that moment there is no push into whatever comes next.",
          "cue": "It’s a jump, not a step.", "video": null },
        { "id": "corr.glissade.open-finish", "ordinal": 2, "faultId": "fault.loose-close",
          "symptom": "Finishing in a loose fifth",
          "fix": "Close the back foot fully into fifth, in plié, ready to leave again. A glissade that lands open has already lost the assemblé that was going to follow it.",
          "cue": "Land closed, ready to go.", "video": null },
        { "id": "corr.glissade.shrinking", "ordinal": 3, "faultId": "fault.travel-drift",
          "symptom": "Travelling less on each one",
          "fix": "Reach the leading foot out to a full tendu before the body follows it. Short glissades bunch the whole enchaînement up behind them.",
          "cue": "Reach first, then travel.", "video": null }
      ],
      "drillIds": ["drill.glissade-reach", "drill.plie-depth-ladder"], "video": null,
      "progressesTo": ["tech.assemble"], "progressesFrom": [], "relatedTechniqueIds": ["tech.assemble", "tech.jete-ordinaire"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g4", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.jete-ordinaire", "name": "Jeté ordinaire", "aka": ["Jeté"],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "A jump from one leg to the other where the shape you land in matters more than how high you got.",
      "corrections": [
        { "id": "corr.jete-ordinaire.turned-in-finish", "ordinal": 1, "faultId": "fault.turnout-loss",
          "symptom": "The back foot arrives turned in at cou-de-pied",
          "fix": "Finish with the foot wrapped and the knee held out to the side. The landing shape is what the eye actually reads, and it is decided while you are still in the air.",
          "cue": "Land the shape, not just the foot.", "video": null },
        { "id": "corr.jete-ordinaire.hard-landing", "ordinal": 2, "faultId": "fault.stiff-landing",
          "symptom": "Landing hard on a straight leg",
          "fix": "Roll through toe, ball, heel and let the knee bend out over the foot. A loud landing is a warning, not a style.",
          "cue": "Land through the foot.", "video": null },
        { "id": "corr.jete-ordinaire.arm-heave", "ordinal": 3, "faultId": "fault.borrowed-momentum",
          "symptom": "The arms heave the jump upward",
          "fix": "Push the height out of the floor with the plié and leave the arms where they were placed. Arms that lift you give you a jump you cannot repeat eight times in a row.",
          "cue": "Height comes from the floor.", "video": null }
      ],
      "drillIds": ["drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.glissade"], "relatedTechniqueIds": ["tech.assemble", "tech.ballonne"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g5", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.sissonne", "name": "Sissonne", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "Two feet up, one foot down. It should look like a pair of scissors opening in the air, not like a jump with a landing problem.",
      "corrections": [
        { "id": "corr.sissonne.late-split", "ordinal": 1, "faultId": "fault.late-beat",
          "symptom": "The legs split after the landing",
          "fix": "The split happens at the top of the jump with both legs stretched. Late, it becomes a hop with a leg wandering off behind it.",
          "cue": "Open in the air.", "video": null },
        { "id": "corr.sissonne.shallow-landing", "ordinal": 2, "faultId": "fault.stiff-landing",
          "symptom": "Landing on one leg with almost no plié",
          "fix": "One leg is absorbing everything, so the plié has to be deeper here, not shallower. Land on a straight leg often enough and your knees will let you know.",
          "cue": "One leg lands, so bend more.", "video": null },
        { "id": "corr.sissonne.tipping-back", "ordinal": 3, "faultId": "fault.leaning-back",
          "symptom": "The body tips back over the back leg",
          "fix": "Keep the chest over the landing leg and let the back leg be behind you rather than underneath a lean. Tipping back is the body hunting for height it did not take from the floor.",
          "cue": "Chest over the landing leg.", "video": null }
      ],
      "drillIds": ["drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.assemble"], "relatedTechniqueIds": ["tech.assemble", "tech.jete-ordinaire"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.pas-de-chat", "name": "Pas de chat", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "The cat step — two knees picked up one after the other, at the same height, with a moment where neither foot is anywhere near the floor.",
      "corrections": [
        { "id": "corr.pas-de-chat.second-foot-stays", "ordinal": 1, "faultId": "fault.late-beat",
          "symptom": "The second foot never leaves the floor",
          "fix": "Pick up the first knee, then the second, so there is a real moment with both feet in the air. If the back foot stays down it is a step sideways, not a jump.",
          "cue": "Both feet, off the floor.", "video": null },
        { "id": "corr.pas-de-chat.knees-forward", "ordinal": 2, "faultId": "fault.turnout-loss",
          "symptom": "The knees drop forward",
          "fix": "Open both knees to the side and match their height to each other. Knees forward turns a pas de chat into a running jump with good intentions.",
          "cue": "Two knees, same height.", "video": null },
        { "id": "corr.pas-de-chat.unfinished-landing", "ordinal": 3, "faultId": "fault.loose-close",
          "symptom": "Landing without arriving anywhere",
          "fix": "Land through the front foot into plié and close the back foot properly behind it. The shape has to finish even when the tempo is quick.",
          "cue": "Finish the landing.", "video": null }
      ],
      "drillIds": ["drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.sissonne", "tech.retire-passe"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g6", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.ballonne", "name": "Ballonné", "aka": [],
      "styleId": "style.ballet", "categoryId": "cat.jumps", "tracks": [],
      "why": "A jump that bounces. The leg shoots out as you go up and folds back to cou-de-pied as you land, and that rhythm is the entire step.",
      "corrections": [
        { "id": "corr.ballonne.late-extension", "ordinal": 1, "faultId": "fault.late-beat",
          "symptom": "The leg extends after the landing",
          "fix": "The leg is fully out at the top of the jump and folded in again by the time you land. Extend on the floor and the step has lost its bounce entirely.",
          "cue": "Out in the air, in on the floor.", "video": null },
        { "id": "corr.ballonne.travelling", "ordinal": 2, "faultId": "fault.travelling-jump",
          "symptom": "Travelling forward on every one",
          "fix": "Push up rather than out, and bring the supporting foot back to the same spot each time. Every ballonné in a series should land where the last one did.",
          "cue": "Bounce on the spot.", "video": null },
        { "id": "corr.ballonne.sickle-in", "ordinal": 3, "faultId": "fault.sickling",
          "symptom": "The cou-de-pied foot sickles on the way in",
          "fix": "Wrap the foot with the heel pressing forward every single time it comes in. A step this fast is exactly where a lazy cou-de-pied goes unnoticed.",
          "cue": "Heel forward on the way in.", "video": null }
      ],
      "drillIds": ["drill.cou-de-pied-shape", "drill.plie-depth-ladder"], "video": null,
      "progressesTo": [], "progressesFrom": ["tech.jete-ordinaire"], "relatedTechniqueIds": ["tech.petit-battement"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": "lvl.rad.g7", "crossStyle": null,
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "inferred", "source": "02-curriculum section 2", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    },
    {
      "id": "tech.jazz-pirouette", "name": "Jazz pirouette", "aka": ["Parallel passé turn"],
      "styleId": "style.jazz", "categoryId": "cat.turns", "tracks": [],
      "why": "Same spot, same spotting, different body. The passé is parallel, the weight sits forward, and the finish is a shape rather than a neat fifth.",
      "corrections": [
        { "id": "corr.jazz-pirouette.turned-out-passe", "ordinal": 1, "faultId": "fault.tone-mismatch",
          "symptom": "The passé turns out from habit",
          "fix": "Keep the knee facing straight ahead with the foot at the side of the supporting knee. A turned-out passé here reads as ballet borrowed into a jazz combination.",
          "cue": "Knee front, not side.", "video": null },
        { "id": "corr.jazz-pirouette.vague-spot", "ordinal": 2, "faultId": "fault.lost-spot",
          "symptom": "The spot goes soft",
          "fix": "Jazz turns often finish in a shape rather than square to the front, so choose the spot for where you are ending. A vague spot gives you a vague finish, every time.",
          "cue": "Pick the spot, then turn.", "video": null },
        { "id": "corr.jazz-pirouette.wind-up", "ordinal": 3, "faultId": "fault.borrowed-momentum",
          "symptom": "Winding the arms up before the turn",
          "fix": "One preparation, in plié, and the arms close in front as you go. A big wind-up buys one turn and then leaves you nothing for the second.",
          "cue": "One prep, no wind-up.", "video": null }
      ],
      "drillIds": ["drill.quarter-turn-spotting"], "video": null,
      "progressesTo": [], "progressesFrom": [], "relatedTechniqueIds": ["tech.pirouette-en-dehors", "tech.chaines"],
      "safety": { "riskLevel": "low" }, "aliases": [],
      "levelSecureId": null, "crossStyle": { "ballet": "tech.pirouette-en-dehors" },
      "provenance": { "vocabulary": "public-domain", "description": "original", "levelMapping": "house", "source": "Barre house tiers", "editableByTeacher": true, "reviewedBy": null, "reviewedAt": null },
      "completeness": { "tier": 3, "missing": ["video"] }, "status": "published"
    }
  ],

  "techniqueLevels": [
    { "id": "tl.tendu.rad-g4", "techniqueId": "tech.tendu", "levelId": "lvl.rad.g4",
      "requirement": "Devant and derrière from first, à terre, moderate tempo. The closing should be silent.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.tendu.toe-curl", "corr.tendu.sickling"],
      "drillIds": ["drill.theraband-points"], "prerequisites": [], "video": null,
      "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.tendu.rad-g5", "techniqueId": "tech.tendu", "levelId": "lvl.rad.g5",
      "requirement": "En croix from first, with demi-plié on the close. Slower tempo, and the line must hold through the return.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.tendu.sickling", "corr.tendu.calf-grip"],
      "drillIds": ["drill.theraband-points"],
      "prerequisites": [{ "kind": "level", "ref": "tl.tendu.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.degage.rad-g3", "techniqueId": "tech.degage", "levelId": "lvl.rad.g3",
      "requirement": "At the barre, devant and derrière from first, brushing out to a low height and closing through the floor. Moderate tempo, and the same height every time.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.degage.lifting-not-brushing", "corr.degage.toes-leave-first"],
      "drillIds": ["drill.degage-height-check"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 4, "context": null, "status": "published" },
    { "id": "tl.degage.rad-g4", "techniqueId": "tech.degage", "levelId": "lvl.rad.g4",
      "requirement": "En croix from first, quicker, with the brush audible on the way out and silent on the close. The height holds across all eight.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.degage.creeping-height", "corr.degage.lifting-not-brushing"],
      "drillIds": ["drill.degage-height-check", "drill.theraband-points"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.degage.rad-g3", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.tendu.rad-g4", "minStatus": "ready" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },

    { "id": "tl.releve.rad-g4", "techniqueId": "tech.releve", "levelId": "lvl.rad.g4",
      "requirement": "Two-footed rise and lower with control; single-leg rise holding the barre.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.releve.rolling-out"], "drillIds": ["drill.eccentric-heel-drops", "drill.slow-releve-barre"],
      "prerequisites": [], "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.releve.rad-g5", "techniqueId": "tech.releve", "levelId": "lvl.rad.g5",
      "requirement": "Single-leg rise with a four-count lowering, light hand on the barre, both sides equal.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.releve.rolling-out", "corr.releve.dropping"],
      "drillIds": ["drill.eccentric-heel-drops", "drill.slow-releve-barre"],
      "prerequisites": [{ "kind": "level", "ref": "tl.releve.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.pointe-rise.rad-g6", "techniqueId": "tech.pointe-rise", "levelId": "lvl.rad.g6",
      "requirement": "Two-footed rise to full pointe at the barre, lowering through demi with control.",
      "difficulty": 5, "examAssessed": false, "focusCorrectionIds": [],
      "drillIds": ["drill.slow-releve-barre", "drill.eccentric-heel-drops"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.releve.rad-g5", "minStatus": "performed" },
        { "kind": "capability", "ref": "cap.releve-control" },
        { "kind": "capability", "ref": "cap.arch-strength" }
      ],
      "_prerequisitesNote": "A metric prerequisite (24 heel drops in 60 days) was removed here per E019. Counting drills to a pointe gate is the app computing a readiness verdict, which it must never do. The gate is an adult's attestation.",
      "contextNote": "studio pointe class — not part of the graded syllabus",
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": "studio-pointe-class", "status": "published" },

    { "id": "tl.pas-de-bourree-pique.rad-g4", "techniqueId": "tech.pas-de-bourree-pique", "levelId": "lvl.rad.g4",
      "requirement": "Marked at moderate tempo, facing the barre, three even transfers.",
      "difficulty": 2, "examAssessed": true, "focusCorrectionIds": ["corr.pas-de-bourree-pique.flat-first-step"],
      "drillIds": ["drill.ball-of-foot-placement"],
      "prerequisites": [{ "kind": "level", "ref": "tl.tendu.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.pas-de-bourree-pique.rad-g5", "techniqueId": "tech.pas-de-bourree-pique", "levelId": "lvl.rad.g5",
      "requirement": "In the centre, at tempo, travelling — with the piqué quality audible in all three steps.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.pas-de-bourree-pique.flat-first-step", "corr.pas-de-bourree-pique.uneven-three"],
      "drillIds": ["drill.ball-of-foot-placement"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.pas-de-bourree-pique.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.releve.rad-g4", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.pirouette-en-dehors.rad-g5", "techniqueId": "tech.pirouette-en-dehors", "levelId": "lvl.rad.g5",
      "requirement": "Single turn from fourth, closing cleanly in fifth. A clean single is the standard here.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.pirouette-en-dehors.lost-spot", "corr.pirouette-en-dehors.hip-drop"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.releve.rad-g4", "minStatus": "ready" },
        { "kind": "capability", "ref": "cap.spotting" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.pirouette-en-dehors.rad-g6", "techniqueId": "tech.pirouette-en-dehors", "levelId": "lvl.rad.g6",
      "requirement": "Double turn, both sides, with the arms held and the finish under control.",
      "difficulty": 5, "examAssessed": true,
      "focusCorrectionIds": ["corr.pirouette-en-dehors.lost-spot", "corr.pirouette-en-dehors.open-arms"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [{ "kind": "level", "ref": "tl.pirouette-en-dehors.rad-g5", "minStatus": "performed" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.assemble.rad-g3", "techniqueId": "tech.assemble", "levelId": "lvl.rad.g3",
      "requirement": "Assemblé dessus at the barre, small, with a full plié on the landing.",
      "difficulty": 2, "examAssessed": true, "focusCorrectionIds": ["corr.assemble.stiff-knee"],
      "drillIds": ["drill.plie-depth-ladder"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 4, "context": null, "status": "published" },
    { "id": "tl.assemble.rad-g4", "techniqueId": "tech.assemble", "levelId": "lvl.rad.g4",
      "requirement": "In the centre, dessus and dessous, with the legs meeting in the air.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.assemble.late-join", "corr.assemble.stiff-knee"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.assemble.rad-g3", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.assemble.rad-g5", "techniqueId": "tech.assemble", "levelId": "lvl.rad.g5",
      "requirement": "Travelling, in an enchaînement, holding height and quiet landings across eight.",
      "difficulty": 4, "examAssessed": true, "focusCorrectionIds": ["corr.assemble.late-join"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.assemble.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.developpe-devant.rad-g4", "techniqueId": "tech.developpe-devant", "levelId": "lvl.rad.g4",
      "requirement": "At the barre, to 45 degrees, passing through a clean retiré.",
      "difficulty": 2, "examAssessed": true, "focusCorrectionIds": ["corr.developpe-devant.jerky-unfold"],
      "drillIds": ["drill.hipflexor-hamstring-set"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.developpe-devant.rad-g5", "techniqueId": "tech.developpe-devant", "levelId": "lvl.rad.g5",
      "requirement": "At the barre to 90 degrees where the hips stay level, held for two counts.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.developpe-devant.hip-lift", "corr.developpe-devant.jerky-unfold"],
      "drillIds": ["drill.hipflexor-hamstring-set"],
      "prerequisites": [{ "kind": "level", "ref": "tl.developpe-devant.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.developpe-devant.rad-g6", "techniqueId": "tech.developpe-devant", "levelId": "lvl.rad.g6",
      "requirement": "In the centre, unsupported, with the extension sustained through a port de bras.",
      "difficulty": 5, "examAssessed": true, "focusCorrectionIds": ["corr.developpe-devant.hip-lift"],
      "drillIds": ["drill.hipflexor-hamstring-set"],
      "prerequisites": [{ "kind": "level", "ref": "tl.developpe-devant.rad-g5", "minStatus": "performed" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.arabesque.rad-g4", "techniqueId": "tech.arabesque", "levelId": "lvl.rad.g4",
      "requirement": "First arabesque at the barre, à terre and to 45 degrees.",
      "difficulty": 2, "examAssessed": true, "focusCorrectionIds": ["corr.arabesque.supporting-collapse"],
      "drillIds": ["drill.upper-back-holds"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.arabesque.rad-g5", "techniqueId": "tech.arabesque", "levelId": "lvl.rad.g5",
      "requirement": "First and second arabesque in the centre, held four counts, line reading from the back.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.arabesque.supporting-collapse", "corr.arabesque.shoulder-twist"],
      "drillIds": ["drill.upper-back-holds"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.arabesque.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.releve.rad-g4", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.step-ball-change.mt-t1", "techniqueId": "tech.step-ball-change", "levelId": "lvl.mt.t1",
      "requirement": "Clean and-a-one rhythm on both sides, at a walking tempo.",
      "difficulty": 1, "examAssessed": false,
      "focusCorrectionIds": ["corr.step-ball-change.flat-ball", "corr.step-ball-change.rushing"],
      "drillIds": ["drill.rhythm-clap-through"], "prerequisites": [],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 4, "context": null, "status": "published" },
    { "id": "tl.kick-line.mt-t2", "techniqueId": "tech.kick-line", "levelId": "lvl.mt.t2",
      "requirement": "Eight matched kicks in a line, hands linked, unison over height.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.kick-line.max-height", "corr.kick-line.leaning-back"],
      "drillIds": ["drill.wall-kick-set"], "prerequisites": [],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.fosse-isolations.mt-t2", "techniqueId": "tech.fosse-isolations", "levelId": "lvl.mt.t2",
      "requirement": "Shoulder, rib and hip isolations at tempo with everything else still.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.fosse-isolations.whole-body", "corr.fosse-isolations.too-soft"],
      "drillIds": ["drill.mirror-isolations"], "prerequisites": [],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.chasse-pivot.mt-t2", "techniqueId": "tech.chasse-pivot", "levelId": "lvl.mt.t2",
      "requirement": "Across the floor, four each side, finishing on the same mark every time.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.chasse-pivot.lost-direction", "corr.chasse-pivot.off-centre"],
      "drillIds": ["drill.corner-travel"],
      "prerequisites": [{ "kind": "level", "ref": "tl.step-ball-change.mt-t1", "minStatus": "ready" }],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.jazz-square.jazz-t1", "techniqueId": "tech.jazz-square", "levelId": "lvl.jazz.t1",
      "requirement": "Four clear corners at half time, then at tempo, both directions.",
      "difficulty": 1, "examAssessed": false,
      "focusCorrectionIds": ["corr.jazz-square.collapse", "corr.jazz-square.hip-lock"],
      "drillIds": ["drill.tape-square"], "prerequisites": [],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 4, "context": null, "status": "published" },
    { "id": "tl.chaines.jazz-t2", "techniqueId": "tech.chaines", "levelId": "lvl.jazz.t2",
      "requirement": "Eight chaînés along a straight line, both directions, finishing on the line.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.chaines.drift", "corr.chaines.dizziness"],
      "drillIds": ["drill.line-tape-chaines"],
      "prerequisites": [{ "kind": "capability", "ref": "cap.spotting" }],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.fan-kick.jazz-t2", "techniqueId": "tech.fan-kick", "levelId": "lvl.jazz.t2",
      "requirement": "Full arc, both sides, with the standing side lengthening throughout.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.fan-kick.standing-knee", "corr.fan-kick.rushed-arc"],
      "drillIds": ["drill.standing-leg-hold"], "prerequisites": [],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.layout.jazz-t3", "techniqueId": "tech.layout", "levelId": "lvl.jazz.t3",
      "requirement": "Held four counts on each side, curve spread through the upper back, standing hip forward.",
      "difficulty": 5, "examAssessed": false,
      "focusCorrectionIds": ["corr.layout.lumbar-only", "corr.layout.wandering-leg"],
      "drillIds": ["drill.core-back-prep"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.fan-kick.jazz-t2", "minStatus": "ready" },
        { "kind": "capability", "ref": "cap.core-back-control" }
      ],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 8, "context": null, "status": "published" },

    { "id": "tl.plie.rad-g4", "techniqueId": "tech.plie", "levelId": "lvl.rad.g4",
      "requirement": "Demi-plié in first, second and fifth, and grand plié in first and second. Four counts down, four counts up, heels watched all the way.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.plie.heel-lift", "corr.plie.knee-track"],
      "drillIds": ["drill.slow-plie-count"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.plie.rad-g5", "techniqueId": "tech.plie", "levelId": "lvl.rad.g5",
      "requirement": "Grand plié in every position with a port de bras carried through it, slowly enough that the heels can be seen holding and returning.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.plie.sitting", "corr.plie.knee-track"],
      "drillIds": ["drill.slow-plie-count"],
      "prerequisites": [{ "kind": "level", "ref": "tl.plie.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.rond-de-jambe-a-terre.rad-g4", "techniqueId": "tech.rond-de-jambe-a-terre", "levelId": "lvl.rad.g4",
      "requirement": "En dehors and en dedans at the barre, toe on the floor throughout, at a moderate tempo.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.rond-de-jambe-a-terre.hip-swing"],
      "drillIds": ["drill.rdj-hip-check"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.rond-de-jambe-a-terre.rad-g5", "techniqueId": "tech.rond-de-jambe-a-terre", "levelId": "lvl.rad.g5",
      "requirement": "Both directions with a cambré or port de bras attached, and the hips still enough that nothing above the waist reports the circle.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.rond-de-jambe-a-terre.turn-in", "corr.rond-de-jambe-a-terre.uneven-speed"],
      "drillIds": ["drill.rdj-hip-check"],
      "prerequisites": [{ "kind": "level", "ref": "tl.rond-de-jambe-a-terre.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.battement-fondu.rad-g4", "techniqueId": "tech.battement-fondu", "levelId": "lvl.rad.g4",
      "requirement": "At the barre, devant and derrière, unfolding to 45 degrees with both legs moving at the same rate.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.battement-fondu.out-of-time", "corr.battement-fondu.knee-in"],
      "drillIds": ["drill.fondu-both-knees"],
      "prerequisites": [{ "kind": "level", "ref": "tl.plie.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.battement-fondu.rad-g5", "techniqueId": "tech.battement-fondu", "levelId": "lvl.rad.g5",
      "requirement": "En croix at the barre, slower, with the rotation held all the way through the unfolding on both sides.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.battement-fondu.thigh-drops", "corr.battement-fondu.out-of-time"],
      "drillIds": ["drill.fondu-both-knees"],
      "prerequisites": [{ "kind": "level", "ref": "tl.battement-fondu.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.battement-frappe.rad-g4", "techniqueId": "tech.battement-frappe", "levelId": "lvl.rad.g4",
      "requirement": "At the barre, devant and derrière, à terre, with the accent clearly outward and the thigh still.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.battement-frappe.whole-leg", "corr.battement-frappe.soft-accent"],
      "drillIds": ["drill.frappe-thigh-check"],
      "prerequisites": [{ "kind": "level", "ref": "tl.degage.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.battement-frappe.rad-g5", "techniqueId": "tech.battement-frappe", "levelId": "lvl.rad.g5",
      "requirement": "En croix and quicker, to 45 degrees, with the cou-de-pied shape holding at speed on both sides.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.battement-frappe.sickle-return", "corr.battement-frappe.whole-leg"],
      "drillIds": ["drill.frappe-thigh-check"],
      "prerequisites": [{ "kind": "level", "ref": "tl.battement-frappe.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.petit-battement.rad-g5", "techniqueId": "tech.petit-battement", "levelId": "lvl.rad.g5",
      "requirement": "At the barre at a moderate tempo, knee still and turned out, foot wrapped front and back.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.petit-battement.wagging-thigh", "corr.petit-battement.lazy-wrap"],
      "drillIds": ["drill.cou-de-pied-shape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.battement-frappe.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.petit-battement.rad-g6", "techniqueId": "tech.petit-battement", "levelId": "lvl.rad.g6",
      "requirement": "At tempo, with the rotation and the wrap surviving the speed, and a relevé held under it.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.petit-battement.closing-knee"],
      "drillIds": ["drill.cou-de-pied-shape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.petit-battement.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.grand-battement.rad-g4", "techniqueId": "tech.grand-battement", "levelId": "lvl.rad.g4",
      "requirement": "At the barre, devant and derrière, brushing out through tendu and returning through it under control.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.grand-battement.dropping"],
      "drillIds": ["drill.battement-brush-through"],
      "prerequisites": [{ "kind": "level", "ref": "tl.tendu.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.grand-battement.rad-g5", "techniqueId": "tech.grand-battement", "levelId": "lvl.rad.g5",
      "requirement": "En croix, and in the centre, with the body still and the hips level at whatever height that allows.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.grand-battement.body-tips", "corr.grand-battement.hip-buys-height"],
      "drillIds": ["drill.battement-brush-through", "drill.hipflexor-hamstring-set"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.grand-battement.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.degage.rad-g4", "minStatus": "ready" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.echappe-releve.rad-g4", "techniqueId": "tech.echappe-releve", "levelId": "lvl.rad.g4",
      "requirement": "Facing the barre, fifth to second and back, both feet arriving together on every change.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.echappe-releve.one-at-a-time", "corr.echappe-releve.rolling-out"],
      "drillIds": ["drill.echappe-one-sound"],
      "prerequisites": [{ "kind": "level", "ref": "tl.releve.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.echappe-releve.rad-g5", "techniqueId": "tech.echappe-releve", "levelId": "lvl.rad.g5",
      "requirement": "In the centre, changing feet, with a controlled lowering and a fifth that closes fully each time.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.echappe-releve.approximate-close", "corr.echappe-releve.rolling-out"],
      "drillIds": ["drill.echappe-one-sound", "drill.slow-releve-barre"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.echappe-releve.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.releve.rad-g5", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.rond-de-jambe-en-lair.rad-g5", "techniqueId": "tech.rond-de-jambe-en-lair", "levelId": "lvl.rad.g5",
      "requirement": "At the barre at 45 degrees, single, both directions, with the thigh held completely still.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.rond-de-jambe-en-lair.moving-thigh", "corr.rond-de-jambe-en-lair.knee-in"],
      "drillIds": ["drill.rdj-air-shelf"],
      "prerequisites": [{ "kind": "level", "ref": "tl.rond-de-jambe-a-terre.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.rond-de-jambe-en-lair.rad-g6", "techniqueId": "tech.rond-de-jambe-en-lair", "levelId": "lvl.rad.g6",
      "requirement": "Doubles, and on a rise, with the oval still drawn properly rather than folded into a bend and stretch.",
      "difficulty": 5, "examAssessed": true,
      "focusCorrectionIds": ["corr.rond-de-jambe-en-lair.flat-shape"],
      "drillIds": ["drill.rdj-air-shelf"],
      "prerequisites": [{ "kind": "level", "ref": "tl.rond-de-jambe-en-lair.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.cambre.rad-g4", "techniqueId": "tech.cambre", "levelId": "lvl.rad.g4",
      "requirement": "Forward and side at the barre, hips stacked, breathing out over the top of the bend.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.cambre.hips-travel", "corr.cambre.held-breath"],
      "drillIds": ["drill.roll-down"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.cambre.rad-g5", "techniqueId": "tech.cambre", "levelId": "lvl.rad.g5",
      "requirement": "Back and in a circular port de bras, with the curve spread through the upper back and the recovery under control.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.cambre.lumbar-hinge", "corr.cambre.hips-travel"],
      "drillIds": ["drill.upper-back-holds", "drill.roll-down"],
      "prerequisites": [{ "kind": "level", "ref": "tl.cambre.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.port-de-bras.rad-g4", "techniqueId": "tech.port-de-bras", "levelId": "lvl.rad.g4",
      "requirement": "Bras bas through first to second and third, with the elbow supported and the head following the hand.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.port-de-bras.dropped-elbow", "corr.port-de-bras.eyes-down"],
      "drillIds": ["drill.mirror-port-de-bras"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.port-de-bras.rad-g5", "techniqueId": "tech.port-de-bras", "levelId": "lvl.rad.g5",
      "requirement": "Longer sequences with épaulement and a cambré inside them, the arms arriving with the music rather than ahead of it.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.port-de-bras.snapping", "corr.port-de-bras.dropped-elbow"],
      "drillIds": ["drill.mirror-port-de-bras"],
      "prerequisites": [{ "kind": "level", "ref": "tl.port-de-bras.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.epaulement.rad-g4", "techniqueId": "tech.epaulement", "levelId": "lvl.rad.g4",
      "requirement": "Croisé and effacé held in standing positions, feet set to the corner before the shoulders answer.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.epaulement.square-on", "corr.epaulement.head-left-behind"],
      "drillIds": ["drill.facing-changes"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.epaulement.rad-g5", "techniqueId": "tech.epaulement", "levelId": "lvl.rad.g5",
      "requirement": "Carried through travelling steps and adage, changing facing without stopping the movement to think about it.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.epaulement.mirror-dependence", "corr.epaulement.square-on"],
      "drillIds": ["drill.facing-changes"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.epaulement.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.port-de-bras.rad-g4", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.temps-lie.rad-g4", "techniqueId": "tech.temps-lie", "levelId": "lvl.rad.g4",
      "requirement": "Forward and to the side in the centre, through a full demi-plié, the weight arriving over the whole count.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.temps-lie.no-plie", "corr.temps-lie.dropped-weight"],
      "drillIds": ["drill.weight-transfer-tape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.plie.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.temps-lie.rad-g5", "techniqueId": "tech.temps-lie", "levelId": "lvl.rad.g5",
      "requirement": "In all directions with a port de bras and épaulement, the distance the same on every repetition.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.temps-lie.shrinking", "corr.temps-lie.dropped-weight"],
      "drillIds": ["drill.weight-transfer-tape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.temps-lie.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.balance.rad-g4", "techniqueId": "tech.balance", "levelId": "lvl.rad.g4",
      "requirement": "Side to side in the centre with a clear down-up-up, arms following the direction of travel.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.balance.even-three", "corr.balance.creeping-forward"],
      "drillIds": ["drill.balance-out-loud"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.balance.rad-g5", "techniqueId": "tech.balance", "levelId": "lvl.rad.g5",
      "requirement": "Travelling and turning, inside a longer sequence, with the rise and fall carried by the whole body.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.balance.flat-quality", "corr.balance.creeping-forward"],
      "drillIds": ["drill.balance-out-loud"],
      "prerequisites": [{ "kind": "level", "ref": "tl.balance.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.pas-de-basque.rad-g4", "techniqueId": "tech.pas-de-basque", "levelId": "lvl.rad.g4",
      "requirement": "Glissé, at a moderate tempo, with a real semicircle on the floor and three separate weight changes.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.pas-de-basque.no-circle", "corr.pas-de-basque.swallowed-transfer"],
      "drillIds": ["drill.weight-transfer-tape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.temps-lie.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.pas-de-basque.rad-g5", "techniqueId": "tech.pas-de-basque", "levelId": "lvl.rad.g5",
      "requirement": "At tempo with épaulement, both directions, travelling generously and finishing where it was aimed.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.pas-de-basque.square-on", "corr.pas-de-basque.no-circle"],
      "drillIds": ["drill.weight-transfer-tape"],
      "prerequisites": [{ "kind": "level", "ref": "tl.pas-de-basque.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.retire-passe.rad-g4", "techniqueId": "tech.retire-passe", "levelId": "lvl.rad.g4",
      "requirement": "Held at the barre and in the centre, hips level, knee to the side, foot pointed under the kneecap.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.retire-passe.knee-forward", "corr.retire-passe.resting-foot"],
      "drillIds": ["drill.retire-hold-check"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.retire-passe.rad-g5", "techniqueId": "tech.retire-passe", "levelId": "lvl.rad.g5",
      "requirement": "On a rise in the centre, held for four counts each side, with the shape unchanged as the heel leaves the floor.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.retire-passe.hip-lifts", "corr.retire-passe.knee-forward"],
      "drillIds": ["drill.retire-hold-check", "drill.slow-releve-barre"],
      "prerequisites": [{ "kind": "level", "ref": "tl.retire-passe.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.attitude-derriere.rad-g4", "techniqueId": "tech.attitude-derriere", "levelId": "lvl.rad.g4",
      "requirement": "At the barre, at 45 degrees, knee lifted and turned out with the standing side long.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.attitude-derriere.dropped-knee", "corr.attitude-derriere.sinking"],
      "drillIds": ["drill.upper-back-holds"],
      "prerequisites": [{ "kind": "level", "ref": "tl.retire-passe.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.attitude-derriere.rad-g5", "techniqueId": "tech.attitude-derriere", "levelId": "lvl.rad.g5",
      "requirement": "In the centre inside an adage, held four counts, with the lift coming from the front of the body rather than the lower back.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.attitude-derriere.lumbar-arch", "corr.attitude-derriere.dropped-knee"],
      "drillIds": ["drill.upper-back-holds", "drill.hipflexor-hamstring-set"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.attitude-derriere.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.arabesque.rad-g5", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.soutenu-en-tournant.rad-g4", "techniqueId": "tech.soutenu-en-tournant", "levelId": "lvl.rad.g4",
      "requirement": "Half turns from fifth at a moderate tempo, legs pressed together, head finding one spot.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.soutenu-en-tournant.open-legs", "corr.soutenu-en-tournant.head-drifts"],
      "drillIds": ["drill.tight-fifth-hold"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.soutenu-en-tournant.rad-g5", "techniqueId": "tech.soutenu-en-tournant", "levelId": "lvl.rad.g5",
      "requirement": "Full turns on a rise, both directions, finishing in a closed fifth on the spot you started from.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.soutenu-en-tournant.no-plie", "corr.soutenu-en-tournant.open-legs"],
      "drillIds": ["drill.tight-fifth-hold", "drill.quarter-turn-spotting"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.soutenu-en-tournant.rad-g4", "minStatus": "ready" },
        { "kind": "capability", "ref": "cap.spotting" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.chaines-ballet.rad-g5", "techniqueId": "tech.chaines-ballet", "levelId": "lvl.rad.g5",
      "requirement": "Along a straight line, on demi-pointe, both directions, feet staying in a tight first and the head finding the same spot on every half turn.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.chaines-ballet.wide-first", "corr.chaines-ballet.head-rides-along"],
      "drillIds": ["drill.chaines-tight-first", "drill.line-tape-chaines"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.soutenu-en-tournant.rad-g5", "minStatus": "ready" },
        { "kind": "capability", "ref": "cap.spotting" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.chaines-ballet.rad-g6", "techniqueId": "tech.chaines-ballet", "levelId": "lvl.rad.g6",
      "requirement": "Eight down a diagonal at tempo, both directions, arriving on the line and on the count with the height on demi-pointe unchanged from the first turn to the last.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.chaines-ballet.sinking-heels", "corr.chaines-ballet.wide-first"],
      "drillIds": ["drill.chaines-tight-first", "drill.line-tape-chaines"],
      "prerequisites": [{ "kind": "level", "ref": "tl.chaines-ballet.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.pirouette-en-dedans.rad-g5", "techniqueId": "tech.pirouette-en-dedans", "levelId": "lvl.rad.g5",
      "requirement": "Single turn, stepping out to a straight supporting leg, arms closing to first and staying there.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.pirouette-en-dedans.arm-whip", "corr.pirouette-en-dedans.reversed-spot"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.pirouette-en-dehors.rad-g5", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.retire-passe.rad-g5", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.pirouette-en-dedans.rad-g6", "techniqueId": "tech.pirouette-en-dedans", "levelId": "lvl.rad.g6",
      "requirement": "Double, both sides, from a travelling preparation, with the finish placed rather than caught.",
      "difficulty": 5, "examAssessed": true,
      "focusCorrectionIds": ["corr.pirouette-en-dedans.sitting-hip"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [{ "kind": "level", "ref": "tl.pirouette-en-dedans.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.pose-turn.rad-g5", "techniqueId": "tech.pose-turn", "levelId": "lvl.rad.g5",
      "requirement": "Four along a straight line, stepping onto a fully straight leg with the retiré tight to the knee.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.pose-turn.soft-knee", "corr.pose-turn.wrong-spot"],
      "drillIds": ["drill.pose-line-walk"],
      "prerequisites": [
        { "kind": "level",      "ref": "tl.soutenu-en-tournant.rad-g5", "minStatus": "ready" },
        { "kind": "capability", "ref": "cap.spotting" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.pose-turn.rad-g6", "techniqueId": "tech.pose-turn", "levelId": "lvl.rad.g6",
      "requirement": "Eight down a diagonal at tempo, both directions, arriving on the same line every time.",
      "difficulty": 5, "examAssessed": true,
      "focusCorrectionIds": ["corr.pose-turn.off-line", "corr.pose-turn.soft-knee"],
      "drillIds": ["drill.pose-line-walk", "drill.line-tape-chaines"],
      "prerequisites": [{ "kind": "level", "ref": "tl.pose-turn.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.changement.rad-g3", "techniqueId": "tech.changement", "levelId": "lvl.rad.g3",
      "requirement": "Small and on the spot, both heels reaching the floor on every landing.",
      "difficulty": 1, "examAssessed": true,
      "focusCorrectionIds": ["corr.changement.heels-up"],
      "drillIds": ["drill.jump-on-the-mark"], "prerequisites": [],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 4, "context": null, "status": "published" },
    { "id": "tl.changement.rad-g4", "techniqueId": "tech.changement", "levelId": "lvl.rad.g4",
      "requirement": "Higher and in sequence, with the change made at the top of the jump and the landing still on the mark.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.changement.late-change", "corr.changement.travelling"],
      "drillIds": ["drill.jump-on-the-mark", "drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.changement.rad-g3", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },

    { "id": "tl.echappe-saute.rad-g4", "techniqueId": "tech.echappe-saute", "levelId": "lvl.rad.g4",
      "requirement": "Fifth to second and back, at a moderate tempo, both feet arriving together in a real second.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.echappe-saute.narrow-second", "corr.echappe-saute.bouncing"],
      "drillIds": ["drill.jump-on-the-mark"],
      "prerequisites": [{ "kind": "level", "ref": "tl.changement.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.echappe-saute.rad-g5", "techniqueId": "tech.echappe-saute", "levelId": "lvl.rad.g5",
      "requirement": "Changing feet, in sequence with other jumps, holding the width and the depth of plié across eight.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.echappe-saute.uneven-split", "corr.echappe-saute.narrow-second"],
      "drillIds": ["drill.jump-on-the-mark", "drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.echappe-saute.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.glissade.rad-g4", "techniqueId": "tech.glissade", "levelId": "lvl.rad.g4",
      "requirement": "Travelling to the side, with a moment off the floor and a fifth that closes in plié.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.glissade.never-leaves", "corr.glissade.open-finish"],
      "drillIds": ["drill.glissade-reach"],
      "prerequisites": [{ "kind": "level", "ref": "tl.changement.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.glissade.rad-g5", "techniqueId": "tech.glissade", "levelId": "lvl.rad.g5",
      "requirement": "Joining other steps at tempo, travelling the same distance each time, and still landing closed and ready.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.glissade.shrinking", "corr.glissade.open-finish"],
      "drillIds": ["drill.glissade-reach", "drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.glissade.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.jete-ordinaire.rad-g4", "techniqueId": "tech.jete-ordinaire", "levelId": "lvl.rad.g4",
      "requirement": "Small, side to side, landing through the foot with the other foot wrapped at cou-de-pied.",
      "difficulty": 2, "examAssessed": true,
      "focusCorrectionIds": ["corr.jete-ordinaire.turned-in-finish", "corr.jete-ordinaire.hard-landing"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.glissade.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.jete-ordinaire.rad-g5", "techniqueId": "tech.jete-ordinaire", "levelId": "lvl.rad.g5",
      "requirement": "In an enchaînement at tempo, height taken from the floor, the landing shape the same on the eighth as on the first.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.jete-ordinaire.arm-heave", "corr.jete-ordinaire.turned-in-finish"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.jete-ordinaire.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.sissonne.rad-g4", "techniqueId": "tech.sissonne", "levelId": "lvl.rad.g4",
      "requirement": "Simple, closing, travelling forward, with the split made in the air and a deep landing plié.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.sissonne.late-split", "corr.sissonne.shallow-landing"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.changement.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.sissonne.rad-g5", "techniqueId": "tech.sissonne", "levelId": "lvl.rad.g5",
      "requirement": "Travelling in several directions inside a sequence, with the chest staying over the landing leg.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.sissonne.tipping-back", "corr.sissonne.shallow-landing"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [
        { "kind": "level", "ref": "tl.sissonne.rad-g4", "minStatus": "ready" },
        { "kind": "level", "ref": "tl.plie.rad-g5", "minStatus": "learning" }
      ],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.pas-de-chat.rad-g4", "techniqueId": "tech.pas-de-chat", "levelId": "lvl.rad.g4",
      "requirement": "Side to side at a moderate tempo, both knees opening in turn with a moment off the floor.",
      "difficulty": 3, "examAssessed": true,
      "focusCorrectionIds": ["corr.pas-de-chat.second-foot-stays", "corr.pas-de-chat.knees-forward"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.retire-passe.rad-g4", "minStatus": "learning" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 5, "context": null, "status": "published" },
    { "id": "tl.pas-de-chat.rad-g5", "techniqueId": "tech.pas-de-chat", "levelId": "lvl.rad.g5",
      "requirement": "In sequence and at tempo, with both knees at the same height and the landing finished each time.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.pas-de-chat.unfinished-landing", "corr.pas-de-chat.knees-forward"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.pas-de-chat.rad-g4", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },

    { "id": "tl.ballonne.rad-g5", "techniqueId": "tech.ballonne", "levelId": "lvl.rad.g5",
      "requirement": "Devant, on the spot, leg out at the top of the jump and folded in on the landing.",
      "difficulty": 4, "examAssessed": true,
      "focusCorrectionIds": ["corr.ballonne.late-extension", "corr.ballonne.sickle-in"],
      "drillIds": ["drill.cou-de-pied-shape", "drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.jete-ordinaire.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.ballonne.rad-g6", "techniqueId": "tech.ballonne", "levelId": "lvl.rad.g6",
      "requirement": "In all directions and travelling, keeping the bounce and returning to the same spot in a series of eight.",
      "difficulty": 5, "examAssessed": true,
      "focusCorrectionIds": ["corr.ballonne.travelling", "corr.ballonne.late-extension"],
      "drillIds": ["drill.plie-depth-ladder"],
      "prerequisites": [{ "kind": "level", "ref": "tl.ballonne.rad-g5", "minStatus": "ready" }],
      "video": null, "provenance": "inferred", "editableByTeacher": true, "rung": 7, "context": null, "status": "published" },

    { "id": "tl.jazz-pirouette.jazz-t2", "techniqueId": "tech.jazz-pirouette", "levelId": "lvl.jazz.t2",
      "requirement": "Single from parallel, both sides, one preparation only and a chosen spot.",
      "difficulty": 3, "examAssessed": false,
      "focusCorrectionIds": ["corr.jazz-pirouette.turned-out-passe", "corr.jazz-pirouette.wind-up"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [{ "kind": "capability", "ref": "cap.spotting" }],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 6, "context": null, "status": "published" },
    { "id": "tl.jazz-pirouette.jazz-t3", "techniqueId": "tech.jazz-pirouette", "levelId": "lvl.jazz.t3",
      "requirement": "Double, finishing into a held shape rather than square to the front, on both sides.",
      "difficulty": 5, "examAssessed": false,
      "focusCorrectionIds": ["corr.jazz-pirouette.vague-spot", "corr.jazz-pirouette.wind-up"],
      "drillIds": ["drill.quarter-turn-spotting"],
      "prerequisites": [{ "kind": "level", "ref": "tl.jazz-pirouette.jazz-t2", "minStatus": "ready" }],
      "video": null, "provenance": "house", "editableByTeacher": true, "rung": 8, "context": null, "status": "published" }
  ],

  "_measuresNote": "A Measure is a logged number set beside a published figure. It is NOT a Capability and it may never appear in any prerequisites[] array (E020). There is no verdict field, no comparison operator and no aggregate score anywhere in the app.",
  "measures": [
    { "id": "meas.releve-endurance", "name": "Single-leg relevé endurance", "track": "pre-pointe",
      "what": "Continuous single-leg heel raises, straight knee, through full range.",
      "unlocksAtLevelId": "lvl.rad.g4", "unit": "reps",
      "target": { "value": 15, "unit": "reps", "note": "screening cut-off in published literature" },
      "citation": "Richardson et al., J Dance Med Sci 2010",
      "citationUrl": "https://pubmed.ncbi.nlm.nih.gov/21067685/",
      "verdictAllowed": false,
      "disclaimer": "Teachers and dance physiotherapists commonly look for these. Bring your numbers to your teacher — they decide, with your physio.",
      "status": "published" },
    { "id": "meas.airplane", "name": "Airplane test", "track": "pre-pointe",
      "what": "Single-leg hip hinge into an arabesque-like position with the arms out, then back to standing — controlled, no wobble.",
      "unlocksAtLevelId": "lvl.rad.g4", "unit": "cycles",
      "target": { "value": 2, "unit": "clean cycles", "note": "suggested cut-off in published literature" },
      "citation": "Richardson et al., J Dance Med Sci 2010",
      "citationUrl": "https://pubmed.ncbi.nlm.nih.gov/21067685/",
      "verdictAllowed": false,
      "disclaimer": "Teachers and dance physiotherapists commonly look for these. Bring your numbers to your teacher — they decide, with your physio.",
      "status": "published" },
    { "id": "meas.single-leg-saute", "name": "Single-leg sauté test", "track": "pre-pointe",
      "what": "Consecutive single-leg hops, knee fully extended in the air, foot fully pointed, landing toe then heel.",
      "unlocksAtLevelId": "lvl.rad.g4", "unit": "reps",
      "target": { "value": 16, "unit": "consecutive", "note": "published figure" },
      "citation": "Hewitt et al., Fitness Testing to Determine Pointe Readiness, J Dance Med Sci 2016",
      "citationUrl": "https://doi.org/10.12678/1089-313X.20.4.162",
      "verdictAllowed": false,
      "disclaimer": "Teachers and dance physiotherapists commonly look for these. Bring your numbers to your teacher — they decide, with your physio.",
      "status": "published" },
    { "id": "meas.topple", "name": "Topple test", "track": "pre-pointe",
      "what": "Single pirouette en dehors from fourth: full retiré, extended supporting leg, vertical trunk, controlled landing.",
      "unlocksAtLevelId": "lvl.rad.g5", "unit": "turns",
      "target": { "value": 1, "unit": "clean turn out of 2 attempts", "note": "published figure" },
      "citation": "Richardson et al., J Dance Med Sci 2010",
      "citationUrl": "https://pubmed.ncbi.nlm.nih.gov/21067685/",
      "verdictAllowed": false,
      "disclaimer": "Teachers and dance physiotherapists commonly look for these. Bring your numbers to your teacher — they decide, with your physio.",
      "status": "published" },
    { "id": "meas.ankle-plantarflexion", "name": "Ankle plantarflexion range", "track": "pre-pointe",
      "what": "Range at the ankle, measured from neutral.",
      "unlocksAtLevelId": "lvl.rad.g4", "unit": "degrees",
      "target": { "value": 90, "unit": "degrees from neutral", "note": "figure most often quoted in the literature" },
      "citation": "Hough-Coles et al., Screening Protocols for Pointe Readiness: A Delphi Study, J Dance Med Sci 2026",
      "citationUrl": "https://doi.org/10.1177/1089313x251339220",
      "verdictAllowed": false,
      "disclaimer": "Teachers and dance physiotherapists commonly look for these. Bring your numbers to your teacher — they decide, with your physio.",
      "status": "published" }
  ],
  "part": "techniques"
}
