    // Example IDL file for our monster's schema.

    namespace MyGame.Sample;

    enum Color:byte { Red = 0, Green, Blue = 2 }

    union Equipment { Weapon } // Optionally add more tables.

    struct Vec3 {
      x:float;
      y:float;
      z:float;
    }

    table Monster {
      pos:Vec3; // Struct.
      mana:short = 150;
      hp:short = 100;
      name:string;
      friendly:bool = false (deprecated);
      inventory:[ubyte];  // Vector of scalars.
      color:Color = Blue; // Enum.
      weapons:[Weapon];   // Vector of tables.
      equipped:Equipment; // Union.
      path:[Vec3];        // Vector of structs.
    }

    table Weapon {
      name:string;
      damage:short;
    }

    root_type Monster;