キャラクターの育成には大きく分けて4つの要素があり、「戦闘や魔力強化で得た経験値によるレベルアップ（HPなどの基本パラメーターの向上）」、「覚醒によるレアリティの向上」、「マギア強化によるマギアダメージの向上」、「メモリアの装備・育成・装備枠の拡張」となっている。魔力強化は戦闘で得たジェムと呼ばれるアイテムを使用することで行え、任意のキャラクターに経験値を与えることができる。キャラクターのレベルはレアリティによって上限があり、覚醒をすることでレアリティの向上とレベル上限の解放をすることができる。覚醒はレベルが上限まで達し、かつ必要な素材が揃っていると行え、前述した効果のほかにコネクト・マギア性能が向上するなどの効果も得られる。初期のレアリティが星2と星3のキャラクターは基本的に星4まで覚醒を行うことができ、初期のレアリティが星4のキャラクターについては更に上位の星5へと覚醒することができる。マギア強化は各キャラクター固有にある「エピソードレベル」を必要なレベルまで上げ、かつ必要な素材も揃っていると行える。このエピソードレベルは魔法少女ストーリーの解放にも必要であり、最大でLV5まである。ドッペルを所持しているキャラクターは、このエピソードレベルとマギアレベルをLV5まで上げることでドッペルを解放するクエストに挑戦できるようになる。メモリアはキャラクターに様々な特殊効果を付与する装備品であり、効果が常時発動するアビリティタイプと、所定のクールタイムを経ると使用可能になるスキルタイプがある。メモリアの育成には「メモリア強化」と「メモリア限界突破」があり、前者はメモリアのレベルを上げることが、後者はレベルの上限を解放することができる。なお、最大まで限界突破を行うとメモリアの基礎効果が向上する。キャラクターが所持しているメモリアの装備枠は通常1枠だが、ガチャから同一の魔法少女を複数入手する・もしくはショップで所定のデスティニージェムを入手することで最大で4枠まで解放される。なお、同一タイプのメモリアの装備は2つまでとなっており、アビリティとスキルをそれぞれ2枚ずつ装備した状態が最大となる。
バトルはサポートキャラを含む2人から5人の編成で行われる。3×3のマスにキャラクターを配置し、画面下部にランダムで表示された5枚のディスクから任意のディスクを3つ選択して敵を攻撃する。敵を全て倒すことでバトルクリアとなり、各種経験値やアイテム、カースチップと呼ばれるキャラクター育成用のコインなどが得られる。逆に全ての味方キャラクターが倒されるとゲームオーバーとなり、マギアストーンと呼ばれるアイテムを使用してリトライするかどうかを選択することとなる。ディスクは性能の異なる3種類のものが用意されており、後述するマギアやドッペルを使用するのに必要なマギアゲージのMPを多く溜めることができる「Accel（アクセル）」、縦方向または横方向に配置されている複数の敵を同時に攻撃できる「Blast（ブラスト）」、チャージポイントが溜まり、そのポイントの積算量でダメージを増やすことができる「Charge（チャージ）」となっている。一度の攻撃で同一の種類のディスクを3つ選択した場合、「Combo（コンボ）」が成立し、それぞれ味方全員のマギアゲージのMP増加、ダメージ量の増加、チャージポイントの増加といったボーナスがある。また、選択したディスクが全て同一人物のものだった場合にはPuellaComboが成立し、ダメージ量が大幅に増加する。なお、これはAccel・Blast・ChargeのComboと重複させて発生させることができる。Blast以外で攻撃する・または敵の攻撃を受けることで溜まるMPが100％まで溜まると、各キャラクター固有の必殺技である「マギア」が使えるようになる。このMPは後述するマギアレベルを上げることによって最大で200％まで溜められるようになり、星5までの覚醒と「ドッペル」の解放ができているキャラクターは、200%全てを消費することでマギアの代わりにより高威力であるドッペルを放つことができる。なお、一部の限定キャラクターは星5まで覚醒してもドッペルが開放されない代わりに、ドッペルに相当する強力なマギアを使うことができる。このほかに、キャラクターにはディスクを選択してコネクトゲージを溜めることで発動できるようになる「コネクト」と呼ばれる特殊能力がある。コネクトは使用可能な状態になっているキャラクターのディスクを任意の他キャラクターにドラッグ＆ドロップすることで発動し、そのターンだけ対象のキャラクターに各キャラクター固有の特殊効果（攻撃力やディスク性能の向上、状態異常の付加や解除など）を付与することができる。
STM は概念的に単純なため、プログラマは比較的単純な文法で STM を使うことができる。Tim Harris と Keir Fraser は論文"Language Support for Lightweight Transactions"で、古典的な「条件つき排他領域」(conditional critical region, CCR) を使ってトランザクションを表現するアイデアを提示した。CCR の最も単純な形式は、「アトミック・ブロック」というものである。これは論理的には"一瞬"に実行されるコードブロックと考えることができる。 // Insert a node into a doubly-linked list atomically atomic {     newNode->prev = node;     newNode->next = node->next;     node->next->prev = newNode;     node->next = newNode; }ブロックの最後に到達すると、トランザクションは可能ならコミットし、さもなくばアボートして再実行（リトライ）される。CCR はまたガード条件を設定することを許しており、するべき仕事が生じるまでトランザクションを待たせることができる： atomic (queueSize > 0) {     remove item from queue and use it }ガード条件が満たされていなければ、そのトランザクションは、ガード条件に影響を与えうるコミットが（他のトランザクションにより）なされるまで待たされ、その後再実行される。このように生産者と消費者の間の結びつきを弱くすることで、スレッド間で明示的にシグナルをやりとりする方法に比べてモジュール性が改善される。"Composable Memory Transcations" では、retryコマンドを導入してこれをさらに一歩押し進めている。このコマンドは、トランザクションを（その途中の任意の箇所で）アボートし、その時点までにそのトランザクションによってリードされたいずれかの共有データが変更されるまで待ってから再実行（リトライ）するというものである。例えば... atomic {     if (queueSize > 0) {         remove item from queue and use it     } else {         retry     } }このように、トランザクション中のあとの段階で動的にリトライできるようにすることで、プログラミングモデルが単純になり、また新しい可能性がひらかれる。課題の一つとして、例外がトランザクションの内から外へ伝播しようとするときにどのように振舞うべきかという点がある。"Composable Memory Transactions" では、筆者らは Concurrent Haskell では例外は予期せぬエラーを示すのが普通であり、この場合はトランザクションをアボートするのがよいと判断した。その際、例外はトランザクションの中で（リードや領域確保により）得られた情報を持ち出せるとした。これは例外の発生理由の診断に役立つ。ただし、著者らは、他の問題設定（例えば他の言語）においては他に妥当な設計判断がありうることを強調している。