namespace SomeNamespace; enum SomeEnum: int { One = 1, Two, Three } struct SomeStructure { // Basic integer types. a_byte: byte; a_short: short; an_int: int; a_long: long; an_unsigned_short: ushort; an_unsigned_int: uint; an_unsigned_long: ulong; // Basic float types. a_float: float; a_double: double; // Array field only supported in structures. an_int_array: [int: 123]; } table SomeTable { // Optional fields. a_byte: byte; an_int: int; a_string: string; // Required field of non basic types. a_required_string: string (required); a_required_enum_array: [SomeEnum] (required); } table AnotherTable { // Explicitly specified field identifiers. // Must form continuous range from 0. // Must be specified everywhere. an_int: int (id: 2); a_long: long (id: 0); a_string: string (id: 1); // Fields with default values. a_float: float = 0.0 (id: 3); } // Union types only for tables. union SomeUnion { SomeTable, AnotherTable } table RootTable { content: SomeUnion; } // Root type must be table. root_type RootTable;
A spectrum of basic types
Structures with mandatory fields
Extensible tables with optional fields