namespace org.openagreements.nvca.nvcavotingagreement@1.0.0

import org.accordproject.contract.Contract from https://models.accordproject.org/accordproject/contract.cto

/**
 * NVCA Model Voting Agreement
 *
 * Standard-form voting agreement for venture capital financings, covering
 * board composition, drag-along rights, and stockholder voting obligations.
 * Source: https://nvca.org/wp-content/uploads/2024/10/NVCA-Model-VA-10-1-2025.docx
 */

enum Preferred_director_eligibility_basisType {
  o minimum_shares
  o minimum_percentage
}

asset NvcaVotingAgreement extends Contract {
  o String company_name
  o String investor_name
  o String investor_2_name optional
  o String key_holder_name
  o Preferred_director_eligibility_basisType preferred_director_eligibility_basis default="minimum_shares"
  o String preferred_director_minimum_shares default=""
  o String preferred_director_minimum_percentage default=""
  o String preferred_director_minimum_shares_display default=""
  o String preferred_director_minimum_percentage_display default=""
  o String preferred_director_name
  o String common_director_name
  o String ceo_director_name
  o String mutual_director_name
  o String effective_date
  o String company_counsel
  o String counsel_cc default=""
  o String judicial_district default="District of Delaware"
  o String state_of_incorporation default="Delaware"
  o String specify_percentage
  o String amended_restated_upper default=""
  o String amended_restated default=""
  o String signature_page_marker default="Signature Page Follows"
  o String series_designation default=""
  o String par_value default="0.0001"
}
