I would also look at PNP tools they have many functions built in already (https://docs.microsoft.com/en-us/powershell/sharepoint/sharepoint-pnp/sharepoint-pnp-cmdlets?view=sharepoint-ps).
I have used the tool to create lists in the past example below:
Add-PnPField -List $NameOfSite -DisplayName "Date of Entry" -InternalName "DateOfEntery" -Type DateTime -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "Date Required" -InternalName "DateRequired" -Type DateTime -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "Requester" -InternalName "Requester" -Type User -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "Assigned To" -InternalName "AssignedTo" -Type User -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "Item Details" -InternalName "ItemDetials" -Type Note -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "Response/Notes" -InternalName "ResponseNotes" -Type Note -AddToDefaultView
Add-PnPField -List $NameOfSite -DisplayName "SRC Status" -InternalName "Status" -Type Choice -AddToDefaultView -Choices "In progress","Completed"