Mesh should be made up of quads and triangles, there should not be any n-gons. Best practice is to use as little triangles as possible and keep quads without triangulation where possible. Keep in mind that the geometry will still be triangulated automatically if it is imported into most game engines or converted into certain formats, so in some cases it might be better to pre-triangulate certain faces to make sure they do not get triangulated the wrong way and create shape or shading issues, like with non-convex faces.
No non-manifold geometry
Non-manifold geometry generally refers to geometry that could not realistically exist and could not be unfolded into a 2d shape; this mostly appears when a single edge is shared by more than two faces. This should be always avoided as this can create all kinds of technical issues and the model might not be usable at all in some software.
Visible backfaces should be avoided, if both sides of a face are going to be visible, then inside geometry or thickness should be added to that area. Even though backface visibility can be enabled in game engines and software, it should not be relied upon as backfaces can create technical problems or limitations.
Geometry should have some kind of smoothing applied, it should not be fully faceted. At least one smoothing group should be applied to the mesh with as few smoothing groups as possible used.