... You're suggesting we get into a bidding war against ourselves in order to force priorities?
Not quite. Dwarves put their own bids on the market as well.
We're still a single, Communist overlord, as all workshops are owned by the state. The only way to truly be capitalist is to let dwarves build workshops themselves, based upon their own ability to assess what the market will bear, granting players only the ability to "zone for commerce" or "zone for industry".
... and letting dwarves be masters of their own destinies would be an engraved invitation for all kinds of facepalming fun.
Yes, zoning should be possible. It should be something like "this space for rent" and anything built on it will cost the dwarf a rental sum paid to the fort. The player should be able to dictate the magnitude and if the cost is one-time (freehold) or continuous (rented). The player dezoning the area would pay the dwarves back and all things on the dezoned area would belong to the player.
Apart from zoning, the player can directly comission a construct building job. And thus own the resulting building. Which can then be sold (freehold) or rented (per job) at a price dictated by the player.
Of course, the player would need tools that would automatically adjust the cost of buying/renting to a formula based on the current or last traded price that was not a government sale/buy. (say a percentage higher/lower or a +- fixed amount)
or simply a number (so you can build a fortress store of food and offer a flat sell price to dictate a price ceiling to stave off starvation for a while in case the worst happens and your economy goes to hell)
Of course, this requires that dwarves would be able to add jobs to the queue themselves. Like "I think I want a new table".
-> Attempts to queue place table task (he doesn't own an unplaced table)
-> If/once he has a table, he either places the table himself or queues the place table task (he will only queue the task if he has a higher payoff job to do), or keeps it unplaced and in the stockpile
-> Queues a buy table order at certain price (dependent on his ability to pay and how much he is willing to)
-> If another dwarf owns an table he has placed a sell order for and sell order is lower or equal price than the buy order, the table gets sold at the average between the two (perhaps affected by the negotiator skill?)
-> If there's more than one sell order, simply pick the one with the lowest price (equal prices could roll a negotiation check to see who gets the sale)
-> If there's no table for sale, a job to make a table for him at that price gets queued
-> when a mason is free, he calculates his return for that job (pay - material cost - cost of work) and compares that number to all the other jobs. Let's say he takes the job.
-> Mason has his own workshop and attempts to use his own stones to do the job but doesn't have any. He queues a buy stone order, which operates in the same manner as the buy table order
-> once he gets his stone, he builds the table, receives payment and automatically sells the table to the dwarf that commissioned the job
-> if he can't get his stone, the dwarf wanting the table might cancel his order (say he bought something else and can't pay) and the mason would then immediately cancel his buy stone order
-> Miner looks at buy stone order and looks for a suitable free mining area the player can designate (controlling cost per square mined). Calculates his payoff from price of stone - (average number of squares mined per stone x cost per square) and decides to mine a stone and pay the state. Poof.
The player has control due to setting the price of stone (very low) and wood (very high or even "not for sale"). Thus the payoff for wood tables is very low or negative and carpenters won't waste wood on tables.
The player has more subtle control over the pricing of space in the stockpile since stuff in there becomes the player's if the dwarf refuses to pay rent for it. And dwarves will not queue unplaced loose items if they don't have space for it.
Hauling is paid by the owner of the item hauled. Inability to pay for it leads to the state repossessing the item and paying for it to be hauled.
Forbid and dump causes the state to buy the item immediately at a price related to the price that type of item was last traded at.
Of course, the player can queue his own buy/sell orders to influence the volume on the market. Some tools to use are trackers like price index, total money supply, total jobs queued and so on. Perhaps even allowing players to set up their own calculations.
Of course this entire thing depends on dwarves not slacking off.
EDIT: also gives alot of automation to every job. Since the player can now just place buy orders for end products and all the others will get queued by the dwarves trying to do their jobs.