The four elements of a contract are an offer, an acceptance, a consideration and an intention of legal consequences. An agreement has to contain all four to be regarded as a contract. It ceases to be legally binding if it drops a single element.
For a contract to be valid, it needs to have a clearly stated offer that does not contain ballpark estimates or requests for proposals. Acceptance entails that an offer has to be accepted as is, without any conditions. Consideration involves anything that one party gives to another as the agreed price for what was promised. Intention of legal consequences implies that both parties intend to enter a legally binding agreement.