"I can teach grammar first."
The author presents the language as being like Lojban because he is fluent in it, though it's not diegetically Lojban.
Diegetically, Standard Imperial only has verbs, or predicates, with arguments being variables passed into verbs but which aren't explicitly stated (i.e. there is no syntactic difference between a matrix predicate and a relative clause). Variables are passed as arguments into multiple predicates through adjacency or anaphoric pronouns. Words inflect based on the number and type of their parameters.
Zmavlimu'ean variables can be of the following syntactic types: entity, event, property, relation, number, quote. Most predicate parameters only accept certain types of variables, and so the parameters that a variable is passed into have to agree with each other. Otherwise it's a type error and is ungrammatical. Variables have static type, but there are helper predicates (helpredicates) that create a new variable with similar meaning and different type. Here are the particles and inflections that let you open clauses to encode events, properties, relations, numbers, and quotes, and here is how you close them.
There are also semantic types that are subclassifications of each syntactic type. For example, the 'entity' type has the subclassifications 'person' and 'nonperson'. There are separate personal pronouns for persons and nonpersons — they're bijective. There's an first person pronoun for nonpersons. The pronoun section doesn't mention that it doesn't have grammatical gender, it merely doesn't talk about it.
There are no exceptions in the grammar and all words of the same class have to work the same way. It's a point of pride, though Tarban won't say that explicitly. It's possible for it to be parsed by machines and there are programs you can run to check for syntax and type correctness. Code for such parsers in several different languages (which are not necessarily meant to all be read by computers) are available as an appendix at the back of the book. The parsers don't natively catch semantic type errors, since semantic type isn't expressed morphologically through inflection, though it's possible to use dictionaries to check for it.