type SomeVariant = variant { variant1; variant2; variant3; variant4 };
type OtherVariant = variant { other_variant1; other_variant2; other_variant3; other_variant4 };
type RecordType = record {
rec_other: opt OtherVariant;
rec_opt_vec: opt vec SomeVariant;
rec_vec_opt: vec opt SomeVariant;
rec_opt: opt SomeVariant;
};
service : (RecordType) -> { some_method : () -> (opt text) query }