Interface blocks have different meaning in their various uses. Their declaration looks like a struct definition, but it’s not.
storage_qualifier block_name
{
<define members here>
} optional_instance_name;
storage_qualifier
: Can be one of the uniform
, in
, out
or buffer
.