Conditions for a task to have a bounty are :
It's part of the current milestone.
It must be clearly detailed. - If it's a bug, some attempt must be done to fix it before.
The price of the bounty will be fixed by a Centcom member, by estimating how time consuming it will be :
Full new system (20 dollars) :
Implementing every aspect of a complete major system design doc.
Major rework / Major feature (15 dollars) :
Major rework : Heavy changes on an existing system, full reorganization, significant boost in performance/readability/re-usability.
Major feature : Adding some lengthy and complex classes/struct/prefabs, complex methods.
Minor rework / Minor feature / Major fix (10 dollars) :
Minor rework : Changing a chunk of an existing system, a few classes/methods.
Minor feature : Changing a few classes, adding small classes.
Major fix : Fix impacting multiple systems and hard to solve.
Minor Bug fix / Small feature (5 dollars) :
Minor Feature : Small change to existing code.
Minor bug fix : bug that doesn't affect multiple system, that can be solved in a few changes (usually a few lines).
Anyone can claim a bounty. Bounty claimers have to show regularity in their progress to keep the bounty claim. After two weeks of inactivity (no substantial commit or change to a design doc), and if no justification is provided, anyone else can claim the bounty, on a decision of a Centcom member. One person can't claim two bounties at the same time, they can only work on one bounty task at once.
Bounty price can be modified when a pull request is ready and only upon accepting a pull request. The bounty price can only go up. As an example, if what was believed to be a simple bug fix, actually needed a major rework, then the bounty price will be adjusted to reflect fairly the work of the contributor. The decision is taken by a Centcom member.