Draft - Content (text, evidence, witnesses, etc’)
Filed / Open (Confirmation Stage) - valid case open for discussion (allow participant sot add more evidence, witnesses, q&a, etc’)
/// Initialize
function initialize(address hub, string memory name_, string calldata uri_, DataTypes.RuleRef[] memory addRules, DataTypes.InputRoleToken[] memory assignRoles, address container) external ;
/// Set Contract URI
function setContractURI(string calldata contract_uri) external;
/// Contract URI
function contractURI() external view returns (string memory);
/// Apply to join a jurisdiction
function applyTojoin(string memory uri) external;
/// Assign Someone to a Role
function roleAssign(address account, string calldata role) external;
/// Unique Members Addresses
function uniqueMembers(string memory role) external view returns (address[] memory);
/// Unique Members Count (w/Token)
function uniqueMembersCount(string memory role) external view returns (uint256);
/// File the Case (Validate & Open Discussion) --> Open
function stageFile() external;
/// Case Wait For Verdict --> Pending
function stageWaitForVerdict() external;
/// Case Stage: Place Verdict --> Closed
function stageVerdict(DataTypes.InputDecision[] calldata verdict, string calldata uri) external;
/// Case Stage: Reject Case --> Cancelled
function stageCancel(string calldata uri) external;
/// Add Post
function post(string calldata entRole, string calldata uri) external;
/// Set Metadata URI For Role
function setRoleURI(string memory role, string memory _tokenURI) external;
/// Case Stage Change
event Stage(DataTypes.CaseStage stage);
/// Post Verdict
event Verdict(string uri, address account);
/// Case Cancelation Data
event Cancelled(string uri, address account);
/// Rule Reference Added
event RuleAdded(address jurisdiction, uint256 ruleId);
//Rule Confirmed
event RuleConfirmed(uint256 ruleId);
/// Applied to Join the Case
event Application(uint256 indexed id, address account, string uri);
/// General Post / Evidence, etc'
event Post(address indexed account, string entRole, string uri);