If you want to know how I figured all that out, just watch these "Immunology" lectures:
https://www.khanacademy.org/science/biology/human-biology#immunologythey explain everything. (I would welcome anyone picking something wrong with anything I have said.)
Why did Pfizer (and others) only put the spike protein mRNA code into the vaccine? They could have put most of the virus's mRNA code into vaccine, but left out something important to prevent a working virus from being produced by the vaccine.
If they did that, the vaccine infected cells would produce the virus's signature for the T-Cells and the result would be perfect virus immunity for life from just one or two doses - same as most other vaccines that use an almost complete (or dead) virus. In fact it would be far better, because the dud virus is manufactured by the vaccine infected cell, and not in the lab, and this would train T-Cells to kill virus infected cells perfectly.
But, of course, a perfect vaccine would not make them as much money as an anti-body drug that needs to be given to everybody every 6mths (for life) to maintain the antibodies. => One time customer business model VS cash cow for life business model.