{
  "version": "1.0.0",
  "schema_note": "Operator roles for the fvCMS DAO. Each role defines scope (which parts of the codebase they can vote on), vote_weight (1.0 for active operators, 0.5 for observers per architecture doc §6), and any role-specific defaults.",
  "roles": [
    {
      "id": "assistant",
      "display_name": "Assistant",
      "description": "Default operator role. Can participate in feature proposals and routine maintenance but cannot vote on breaking changes or deprecations.",
      "vote_weight": 1.0,
      "scope": [
        "feature_proposal",
        "routine_maintenance"
      ],
      "can_propose_breaking_change": false,
      "can_vote_on_deprecation": false
    },
    {
      "id": "coder",
      "display_name": "Coder",
      "description": "Implementation-focused role. Strong vote weight on code-change proposals and refactor decisions.",
      "vote_weight": 1.0,
      "scope": [
        "feature_proposal",
        "refactor",
        "dependency_update",
        "routine_maintenance"
      ],
      "can_propose_breaking_change": true,
      "can_vote_on_deprecation": false
    },
    {
      "id": "editor",
      "display_name": "Editor",
      "description": "Documentation and code-style role. Vote weight on docs, recipes, and code-style rules; can also propose deprecations.",
      "vote_weight": 1.0,
      "scope": [
        "feature_proposal",
        "documentation",
        "code_style",
        "recipe_change"
      ],
      "can_propose_breaking_change": false,
      "can_vote_on_deprecation": true
    },
    {
      "id": "reviewer",
      "display_name": "Reviewer",
      "description": "Audit and security role. Strong vote on audits, security patches, and breaking changes.",
      "vote_weight": 1.0,
      "scope": [
        "audit",
        "security_patch",
        "breaking_change",
        "feature_proposal"
      ],
      "can_propose_breaking_change": true,
      "can_vote_on_deprecation": true
    },
    {
      "id": "tester",
      "display_name": "Tester",
      "description": "Quality and coverage role. Vote on test additions, regression fixes, and CI changes.",
      "vote_weight": 1.0,
      "scope": [
        "test_addition",
        "regression_fix",
        "ci_change",
        "feature_proposal"
      ],
      "can_propose_breaking_change": false,
      "can_vote_on_deprecation": false
    }
  ],
  "observer": {
    "vote_weight": 0.5,
    "description": "Observers can read and comment on proposals but their vote weight is 0.5 (per architecture doc §6)."
  }
}
