{"id":19291865,"url":"https://github.com/dmnd/civlottery","last_synced_at":"2026-06-13T18:37:33.220Z","repository":{"id":15925841,"uuid":"18667686","full_name":"dmnd/civlottery","owner":"dmnd","description":"Assigns random civs to players, but allows players to veto initial assignments.","archived":false,"fork":false,"pushed_at":"2014-04-11T10:02:09.000Z","size":130,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-05T20:20:43.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dmnd.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-04-11T08:36:19.000Z","updated_at":"2014-04-11T10:02:05.000Z","dependencies_parsed_at":"2022-09-07T08:00:59.789Z","dependency_job_id":null,"html_url":"https://github.com/dmnd/civlottery","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnd%2Fcivlottery","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnd%2Fcivlottery/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnd%2Fcivlottery/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dmnd%2Fcivlottery/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dmnd","download_url":"https://codeload.github.com/dmnd/civlottery/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240395743,"owners_count":19794572,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T22:28:16.926Z","updated_at":"2025-11-14T18:14:56.505Z","avatar_url":"https://github.com/dmnd.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"civlottery\n==========\n\nAssigns random civs to players, but allows players to veto initial assignments.\n\nSee the testgame directory for example input. Vetoes should be listed in the order they are received.\n\nNerdy details\n-------------\n\nNote that the scheme does not require players to trust the player who executes\nthe script. This is likely completely unnecessary, but was fun to design\nanyway.\n\nIt works by allowing (but not requiring) each player to contribute a seed. All\nseeds are combined to seed the random number generator. So that players don't\nhave to trust the executor, the executor should generate their seed before any other player does, and publicise a hash of this seed.\n\nOnce final assignments have been generated, the executor can prove the results\nwere not tampered with by publishing all seeds. Any other player should then be\nable to reproduce the assignments, verifying that they are fair.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmnd%2Fcivlottery","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdmnd%2Fcivlottery","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdmnd%2Fcivlottery/lists"}