enum Color:ubyte (bit_flags) {
  Red = 0, // color Red = (1u << 0)
  /// \brief color Green
  /// Green is bit_flag with value (1u << 1)
  Green,
  /// \brief color Blue (1u << 3)
  Blue = 3,
}

struct Test { a:short; b:byte; }

struct Vec3 (force_align: 8) {
  x:float;
  y:float;
  z:float;
  test1:double;
  test2:Color;
  test3:Test;
}

/// an example documentation comment: "monster object"
table Monster {
  pos:Vec3 (id: 0);
  hp:short = 100 (id: 2);
  mana:short = 150 (id: 1);
  name:string (id: 3, key);
  color:Color = Blue (id: 6);
  inventory:[ubyte] (id: 5);
  testarrayoftables:[Monster] (id: 4);
}

root_type Monster;
