mapping(address => bool) public boardMembers;
uint256 public boardMemberCount;
uint256 public boardProposalCount;
mapping(uint256 => BoardProposal) public boardProposals;
modifier onlyBoardMember();
function addBoardMember(address member) external onlyOwner;
function removeBoardMember(address member) external onlyOwner;
function createBoardProposal(string memory description, uint256 duration) external onlyBoardMember;
function voteOnBoardProposal(uint256 proposalId, bool approve) external onlyBoardMember;
function executeBoardProposal(uint256 proposalId) external onlyBoardMember;
event BoardMemberAdded(address indexed member);
event BoardMemberRemoved(address indexed member);
event BoardProposalCreated(uint256 indexed proposalId, string description, uint256 deadline);
event BoardVoteCast(uint256 indexed proposalId, address indexed voter, bool approve);
struct BoardProposal {
string description;
uint256 deadline;
uint256 approvals;
uint256 rejections;
bool executed;
mapping(address => bool) voted;
}