Arguably, most of the critical artifacts can be deployed programmatically. Using the -responsefile option when running setup.sh or setup.exe creates a file that can be edited or just replayed against the same or similar SAS Depot. Manual changes using SASMC can be exported as objects into .spk for everything else. There are other interfaces (%mdu* , proc metadata, Java APIs) which I find less useful.
SAS is dictating the use of the SDW The SAS Deployment Wizard. As that wizard more a charlatan there is common need to reprogram it different. You are using poweshell that is nice like using rpm yum git endevor rational and many others that are used for deployment.
For the middleware sas-system there is big challenge. For the business applications your can set the standard that no adjustments are needed.
To achieve that you can use OS system-environment variables that are used within metadata definitions.