@Varpie @box464 @ivan
Yes. Depending on what you want I'd follow a more design-first approach of the particular domain you want to model. And not shy away from custom types, or better, an existing domain-specific vocab.
On the fediverse there's this urge to try to cram and map any functionality on the poor #ActivityStreams vocabulary, which only has a small number of 'social networking primitives' to work with. The use case section in the spec at par. 5.8.12 states that Offer involves "offering one object to another" which is a very low-level technical ability, more indicating of a protocol capability than for general use as "business domain".
https://www.w3.org/TR/activitystreams-vocabulary/#motivations
In your last scenario "Bidding" seems to indicate the business domain / bounded context, part of perhaps a larger eCommerce toplevel domain. You might use https://eventmodeling.org
Also: who is the actor? You may have an Offer service, and "OfferService announces Alice's offer".
Interesting too: https://offerbots.org/the-problem/