main: strictly for releases. pull latest copy for demo. main should never be broken.
dev: merge pull requests and tickets to dev. individual tickets should be on their own branch from dev. merge dev to main for releases. dirty but not broken out the gate.
ticket branches: one branch per ticket. merge into dev once ticket is complete.