Allows creating a file with no endpoints defined, just structs.  Note that this introduces a shift-reduce conflict (for empty files, not sure whether to parse as empty struct section or empty endpoint section first).  This is an acceptable conflict: ignore it.