namespace pkNX.Structures.FlatBuffers.SWSH;
attribute "fs_serializer";

// field\param\weather\weather_data.bin
// field\param\weather\weather_data_alt.bin

table WeatherEntry {
    Field_00:ubyte ; // all except 0
    Field_01:[int] (required); // unused in main, used in _alt
    Field_02:[string] (required);
    Field_03:float; // entry 2 3 4 5 6 7 8
    Field_04:float; // entry 2 3 4 5 6 7 8
    Field_05:float; // entry 2 3 4 5 6 7 8 9 10 11 12 14
    Field_06:float; // unused
    Field_07:float; // entry 2 3
    Field_08:float; // entry 2 3 7
    Field_09:uint;
    Field_10:uint;
    Field_11:float; // entry 1 2 3 4 5 7 8 10 11 12 13 14
    Field_12:PentaFloat (required);
    Field_13:[float] (required);
    Field_14:[float] (required);
    Field_15:QuadFloatSet (required);
    Field_16:QuadFloatSet (required);
    Field_17:PentaFloat (required);
    Field_18:float; // entry 1 2 3 4 5 7 8 10 11 12 13 14
    Field_19:float;
    Field_20:float;
    Field_21:[float] (required);
    Field_22:[float] (required);
    Field_23:[int] (required);
    Field_24:ubyte; // entry 9 10 11 12 13 14
    Field_25:uint; // unused
    Field_26:uint; // unused
    Field_27:ubyte; // entry 6
}

table PentaFloat {
    Field_00:float;
    Field_01:float;
    Field_02:float;
    Field_03:float;
    Field_04:float;
}

table QuadFloatSet {
    Field_00:[float] (required);
    Field_01:[float] (required);
    Field_02:[float] (required);
    Field_03:[float] (required);
}

table WeatherTable (fs_serializer) {
    Table:[WeatherEntry] (required);
}

root_type WeatherTable;
