Hello Dwight.
Reducing a high poly hard surface mesh to a low poly mesh can be complicated, and there is no magic button to create perfect topology for it. It may require effort. A perfectly optimized low poly mesh will always require manual retopology.
Decimation Master can be used to crunch raw polycount down, but the topology this produces will not be suitable for many purposes. It is ideal if your intended output is print, but much less so for digital render and UV, and not suitable at all for animation. In those cases it is most often used as a quick and dirty compression to make a mesh more manageable for performance reasons.
You can use Zremesher to create much higher quality topology, but low poly topology that combines curves with hard edges requires edges to be creased in order to stay hard when subdividing. If there are no curved surfaces (all flat planes) you can simply subdivide with smoothing disabled. With skill and effort, ZRemesher can produce really good results, but in some cases there will be no substitute for manually re-topologizing. The simpler your shape, the better ZRemesher will do.
The most successful process I use personally is to make sure that every surface on a mesh that is separated by a hard edge is a distinct polygroup. This can be used with the Keep Groups option in Zremesher to make it draw lines along the polygroup borders more accurately, which can then be creased all at once with the Tool > Geometry> Creasing >Crease Polygroup function.
Establishing the polygroups accurately can be a challenge on complicated high res meshes, if they weren’t constructed in the first place to have distinct polygrouping. PolyGroupIt may be useful in the most difficult cases.