uuid('id')->primary(); $table->string('word'); // The main word (Kanji usually, or Kana if no Kanji) $table->string('reading')->nullable(); // Kana / Furigana $table->string('romaji')->nullable(); $table->string('meaning_en')->nullable(); $table->string('meaning_id')->nullable(); $table->foreignUuid('level_id')->nullable()->constrained('levels')->nullOnDelete(); $table->string('audio_url')->nullable(); $table->string('type')->nullable(); // noun, verb, adjective, etc. $table->json('stroke_order_svg')->nullable(); // JSON for stroke animation $table->json('example_sentences')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. */ public function down(): void { Schema::dropIfExists('vocabularies'); } };