syntax = "proto3";

package iwa.ttf.token.sustainability.common;

import "google/protobuf/timestamp.proto";
option csharp_namespace = "IWA.TTF.Token.Sustainability.Common";
option java_package = "org.iwa.ttf.token.sustainability.common";
option java_multiple_files = true;

enum AddressType
{
    POSTAL = 0; //default
    PHYSICAL = 1; //physical address
    LEGAL = 2; //legal address
}

message Date{
    string date_time = 1; //more granular timestamp yyyy-MM-dd'T'HH:mm:ss.SSSZ
    string date_string = 2; //can be a simple date format yyyy-MM-dd
}

message DatePoint{
    Date date = 1; //can be a simple date format DD/MM/YYYY or MM/DD/YYYY
    google.protobuf.Timestamp time_stamp = 2; //granular timestamp for precise range measurement
}

message DateRange{
    DatePoint start_date = 1; //start date of the range
    DatePoint end_date = 2; //end date of the range
}

message Address{
    AddressType address_type = 1; //postal, physical, legal
    repeated string address_lines = 2; //street address, P.O. box, company name, c/o
    string city = 3; //city, town, village
    string state = 4; //state, province, region
    string zip = 5; //zip code, postal code
    string country = 6; //country
}

enum ProjectScale {
    MICRO = 0; //less than 1000 tCO2e
    SMALL = 1; //1000 - 10000 tCO2e
    MEDIUM = 2; //10000 - 100000 tCO2e
    LARGE = 3; //100000 - 1000000 tCO2e
}

enum Region
{
    GLOBAL = 0;
    CENTRAL_AMERICA = 1;
    CENTRAL_ASIA = 2;
    EAST_ASIA =3;
    EUROPE = 4;
    INTERNATIONAL = 5;
    MIDDLE_EAST = 6;
    NORTH_AFRICA = 7;
    NORTH_AMERICA = 8;
    OCEANIA = 9;
    SOUTH_AMERICA = 10;
    SOUTH_ASIA = 11;
    SOUTH_EAST_ASIA = 12;
    SUB_SAHARAN_AFRICA = 13;
    EAST_AFRICA = 14;
}

enum HashAlgorithm
{
    SHA256 = 0; //default
    SHA3 = 1; //SHA3-256
}

message VerifiedLink{
    string id = 1; //unique identifier for the link
    string uri = 2; //uniform resource identifier for the data
    string description = 3; //description of the link or data
    string hash_proof = 4; //hash of the data in the link
    HashAlgorithm hash_algorithm = 5; //default SHA256
}

enum ClassificationCategory{
    CARBON_AVOIDANCE = 0; //default
    CARBON_REDUCTION = 1; //carbon reduction
    CARBON_REMOVAL = 2; //carbon removal
    WATER = 3; //water
    BIODIVERSITY = 4; //biodiversity
    RENEWABLE_SOLAR = 5; //solar
    RENEWABLE_WIND = 6; //wind
    UNDEFINED = 50; //undefined
}

//not complete based on UN SDGs
enum CoBenefit {
    NO_CATEGORY = 0;
    NO_POVERTY = 1;
    ZERO_HUNGER = 2;
    GOOD_HEALTH_AND_WELL_BEING = 3;
    QUALITY_EDUCATION = 4;
    GENDER_EQUALITY = 5;
    CLEAN_WATER_AND_SANITATION = 6;
    AFFORDABLE_AND_CLEAN_ENERGY = 7;
    DECENT_WORK_AND_ECONOMIC_GROWTH = 8;
    INDUSTRY_INNOVATION_AND_INFRASTRUCTURE = 9;
    REDUCED_INEQUALITIES = 10;
    SUSTAINABLE_CITIES_AND_COMMUNITIES = 11;
    RESPONSIBLE_CONSUMPTION_AND_PRODUCTION = 12;
    CLIMATE_ACTION = 13;
    LIFE_BELOW_WATER = 14;
    LIFE_ON_LAND = 15;
    PEACE_JUSTICE_AND_STRONG_INSTITUTIONS = 16;
    PARTNERSHIPS_FOR_THE_GOALS = 17;
}

enum ProjectScope
{
    OTHER = 0;
    AGRICULTURE = 1;
    CARBON_CAPTURE_AND_STORAGE = 2;
    CHEMICAL_PROCESSES = 3;
    FORESTRY_AND_LAND_USE = 4;
    HOUSEHOLD_AND_COMMUNITY = 5;
    INDUSTRIAL_MANUFACTURING = 6;
    RENEWABLE_ENERGY = 7;
    TRANSPORTATION = 8;
    WASTE_MANAGEMENT = 9;
}

enum ProjectType{
    ADVANCED_REFRIDERANTS = 0;
    AFFORESTATION_REFORESTATION = 1;
    ALUMINUM_SMELTERS_EMISSION_REDUCTIONS = 2;
    AVOIDED_FOREST_CONVERSION = 3;
    AVOIDED_GRASSLAND_CONVERSION = 4;
    BYCYCLES = 5;
    BIODIGESTERS = 6;
    BIOMASS = 7;
    BRICK_MANUFACTURING_EMISSION_REDUCTIONS = 8;
    BUNDLED_COMPOST_PRODUCTION_AND_SOIL_APPLICATION = 9;
    BUNDLED_ENERGY_EFFICIENCY = 10;
    CARBON_CAPTURE_AND_ENHANCED_OIL_RECOVERY = 11;
    CARBON_CAPTURE_IN_CEMENT = 12;
    CARBON_CAPTURE_IN_PLASTIC = 13;
    CLEAN_WATER = 14;
    COMMUNITY_BOREHOLES = 15;
    COMPOST_ADDITION_TO_RANGELAND_SOIL = 16;
    COMPOSTING = 17;
    COOKSTOVES = 18;
    ELECTRIC_VEHICLES_AND_CHARGING = 19;
    ENERGY_EFFICIENCY = 20;
    FEED_ADDITIVES = 21;
    FLEET_EFFICIENCY = 22;
    FUEL_SWITCHING = 23;
    FUEL_TRANSPORT = 24;
    GEOTHERMAL = 25;
    GRID_EXPANSION_AND_MINI_GRIDS = 26;
    HFC_REFRIGERANT_RECLAMATION = 27;
    HFC_REPLACEMENT_IN_FOAM_PRODUCTION = 28;
    HFC23_DESTRUCTION = 29;
    HYDROPOWER = 30;
    IMPROVED_FOREST_MANAGEMENT = 31;
    IMPROVED_IRRIGATION_MANAGEMENT = 32;
    LANDFILL_METHANE = 33;
    LEAK_DETECTION_AND_REPAIR_IN_GAS_SYSTEMS = 34;
    LIGHTING = 35;
    MANURE_METHANE_DIGESTER = 36;
    MASS_TRANSIT = 37;
    METHANE_RECOVERY_IN_WASTEWATER = 38;
    MINE_METHANE_CAPTURE = 39;
    MINERALIZATION = 40;
    N20_DESTRUCTION_IN_ADIPIC_ACID_PRODUCTION = 41;
    N20_DESTRUCTION_IN_NITRIC_ACID_PRODUCTION = 42;
    NATURAL_GAS_ELECTRICITY_GENERATION = 43;
    NITROGEN_MANAGEMENT = 44;
    OIL_RECYCLING = 45;
    OZONE_DEPLETING_SUBSTANCES_RECOVERY_AND_DESTRUCTION = 46;
    PNEUMATIC_RETROFIT = 47;
    PROPYLENE_OXIDE_PRODUCTION = 48;
    RE_BUNDLED = 49;
    REDD_PLUS = 50;
    REFRIGERANT_LEAK_DETECTION = 51;
    RICE_EMISSION_REDUCTIONS = 52;
    SF6_REPLACEMENT = 53;
    SHIPPING = 54;
    SOLAR_CENTRALIZED = 55;
    SOLAR_DISTRIBUTED = 56;
    SOLAR_LIGHTING = 57;
    SOLAR_WATER_HEATERS = 58;
    SOLID_WASTE_SEPARATION = 59;
    SUSTAINABLE_AGRICULTURE = 60;
    SUSTAINABLE_GRASSLAND_MANAGEMENT = 61;
    TRUCK_STOP_ELECTRIFICATION = 62;
    UNIVERSITY_CAMPUS_EMISSION_REDUCTIONS = 63;
    WASTE_DIVERSION = 64;
    WASTE_GAS_RECOVERY = 65;
    WASTE_HEAT_RECOVERY = 66;
    WASTE_INCINERATION = 67;
    WASTE_RECYCLING = 68;
    WEATHERIZATION = 69;
    WETLAND_RESTORATION = 70;
    WIND = 71;
    BIOCHAR = 72;
    CARBONATED_MATERIALS = 73;
    CARBON_CAPTURE_IN_GEOLOGICAL_STORAGE = 74;
    ENHANCED_ROCK_WEATHERING = 75;
    TERRESTRIAL_STORAGE_OF_BIOMASS = 76;
}

//Includes GNSS and or GeographicArea as GeoJson, Kml as string or file
message GeographicLocation{
    string longitude = 1; //longitude in Decimal Degrees (DD)
    string latitude = 2; //latitude in Decimal Degrees (DD)
    string geo_json_or_kml = 3; //geojson or kml
    VerifiedLink geographic_location_file = 4; //link to a file containing geojson, kml or other geographic area data
}


enum MeasurementSpecification{
    ISO_14064 = 0; //The activity claim is based on the ISO 14064 standard.
    ISO_14064_1 = 1; //The activity claim is based on the ISO 14064-1 standard.
    ISO_14064_2 = 2; //The activity claim is based on the ISO 14064-2 standard.
}

enum CarbonCategory{
    REDUCTION = 0; //indicates that the activity claim is for a reduction of GHG emissions.
    REMOVAL = 1; //indicates that the activity claim is for a removal of GHG emissions.
}

enum Method{
    NATURAL = 0; //The activity claim uses natural or natural methods.
    TECHNOLOGICAL = 1; //The activity claim uses technology.
    BOTH_NATURAL_AND_TECHNOLOGICAL = 2; //The activity claim uses both natural and technology methods, some activities, such as biomass energy carbon capture and storage (BECCS), may involve natural and technological elements.
}

//this is the data structure for the Core Carbon Principal attribute Mitigation Activity.
message MitigationActivity{
    CarbonCategory category = 1; //Category of the mitigation activity.
    Method method = 2; //Method of the mitigation activity.
}

//Carbon sequestration can be biological or geological.
enum Storage{
    BIOLOGICAL = 0; //The activity claim is for biological carbon sequestration.
    GEOLOGICAL = 1; //The activity claim is for geological carbon sequestration.
    MATERIALS = 2; //The activity claim is for materials carbon sequestration.
}

enum DegradationType{
    NOT_APPLICABLE = 0; //The activity claim is not applicable to degradation.
    LINEAR = 1; //The activity claim is linear degradation.
    EXPONENTIAL = 2; //The activity claim is exponential degradation.
}

//Estimated risk of reversal or release of carbon via natural and social causes prematurely.
enum ReversalRisk{
    ZERO = 0; //GHG reservoirs are subject to zero risk if the form of carbon storage is such that stored CO2e cannot conceivably be released into the atmosphere. This also includes activity types with no storage, and thus no risk of reversal, e.g., Enhanced weathering of minerals, mineralisation, renewable energy, other activities leading to lower demand for fossil fuel.
    LOW = 1; //GHG reservoirs might be subject to low risk of reversal if the characteristics of storage reservoirs (e.g., the geological formation in which carbon is to be stored,in the case of carbon capture and storage) and monitoring requirements virtually eliminate risk, e.g. Carbon capture and storage in geological formations, direct air capture and storage.
    MATERIAL = 2; //GHG reservoirs might be subject to significant reversal risks if: risks of reversal are exogenous and/or unavoidable (e.g., extreme weather events, invasive pest outbreaks, and wildfires); the GHG reservoir is subject to natural disturbance and natural fluxes in carbon inventories; reversal events may or can be expected to occur over a specified time horizon (100 years); a mitigation activity proponent could have economic interests in intentionally causing a reversal (for example cutting down a forest for timber or changing land use to agriculture), e.g. Improved forest management, afforestation/reforestation, enhanced soil organic carbon sequestration, Avoided deforestation, sequestration via harvested wood products (for example buildings)
}

enum DurabilityInsuranceType{
    BUFFER_POOL = 0; //an accountable impact organization or insurance product can set aside credits into a pool for risk mitigation. If needed issued credits can be revoked and replaced by credits from the pool.
    REFUND = 1; //purchase price of the credit is refunded to the buyer and the credit is revoked.
}

enum InsurancePolicyOwner{
    ACCOUNTABLE_IMPACT_ORG = 0; //the accountable impact organization is the owner of the insurance policy.
    ISSUING_REGISTRY = 1; //the issuing registry is the owner of the insurance policy.
    RETIRER = 2; //the retirer is the owner of the insurance policy.
    CUSTODIAN = 3; //the custodian is the owner of the insurance policy.
}

//the frequency that a claim source reports data
enum ReportingFrequency{
    SUB_HOURLY = 0; //sub-hourly reporting
    HOURLY = 1; //hourly reporting
    DAILY = 2; //daily reporting
    SUB_WEEKLY = 3; //sub-weekly reporting
    WEEKLY = 4; //weekly reporting
    SUB_MONTHLY = 5; //sub-monthly reporting
    MONTHLY = 6; //monthly reporting
    ONCE_PER_CLAIM = 7; //once per claim reporting
}

enum UnitOfMeasure{
    TONNE_CO2E = 0;
    TONNE_CO2 = 1;
    TONNE_CH4 = 2;
    TONNE_N2O = 3;
    TONNE_S = 4;
    TONNE_NOX = 5;
    TONNE_SOX = 6;
    TONNE_PM10 = 7;
    TONNE_PM2_5 = 8;
    TONNE_VOC = 9;
    TONNE_NH3 = 10;
    TONNE_PFC = 11;
    TONNE_SF6 = 12;
    TONNE_HFC = 13;
    TONNE_CFC = 14;
    TONNE_HFC23 = 15;
    TONNE_HFC32 = 16;
    TONNE_HFC125 = 17;
    TONNE_HFC134a = 18;
    TONNE_HFC143a = 19;
    TONNE_HFC227ea = 20;
    TONNE_HFC245fa = 21;
    TONNE_HFC365mfc = 22;
    TONNE_HFC4310mee = 23;
    TONNE_C2F6 = 24;
    TONNE_C3F8 = 25;
    TONNE_C4F10 = 26;
    TONNE_C5F12 = 27;
    TONNE_C6F14 = 28;
    TONNE_C7F16 = 29;
    TONNE_C8F18 = 30;
    TONNE_C10F18 = 31;
    TONNE_C12F18 = 32;
    TONNE_C14F18 = 33;
    TONNE_C16F18 = 34;
    TONNE_C18F18 = 35;
    TONNE_C20F18 = 36;
    TONNE_C22F18 = 37;
    TONNE_C24F18 = 38;
    TONNE_C26F18 = 39;
    TONNE_C28F18 = 40;
    TONNE_C30F18 = 41;
    TONNE_C32F18 = 42;
    TONNE_C34F18 = 43;
    LITER = 100;
    KILOGRAM = 101;
    CUBIC_METER = 102;
    KILOWATT = 103;
    MEGAWATT = 104;
    MEGAJUOLE = 105;
    KILOMETER = 106;
    SQUARE_METER = 107;
    TONNE = 108;
    MW_H = 109;
    KW_H = 110;
    MULTIPLE = 111;
}

enum CreditStatus{
    ACTIVE = 0; //the credit is active and can be used for compliance or voluntary purposes
    INACTIVE = 1; //the credit is inactive and can not be used for compliance or voluntary purposes
    REVOKED = 2; //the credit has been revoked and can not be used for compliance or voluntary purposes
    RETIRED = 3; //the credit has been retired and can not be used for compliance or voluntary purposes
}

//how the credit value was determined
enum GenerationType {
    GENERATED = 0; //the credit was generated by evidence collected and verified by the project; verifier and registry
    EX_ANTE = 1; //the credit represents forecasted emissions reductions
    EX_POST = 2; //the credit represents historical emissions reductions
}

enum Standard{
    G_S_VER =  0; //Voluntary: Gold Standard Verified Emissions Reduction
    V_C_S =  1; //Voluntary: Certified Carbon Standard generates VCUs
    V_O_S =  2; //Voluntary: Voluntary Offset Standard
    C_C_B =  3; //Voluntary: Climate
    GREEN_E =  4; //Voluntary: US renewable energy
    C_D_M =  5; //Compliance: Clean Development Mechanism generates CERs
    J_I =  6; //Compliance: Joint Implementation - Kyoto binding targets generation of ERUs
    E_U_A =  7; //Compliance: European Union Allowances
    PURO = 8; //Voluntary: Puro Standard verified durable carbon removal
    I_REC = 9; //Voluntary: I-REC Standard renewable energy
    PENDING =  100; //Other
}

enum CorrespondingAdjustment {
    NONE = 0; //there is no Corresponding adjustment associated with this credit. Meaning the country of origin for the credit will not subtract the credit from their Nationally Determined Contributions (NDCs)if the credit is exported and consumed in a different country.
    PARIS_AGREEMENT_COMPLIANT = 1; //there is verified Corresponding adjustment associated with this credit. Meaning the country of origin for the credit will not count the credit in their Nationally Determined Contributions (NDCs)so the credit can be exported and count in a different country's NDC.
    PARIS_AGREEMENT_PENDING_COMPLIANCE = 2; //there is corresponding adjustment associated with this credit; that is pending verification. Meaning the country of origin for the credit will not count the credit in their Nationally Determined Contributions (NDCs)so the credit can be exported and count in a different country's NDC.
}

message PACompliance{
    CorrespondingAdjustment c_a = 1; //does the credit require or have a CA?
    VerifiedLink letter_of_approval = 2; //Link to the letter of approval for the CA. 
    string i_t_m_o_id = 3; //ID of the ITMO that the CA is associated with. Format: <identifier of cooperative approach>-<identifier of the originating party registry>-<identifier of the first transferring party>-<serial number>-<vintage of the underlying mitigation outcome>-<authorizations>, example CA12-EU01-SP-1236500-2022-NIO
}

message ClimateLabel
{
    string id = 1; //unique identifier for the label
    string name = 2; //name of the label
    string description = 3; //description of the label
}

enum AuditSchedule{            
    ANNUAL = 0; //annual audits
    BIANNUAL = 1; //biannual audits
    BIENNIAL = 2; //biennial audits
    TRIENNIAL = 3; //triennial audits
    QUADRENNIAL = 4; //quadrennial audits
    QUINQUENNIAL = 5; //quinquennial audits
}

//ISO 3166-1 alpha-2 country codes
enum Country{
    UNKNOWN = 0; //unknown country
    A_F = 1; //"Afghanistan" 
    A_X = 2; //"Åland Islands" 
    A_L = 3; //"Albania" 
    D_Z = 4; //"Algeria" 
    A_S = 5; //"American Samoa" 
    A_D = 6; //"Andorra" 
    A_O = 7; //"Angola" 
    A_I = 8; //"Anguilla" 
    A_Q = 9; //"Antarctica" 
    A_G = 10; //"Antigua and Barbuda" 
    A_R = 11; //"Argentina" 
    A_M = 12; //"Armenia" 
    A_W = 13; //"Aruba" 
    A_U = 14; //"Australia" 
    A_T = 15; //"Austria" 
    A_Z = 16; //"Azerbaijan" 
    B_S = 17; //"Bahamas" 
    B_H = 18; //"Bahrain" 
    B_D = 19; //"Bangladesh" 
    B_B = 20; //"Barbados" 
    B_Y = 21; //"Belarus" 
    B_E = 22; //"Belgium" 
    B_Z = 23; //"Belize" 
    B_J = 24; //"Benin" 
    B_M = 25; //"Bermuda" 
    B_T = 26; //"Bhutan" 
    B_O = 27; //"Bolivia (Plurinational State of)" 
    B_Q = 28; //"Bonaire; Sint Eustatius and Saba" 
    B_A = 29; //"Bosnia and Herzegovina" 
    B_W = 30; //"Botswana" 
    B_V = 31; //"Bouvet Island" 
    B_R = 32; //"Brazil" 
    I_O = 33; //"British Indian Ocean Territory" 
    B_N = 34; //"Brunei Darussalam" 
    B_G = 35; //"Bulgaria" 
    B_F = 36; //"Burkina Faso" 
    B_I = 37; //"Burundi" 
    C_V = 38; //"Cabo Verde" 
    K_H = 39; //"Cambodia" 
    C_M = 40; //"Cameroon" 
    C_A = 41; //"Canada" 
    K_Y = 42; //"Cayman Islands" 
    C_F = 43; //"Central African Republic" 
    T_D = 44; //"Chad" 
    C_L = 45; //"Chile" 
    C_N = 46; //"China" 
    C_X = 47; //"Christmas Island" 
    C_C = 48; //"Cocos (Keeling) Islands" 
    C_O = 49; //"Colombia" 
    K_M = 50; //"Comoros" 
    C_G = 51; //"Congo" 
    C_D = 52; //"Congo (Democratic Republic of the)" 
    C_K = 53; //"Cook Islands" 
    C_R = 54; //"Costa Rica" 
    C_I = 55; //"Côte d'Ivoire" 
    H_R = 56; //"Croatia" 
    C_U = 57; //"Cuba" 
    C_W = 58; //"Curaçao" 
    C_Y = 59; //"Cyprus" 
    C_Z = 60; //"Czechia" 
    D_K = 61; //"Denmark" 
    D_J = 62; //"Djibouti" 
    D_M = 63; //"Dominica" 
    D_O = 64; //"Dominican Republic" 
    E_C = 65; //"Ecuador" 
    E_G = 66; //"Egypt" 
    S_V = 67; //"El Salvador" 
    G_Q = 68; //"Equatorial Guinea" 
    E_R = 69; //"Eritrea" 
    E_E = 70; //"Estonia" 
    E_T = 71; //"Ethiopia" 
    F_K = 72; //"Falkland Islands (Malvinas)" 
    F_O = 73; //"Faroe Islands" 
    F_J = 74; //"Fiji" 
    F_I = 75; //"Finland" 
    F_R = 76; //"France" 
    G_F = 77; //"French Guiana" 
    P_F = 78; //"French Polynesia" 
    T_F = 79; //"French Southern Territories" 
    G_A = 80; //"Gabon" 
    G_M = 81; //"Gambia" 
    G_E = 82; //"Georgia" 
    D_E = 83; //"Germany" 
    G_H = 84; //"Ghana" 
    G_I = 85; //"Gibraltar" 
    G_R = 86; //"Greece" 
    G_L = 87; //"Greenland" 
    G_D = 88; //"Grenada" 
    G_P = 89; //"Guadeloupe" 
    G_U = 90; //"Guam" 
    G_T = 91; //"Guatemala" 
    G_G = 92; //"Guernsey" 
    G_N = 93; //"Guinea" 
    G_W = 94; //"Guinea-Bissau" 
    G_Y = 95; //"Guyana" 
    H_T = 96; //"Haiti" 
    H_M = 97; //"Heard Island and McDonald Islands" 
    V_A = 98; //"Holy See" 
    H_N = 99; //"Honduras" 
    H_K = 100; //"Hong Kong" 
    H_U = 101; //"Hungary" 
    I_S = 102; //"Iceland" 
    I_N = 103; //"India" 
    I_D = 104; //"Indonesia" 
    I_R = 105; //"Iran (Islamic Republic of)" 
    I_Q = 106; //"Iraq" 
    I_E = 107; //"Ireland" 
    I_M = 108; //"Isle of Man" 
    I_L = 109; //"Israel" 
    I_T = 110; //"Italy" 
    J_M = 111; //"Jamaica" 
    J_P = 112; //"Japan" 
    J_E = 113; //"Jersey" 
    J_O = 114; //"Jordan" 
    K_Z = 115; //"Kazakhstan" 
    K_E = 116; //"Kenya" 
    K_I = 117; //"Kiribati" 
    K_P = 118; //"Korea (Democratic People's Republic of)" 
    K_R = 119; //"Korea (Republic of)" 
    K_W = 120; //"Kuwait" 
    K_G = 121; //"Kyrgyzstan" 
    L_A = 122; //"Lao People's Democratic Republic" 
    L_V = 123; //"Latvia" 
    L_B = 124; //"Lebanon" 
    L_S = 125; //"Lesotho" 
    L_R = 126; //"Liberia" 
    L_Y = 127; //"Libya" 
    L_I = 128; //"Liechtenstein" 
    L_T = 129; //"Lithuania" 
    L_U = 130; //"Luxembourg" 
    M_O = 131; //"Macao" 
    M_K = 132; //"Macedonia (the former Yugoslav Republic of)" 
    M_G = 133; //"Madagascar" 
    M_W = 134; //"Malawi" 
    M_Y = 135; //"Malaysia" 
    M_V = 136; //"Maldives" 
    M_L = 137; //"Mali" 
    M_T = 138; //"Malta" 
    M_H = 139; //"Marshall Islands" 
    M_Q = 140; //"Martinique" 
    M_R = 141; //"Mauritania" 
    M_U = 142; //"Mauritius" 
    Y_T = 143; //"Mayotte" 
    M_X = 144; //"Mexico" 
    F_M = 145; //"Micronesia (Federated States of)" 
    M_D = 146; //"Moldova (Republic of)" 
    M_C = 147; //"Monaco" 
    M_N = 148; //"Mongolia" 
    M_E = 149; //"Montenegro" 
    M_S = 150; //"Montserrat" 
    M_A = 151; //"Morocco" 
    M_Z = 152; //"Mozambique" 
    M_M = 153; //"Myanmar" 
    N_A = 154; //"Namibia" 
    N_R = 155; //"Nauru" 
    N_P = 156; //"Nepal" 
    N_L = 157; //"Netherlands" 
    N_C = 158; //"New Caledonia" 
    N_Z = 159; //"New Zealand" 
    N_I = 160; //"Nicaragua" 
    N_E = 161; //"Niger" 
    N_G = 162; //"Nigeria" 
    N_U = 163; //"Niue" 
    N_F = 164; //"Norfolk Island" 
    M_P = 165; //"Northern Mariana Islands" 
    N_O = 166; //"Norway" 
    O_M = 167; //"Oman" 
    P_K = 168; //"Pakistan" 
    P_W = 169; //"Palau" 
    P_S = 170; //"Palestine; State of" 
    P_A = 171; //"Panama" 
    P_G = 172; //"Papua New Guinea" 
    P_Y = 173; //"Paraguay" 
    P_E = 174; //"Peru" 
    P_H = 175; //"Philippines" 
    P_N = 176; //"Pitcairn" 
    P_L = 177; //"Poland" 
    P_T = 178; //"Portugal" 
    P_R = 179; //"Puerto Rico" 
    Q_A = 180; //"Qatar" 
    R_E = 181; //"Réunion" 
    R_O = 182; //"Romania" 
    R_U = 183; //"Russian Federation" 
    R_W = 184; //"Rwanda" 
    B_L = 185; //"Saint Barthélemy" 
    S_H = 186; //"Saint Helena; Ascension and Tristan da Cunha" 
    K_N = 187; //"Saint Kitts and Nevis" 
    L_C = 188; //"Saint Lucia" 
    M_F = 189; //"Saint Martin (French part)" 
    P_M = 190; //"Saint Pierre and Miquelon" 
    V_C = 191; //"Saint Vincent and the Grenadines" 
    W_S = 192; //"Samoa" 
    S_M = 193; //"San Marino" 
    S_T = 194; //"Sao Tome and Principe" 
    S_A = 195; //"Saudi Arabia" 
    S_N = 196; //"Senegal" 
    R_S = 197; //"Serbia" 
    S_C = 198; //"Seychelles" 
    S_L = 199; //"Sierra Leone" 
    S_G = 200; //"Singapore"
    S_X = 201; //"Sint Maarten (Dutch part)" 
    S_K = 202; //"Slovakia" 
    S_I = 203; //"Slovenia" 
    S_B = 204; //"Solomon Islands" 
    S_O = 205; //"Somalia" 
    Z_A = 206; //"South Africa" 
    G_S = 207; //"South Georgia and the South Sandwich Islands" 
    S_S = 208; //"South Sudan" 
    E_S = 209; //"Spain" 
    L_K = 210; //"Sri Lanka" 
    S_D = 211; //"Sudan" 
    S_R = 212; //"Suriname" 
    S_J = 213; //"Svalbard and Jan Mayen" 
    S_Z = 214; //"Swaziland" 
    S_E = 215; //"Sweden" 
    C_H = 216; //"Switzerland" 
    S_Y = 217; //"Syrian Arab Republic" 
    T_W = 218; //"Taiwan; Province of China[a]" 
    T_J = 219; //"Tajikistan" 
    T_Z = 220; //"Tanzania; United Republic of" 
    T_H = 221; //"Thailand" 
    T_L = 222; //"Timor-Leste" 
    T_G = 223; //"Togo" 
    T_K = 224; //"Tokelau" 
    T_O = 225; //"Tonga" 
    T_T = 226; //"Trinidad and Tobago" 
    T_N = 227; //"Tunisia" 
    T_R = 228; //"Turkey" 
    T_M = 229; //"Turkmenistan" 
    T_C = 230; //"Turks and Caicos Islands" 
    T_V = 231; //"Tuvalu" 
    U_G = 232; //"Uganda" 
    U_A = 233; //"Ukraine" 
    A_E = 234; //"United Arab Emirates" 
    G_B = 235; //"United Kingdom of Great Britain and Northern Ireland" 
    U_S = 236; //"United States of America" 
    U_M = 237; //"United States Minor Outlying Islands" 
    U_Y = 238; //"Uruguay" 
    U_Z = 239; //"Uzbekistan" 
    V_U = 240; //"Vanuatu" 
    V_E = 241; //"Venezuela (Bolivarian Republic of)" 
    V_N = 242; //"Viet Nam" 
    V_G = 243; //"Virgin Islands (British)" 
    V_I = 244; //"Virgin Islands (U.S.)" 
    W_F = 245; //"Wallis and Futuna" 
    E_H = 246; //"Western Sahara" 
    Y_E = 247; //"Yemen" 
    Z_M = 248; //"Zambia" 
    Z_W = 249; //"Zimbabwe" 
}

//Attestations can take the form of traditional PKI/JWT or Verified Credentials
enum AttestationType{
    RS256 = 0; //JSON Web Token
    VC = 1; //Verified Credentials
}

// The type of attestation requested, supports two types: JWT, along with a ciphertype and Verified Credentials.
enum ProofType{
    JWT = 0; //JSON Web Token
    DIP = 1; //Data Integrity Proofs
    CL_ZKP = 2; //Camenisch-Lysyanskaya Zero-Knowledge Proofs
}

enum CredentialType{
    VERIFIABLE_CREDENTIAL = 0; //Verifiable Credentials
    VERIFIABLE_PRESENTATION = 1; //Verifiable Presentations
    IDENTITY_CREDENTIAL = 2; //Identity Credentials

}

enum SignatureType{
    J_W_S = 0; //JSON Web Signature
    VERIFIED_CREDENTIAL = 1; //Verified Credentials
}

// Attestation needs further definition
message Attestation{
    Tag tag = 1; //The tag of the attestation
    AttestationType type = 2; //The type of attestation 
    ProofType proof_type = 3; //The type of proof 
    string attestor = 4; //The id or address of the attestor
    DigitalSignature signature = 5; //The signature of attestation
}

// A tag's structure can vary based on implementation, for example using Verified Credentials or DIDs.
message Tag{
    string name = 1; //The name of the tag
    repeated string context = 2; //The context or data type the tag applies to
    string description = 3; //The description of the tag
    string data = 4; //Serialized tag properties
}

//A digital signature that can support both JWT and VC
message DigitalSignature{
    SignatureType type = 1; //The type of signature
    oneof signature{
        string jws = 2; //The json serialized signature
        Credential vc = 3; //The Verified Credential
    }
}

message Proof{
    ProofType type = 1; //The type of proof
    string created = 2; //The creation date of the proof
    string proofPurpose = 3; //The purpose of the proof
    string verificationMethod = 4; //The verification method of the proof
    string challenge = 5; //Optional for Presentations for replay attacks, the challenge of the proof
    string domain = 6; //Optional for Presentations for replay attacks, the domain of the proof
    string jws = 7; //The JSON Web Signature of the proof
}

message Credential{
    repeated string context = 1; //The context of the credential
    string id = 2; //The id of the credential
    repeated CredentialType type = 3; //The type of credential
    string issuer = 4; //The issuer of the credential
    string issuanceDate = 5; //The issuance date of the credential
    message CredentialSubject{
        string id = 1; //The id of the subject
        repeated string property = 2; //The claims of the subject
    }
    CredentialSubject credentialSubject = 6; //The subject of the credential
    Proof proof = 7; //The proof of the credential
}

message VerifiablePresentation{
    string id = 1; //The id of the presentation
    SignatureType type = 2; //The type of presentation
    string holder = 3; //The holder of the presentation
    repeated Credential credentials = 4; //The credentials of the presentation
    Proof proof = 5; //The proof of the presentation
}

enum MethodologyAndTool{
    UNKNOWN_METHOD = 0; //Unknown method
    ACR_TRUCK_STOP_ELECTRIFICATION = 1; //ACR - Truck Stop Electrification
    ACR_ADVANCED_REFRIGERATION_SYSTEMS = 2; //ACR - Advanced Refrigeration Systems
    ACR_CERTIFIED_RECLAIMED_HFC_REFRIGERANTS_PROPELLANTS_AND_FIRE_SUPPRESSANTS_ACR_DESTRUCTION_OF_OZONE_DEPLETING_SUBSTANCES_AND_HIGH_GWP_FOAM = 3; //ACR - Certified Reclaimed HFC Refrigerants, Propellants, and Fire Suppressants ACR - Destruction of Ozone Depleting Substances and High-GWP Foam
    ACR_DESTRUCTION_OF_OZONE_DEPLETING_SUBSTANCES_FROM_INTERNATIONAL_SOURCES = 4; //ACR - Destruction of Ozone Depleting Substances from International Sources
    ACR_TRANSITION_TO_ADVANCED_FORMULATION_BLOWING_AGENTS_IN_FOAM_MANUFACTURING_AND_USE_ACR_AFIESTORATION_AND_REFORESTATION_OF_DEGRADED_LANDS = 5; //ACR - Transition to Advanced Formulation Blowing Agents in Foam Manufacturing and Use ACR - Afiorestation and Reforestation of Degraded Lands
    ACR_AVOIDED_CONVERSION_OF_GRASSLANDS_AND_SHRUBLANDS_TO_CROP_PRODUCTION = 6; //ACR - Avoided Conversion of Grasslands and Shrublands to Crop Production
    ACR_IMPROVED_FOREST_MANAGEMENT_IFM_ON_CANADIAN_FORESTLANDS = 7; //ACR - Improved Forest Management (IFM) on Canadian Forestlands
    ACR_IMPROVED_FOREST_MANAGEMENT_IFM_ON_NON_FEDERAL_U_S_FORESTLANDS = 8; //ACR - Improved Forest Management (IFM) on Non-Federal U.S. Forestlands
    ACR_IMPROVED_FOREST_MANAGEMENT_IFM_ON_SMALL_NON_INDUSTRIAL_PRIVATE_FORESTLANDS = 9; //ACR - Improved Forest Management (IFM) on Small Non-Industrial Private Forestlands
    ACR_RESTORATION_OF_CALIFORNIA_DELTAIC_AND_COASTAL_WETLANDS = 10; //ACR - Restoration of California Deltaic and Coastal Wetlands
    ACR_RESTORATION_OF_POCOSIN_WETLANDS = 11; //ACR - Restoration of Pocosin Wetlands
    ACR_CARBON_CAPTURE_AND_STORAGE_PROJECTS = 12; //ACR - Carbon Capture and Storage Projects
    ACR_LANDFILL_GAS_DESTRUCTION_AND_BENEFICIAL_USE_PROJECTS = 13; //ACR - Landfill Gas Destruction and Beneficial Use Projects
    CAR_BIOCHAR = 14; //CAR - Biochar
    CAR_CANADA_GRASSLAND = 15; //CAR - Canada Grassland
    CAR_GRASSLAND = 16; //CAR - Grassland
    CAR_MEXICO_BOILER_EFICIENCY = 17; //CAR - Mexico Boiler Eficiency
    CAR_MEXICO_HALOCARBON = 18; //CAR - Mexico Halocarbon
    CAR_MEXICO_OZONE_DEPLETING_SUBSTANCES = 19; //CAR - Mexico Ozone Depleting Substances
    CAR_NITROGEN_MANAGEMENT = 20; //CAR - Nitrogen Management
    CAR_SOIL_ENRICHMENT = 21; //CAR - Soil Enrichment
    CAR_URBAN_FOREST_MANAGEMENT = 22; //CAR - Urban Forest Management
    CAR_US_LANDFILL = 23; //CAR - U.S. Landfill
    CDM_AM0007 = 24; //CDM - AM0007
    CDM_AM0009 = 25; //CDM - AM0009
    CDM_AM0017 = 26; //CDM - AM0017
    CDM_AM0018 = 27; //CDM - AM0018
    CDM_AM0019 = 28; //CDM - AM0019
    CDM_AM0020 = 29; //CDM - AM0020
    CDM_AM0021 = 30; //CDM - AM0021
    CDM_AM0023 = 31; //CDM - AM0023
    CDM_AM0026 = 32; //CDM - AM0026
    CDM_AM0027 = 33; //CDM - AM0027
    CDM_AM0028 = 34; //CDM - AM0028
    CDM_AM0030 = 35; //CDM - AM0030
    CDM_AM0031 = 36; //CDM - AM0031
    CDM_AM0035 = 37; //CDM - AM0035
    CDM_AM0036 = 38; //CDM - AM0036
    CDM_AM0037 = 39; //CDM - AM0037
    CDM_AM0038 = 40; //CDM - AM0038
    CDM_AM0043 = 41; //CDM - AM0043
    CDM_AM0044 = 42; //CDM - AM0044
    CDM_AM0045 = 43; //CDM - AM0045
    CDM_AM0046 = 44; //CDM - AM0046
    CDM_AM0048 = 45; //CDM - AM0048
    CDM_AM0049 = 46; //CDM - AM0049
    CDM_AM0050 = 47; //CDM - AM0050
    CDM_AM0052 = 48; //CDM - AM0052
    CDM_AM0053 = 49; //CDM - AM0053
    CDM_AM0055 = 50; //CDM - AM0055
    CDM_AM0056 = 51; //CDM - AM0056
    CDM_AM0057 = 52; //CDM - AM0057
    CDM_AM0058 = 53; //CDM - AM0058
    CDM_AM0059 = 54; //CDM - AM0059
    CDM_AM0060 = 55; //CDM - AM0060
    CDM_AM0061 = 56; //CDM - AM0061
    CDM_AM0062 = 57; //CDM - AM0062
    CDM_AM0063 = 58; //CDM - AM0063
    CDM_AM0064 = 59; //CDM - AM0064
    CDM_AM0065 = 60; //CDM - AM0065
    CDM_AM0066 = 61; //CDM - AM0066
    CDM_AM0067 = 62; //CDM - AM0067
    CDM_AM0068 = 63; //CDM - AM0068
    CDM_AM0069 = 64; //CDM - AM0069
    CDM_AM0070 = 65; //CDM - AM0070
    CDM_AM0071 = 66; //CDM - AM0071
    CDM_AM0072 = 67; //CDM - AM0072
    CDM_AM0073 = 68; //CDM - AM0073
    CDM_AM0074 = 69; //CDM - AM0074
    CDM_AM0075 = 70; //CDM - AM0075
    CDM_AM0076 = 71; //CDM - AM0076
    CDM_AM0077 = 72; //CDM - AM0077
    CDM_AM0078 = 73; //CDM - AM0078
    CDM_AM0079 = 74; //CDM - AM0079
    CDM_AM0080 = 75; //CDM - AM0080
    CDM_AM0081 = 76; //CDM - AM0081
    CDM_AM0082 = 77; //CDM - AM0082
    CDM_AM0083 = 78; //CDM - AM0083
    CDM_AM0084 = 79; //CDM - AM0084
    CDM_AM0086 = 80; //CDM - AM0086
    CDM_AM0088 = 81; //CDM - AM0088
    CDM_AM0089 = 82; //CDM - AM0089
    CDM_AM0090 = 83; //CDM - AM0090
    CDM_AM0091 = 84; //CDM - AM0091
    CDM_AM0092 = 85; //CDM - AM0092
    CDM_AM0093 = 86; //CDM - AM0093
    CDM_AM0094 = 87; //CDM - AM0094
    CDM_AM0095 = 88; //CDM - AM0095
    CDM_AM0096 = 89; //CDM - AM0096
    CDM_AM0097 = 90; //CDM - AM0097
    CDM_AM0098 = 91; //CDM - AM0098
    CDM_AM0099 = 92; //CDM - AM0099
    CDM_AM0100 = 93; //CDM - AM0100
    CDM_AM0101 = 94; //CDM - AM0101
    CDM_AM0103 = 95; //CDM - AM0103
    CDM_AM0104 = 96; //CDM - AM0104
    CDM_AM0105 = 97; //CDM - AM0105
    CDM_AM0106 = 98; //CDM - AM0106
    CDM_AM0107 = 99; //CDM - AM0107
    CDM_AM0108 = 100; //CDM - AM0108
    CDM_AM0109 = 101; //CDM - AM0109
    CDM_AM0110 = 102; //CDM - AM0110
    CDM_AM0111 = 103; //CDM - AM0111
    CDM_AM0112 = 104; //CDM - AM0112
    CDM_AM0113 = 105; //CDM - AM0113
    CDM_AM0114 = 106; //CDM - AM0114
    CDM_AM0115 = 107; //CDM - AM0115
    CDM_AM0116 = 108; //CDM - AM0116
    CDM_AM0117 = 109; //CDM - AM0117
    CDM_AM0118 = 110; //CDM - AM0118
    CDM_AM0119 = 111; //CDM - AM0119
    CDM_AM0120 = 112; //CDM - AM0120
    CDM_AM0121 = 113; //CDM - AM0121
    CDM_AM0122 = 114; //CDM - AM0122
    CDM_AMS_I_A = 115; //CDM - AMS-I.A.
    CDM_AMS_I_B = 116; //CDM - AMS-I.B.
    CDM_AMS_I_C = 117; //CDM - AMS-I.C.
    CDM_AMS_I_D = 118; //CDM - AMS-I.D.
    CDM_AMS_I_E = 119; //CDM - AMS-I.E.
    CDM_AMS_I_F = 120; //CDM - AMS-I.F.
    CDM_AMS_I_G = 121; //CDM - AMS-I.G.
    CDM_AMS_I_H = 122; //CDM - AMS-I.H.
    CDM_AMS_I_I = 123; //CDM - AMS-I.I.
    CDM_AMS_I_J = 124; //CDM - AMS-I.J.
    CDM_AMS_I_K = 125; //CDM - AMS-I.K.
    CDM_AMS_I_L = 126; //CDM - AMS-I.L.
    CDM_AMS_I_M = 127; //CDM - AMS-I.M.
    CDM_AMS_II_A = 128; //CDM - AMS-II.A.
    CDM_AMS_II_B = 129; //CDM - AMS-II.B.
    CDM_AMS_II_C = 130; //CDM - AMS-II.C.
    CDM_AMS_II_D = 131; //CDM - AMS-II.D.
    CDM_AMS_II_E = 132; //CDM - AMS-II.E.
    CDM_AMS_II_F = 133; //CDM - AMS-II.F.
    CDM_AMS_II_G = 134; //CDM - AMS-II.G.
    CDM_AMS_II_H = 135; //CDM - AMS-II.H.
    CDM_AMS_II_I = 136; //CDM - AMS-II.I.
    CDM_AMS_II_J = 137; //CDM - AMS-II.J.
    CDM_AMS_II_K = 138; //CDM - AMS-II.K.
    CDM_AMS_II_L = 139; //CDM - AMS-II.L.
    CDM_AMS_II_M = 140; //CDM - AMS-II.M.
    CDM_AMS_II_N = 141; //CDM - AMS-II.N.
    CDM_AMS_II_O = 142; //CDM - AMS-II.O.
    CDM_AMS_II_P = 143; //CDM - AMS-II.P.
    CDM_AMS_II_Q = 144; //CDM - AMS-II.Q.
    CDM_AMS_II_R = 145; //CDM - AMS-II.R.
    CDM_AMS_II_S = 146; //CDM - AMS-II.S.
    CDM_AMS_II_T = 147; //CDM - AMS-II.T.
    CDM_AMS_III_A = 148; //CDM - AMS-III.A.
    CDM_AMS_III_B = 149; //CDM - AMS-III.B.
    CDM_AMS_III_C = 150; //CDM - AMS-III.C.
    CDM_AMS_III_D = 151; //CDM - AMS-III.D.
    CDM_AMS_III_E = 152; //CDM - AMS-III.E.
    CDM_AMS_III_F = 153; //CDM - AMS-III.F.
    CDM_AMS_III_G = 154; //CDM - AMS-III.G.
    CDM_AMS_III_H = 155; //CDM - AMS-III.H.
    CDM_AMS_III_I = 156; //CDM - AMS-III.I.
    CDM_AMS_III_J = 157; //CDM - AMS-III.J.
    CDM_AMS_III_K = 158; //CDM - AMS-III.K.
    CDM_AMS_III_L = 159; //CDM - AMS-III.L.
    CDM_AMS_III_M = 160; //CDM - AMS-III.M.
    CDM_AMS_III_N = 161; //CDM - AMS-III.N.
    CDM_AMS_III_O = 162; //CDM - AMS-III.O.
    CDM_AMS_III_P = 163; //CDM - AMS-III.P.
    CDM_AMS_III_Q = 164; //CDM - AMS-III.Q.
    CDM_AMS_III_R = 165; //CDM - AMS-III.R.
    CDM_AMS_III_S = 166; //CDM - AMS-III.S.
    CDM_AMS_III_T = 167; //CDM - AMS-III.T.
    CDM_AMS_III_U = 168; //CDM - AMS-III.U.
    CDM_AMS_III_V = 169; //CDM - AMS-III.V.
    CDM_AMS_III_W = 170; //CDM - AMS-III.W.
    CDM_AMS_III_X = 171; //CDM - AMS-III.X.
    CDM_AMS_III_Y = 172; //CDM - AMS-III.Y.
    CDM_AMS_III_Z = 173; //CDM - AMS-III.Z.
    CDM_AMS_III_AA = 174; //CDM - AMS-III.AA.
    CDM_AMS_III_AB = 175; //CDM - AMS-III.AB.
    CDM_AMS_III_AC = 176; //CDM - AMS-III.AC.
    CDM_AMS_III_AD = 177; //CDM - AMS-III.AD.
    CDM_AMS_III_AE = 178; //CDM - AMS-III.AE.
    CDM_AMS_III_AF = 179; //CDM - AMS-III.AF.
    CDM_AMS_III_AG = 180; //CDM - AMS-III.AG.
    CDM_AMS_III_AH = 181; //CDM - AMS-III.AH.
    CDM_AMS_III_AI = 182; //CDM - AMS-III.AI.
    CDM_AMS_III_AJ = 183; //CDM - AMS-III.AJ.
    CDM_AMS_III_AK = 184; //CDM - AMS-III.AK.
    CDM_AMS_III_AL = 185; //CDM - AMS-III.AL.
    CDM_AMS_III_AM = 186; //CDM - AMS-III.AM.
    CDM_AMS_III_AN = 187; //CDM - AMS-III.AN.
    CDM_AMS_III_AO = 188; //CDM - AMS-III.AO.
    CDM_AMS_III_AP = 189; //CDM - AMS-III.AP.
    CDM_AMS_III_AQ = 190; //CDM - AMS-III.AQ.
    CDM_AMS_III_AR = 191; //CDM - AMS-III.AR.
    CDM_AMS_III_AS = 192; //CDM - AMS-III.AS.
    CDM_AMS_III_AT = 193; //CDM - AMS-III.AT.
    CDM_AMS_III_AU = 194; //CDM - AMS-III.AU.
    CDM_AMS_III_AV = 195; //CDM - AMS-III.AV.
    CDM_AMS_III_AW = 196; //CDM - AMS-III.AW.
    CDM_AMS_III_AX = 197; //CDM - AMS-III.AX.
    CDM_AMS_III_AY = 198; //CDM - AMS-III.AY.
    CDM_AMS_III_BA = 199; //CDM - AMS-III.BA.
    CDM_AMS_III_BB = 200; //CDM - AMS-III.BB.
    CDM_AMS_III_BC = 201; //CDM - AMS-III.BC.
    CDM_AMS_III_BD = 202; //CDM - AMS-III.BD.
    CDM_AMS_III_BE = 203; //CDM - AMS-III.BE.
    CDM_AMS_III_BF = 204; //CDM - AMS-III.BF.
    CDM_AMS_III_BG = 205; //CDM - AMS-III.BG.
    CDM_AMS_III_BH = 206; //CDM - AMS-III.BH.
    CDM_AMS_III_BI = 207; //CDM - AMS-III.BI.
    CDM_AMS_III_BJ = 208; //CDM - AMS-III.BJ.
    CDM_AMS_III_BK = 209; //CDM - AMS-III.BK.
    CDM_AMS_III_BL = 210; //CDM - AMS-III.BL.
    CDM_AMS_III_BM = 211; //CDM - AMS-III.BM.
    CDM_AMS_III_BN = 212; //CDM - AMS-III.BN.
    CDM_AMS_III_BO = 213; //CDM - AMS-III.BO.
    CDM_AMS_III_BP = 214; //CDM - AMS-III.BP.
    CDM_AR_MA0014 = 215; //CDM - AR-AMS0007.
    GS_METHODOLOGY_FOR_METERED_AND_MEASURED_ENERGY_COOKING_DEVICES = 216; //GS - METHODOLOGY FOR METERED & MEASURED ENERGY COOKING DEVICES.
    GS_SOIL_ORGANIC_CARBON_ACTIVITY_MODULE_FOR_APPLICATION_OF_ORGANIC_SOIL_IMPROVERS_FROM_PULP_AND_PAPER_MILL_SLUDGES = 217; //GS - SOIL ORGANIC CARBON ACTIVITY MODULE FOR APPLICATION OF ORGANIC SOIL IMPROVERS FROM PULP AND PAPER MILL SLUDGES.
    GS_REDUCED_EMISSIONS_FROM_COOKING_AND_HEATING_TECHNOLOGIES_AND_PRACTICES_TO_DISPLACE_DECENTRALIZED_THERMAL_ENERGY_CONSUMPTION_TPDDTEC = 218; //GS - REDUCED EMISSIONS FROM COOKING AND HEATING ‚Äì TECHNOLOGIES AND PRACTICES TO DISPLACE DECENTRALIZED THERMAL ENERGY CONSUMPTION (TPDDTEC).
    VCS_VM0001 = 219; //VCS - VM0001.
    VCS_VM0002 = 220; //VCS - VM0002.
    VCS_VM0003 = 221; //VCS - VM0003.
    VCS_VM0004 = 222; //VCS - VM0004.
    VCS_VM0005 = 223; //VCS - VM0005.
    VCS_VM0006 = 224; //VCS - VM0006.
    VCS_VM0007 = 225; //VCS - VM0007.
    VCS_VM0008 = 226; //VCS - VM0008.
    VCS_VM0009 = 227; //VCS - VM0009.
    VCS_VM0010 = 228; //VCS - VM0010.
    VCS_VM0011 = 229; //VCS - VM0011.
    VCS_VM0012 = 230; //VCS - VM0012.
    VCS_VM0013 = 231; //VCS - VM0013.
    VCS_VM0014 = 232; //VCS - VM0014.
    VCS_VM0015 = 233; //VCS - VM0015.
    VCS_VM0016 = 234; //VCS - VM0016.
    VCS_VM0017 = 235; //VCS - VM0017.
    VCS_VM0018 = 236; //VCS - VM0018.
    VCS_VM0019 = 237; //VCS - VM0019.
    VCS_VM0020 = 238; //VCS - VM0020.
    VCS_VM0021 = 239; //VCS - VM0021.
    VCS_VM0022 = 240; //VCS - VM0022.
    VCS_VM0023 = 241; //VCS - VM0023.
    VCS_VM0024 = 242; //VCS - VM0024.
    VCS_VM0025 = 243; //VCS - VM0025.
    VCS_VM0026 = 244; //VCS - VM0026.
    VCS_VM0027 = 245; //VCS - VM0027.
    VCS_VM0028 = 246; //VCS - VM0028.
    VCS_VM0029 = 247; //VCS - VM0029.
    VCS_VM0030 = 248; //VCS - VM0030.
    VCS_VM0031 = 249; //VCS - VM0031.
    VCS_VM0032 = 250; //VCS - VM0032.
    VCS_VM0033 = 251; //VCS - VM0033.
    VCS_VM0034 = 252; //VCS - VM0034.
    VCS_VM0035 = 253; //VCS - VM0035.
    VCS_VM0036 = 254; //VCS - VM0036.
    VCS_VM0037 = 255; //VCS - VM0037.
    VCS_VM0038 = 256; //VCS - VM0038.
    VCS_VM0039 = 257; //VCS - VM0039.
    VCS_VM0040 = 258; //VCS - VM0040.
    VCS_VM0041 = 259; //VCS - VM0041.
    VCS_VM0042 = 260; //VCS - VM0042.
    VCS_VM0043 = 261; //VCS - VM0043.
    VCS_VMR000 = 262; //VCS - VMR000.
    VCS_VMR006 = 263; //VCS - VMR006.
    ID_PM044 = 264;
    ID_PM043 = 265;
    ID_PM042 = 266;
    ID_PM041 = 267;
    ID_PM040 = 268;
    ID_PM039 = 269;
    ID_AM028 = 270;
    ID_AM027 = 271;
    ID_AM026 = 272;
    ID_AM025 = 273;
    ID_AM024 = 274;
    ID_AM023 = 275;
    ID_AM022 = 276;
    ID_AM021 = 277;
    ID_AM020 = 278;
    ID_AM006 = 279;
    VN_PM028 = 280;
    ID_AM019 = 281;
    VN_PM027 = 282;
    ID_AM018 = 283;
    ID_AM007 = 284;
    TH_PM026 = 285;
    VN_PM026 = 286;
    VN_PM025 = 287;
    TH_PM025 = 288;
    ID_AM009 = 289;
    VN_PM024 = 290;
    ID_AM017 = 291;
    TH_PM024 = 292;
    ID_AM016 = 293;
    VN_PM023 = 294;
    TH_PM023 = 295;
    ID_AM015 = 296;
    TH_PM022 = 297;
    VN_AM015 = 298;
    VN_AM009 = 299;
    ID_AM014 = 300;
    TH_PM021 = 301;
    TH_AM017 = 302;
    ID_AM013 = 303;
    VN_AM014 = 304;
    VN_AM013 = 305;
    TH_AM016 = 306;
    VN_AM012 = 307;
    TH_AM015 = 308;
    ID_AM011 = 309;
    TH_AM001 = 310;
    VN_AM011 = 311;
    ID_AM012 = 312;
    VN_AM010 = 313;
    TH_AM014 = 314;
    ID_AM008 = 315;
    VN_AM006 = 316;
    TH_AM013 = 317;
    TH_AM012 = 318;
    VN_AM004 = 319;
    ID_AM005 = 320;
    ID_AM004 = 321;
    TH_AM011 = 322;
    VN_AM003 = 323;
    ID_AM003 = 324;
    VN_AM002 = 325;
    TH_AM010 = 326;
    ID_AM002 = 327;
    TH_AM009 = 328;
    ID_AM010 = 329;
    VN_AM008 = 330;
    TH_AM008 = 331;
    TH_AM005 = 332;
    VN_AM007 = 333;
    TH_AM007 = 334;
    VN_AM001 = 335;
    MM_PM007 = 336;
    TH_AM006 = 337;
    MM_PM006 = 338;
    VN_AM005 = 339;
    KH_AM004 = 340;
    TH_AM002 = 341;
    KH_AM005 = 342;
    BD_PM005 = 343;
    MM_AM005 = 344;
    TH_AM004 = 345;
    LA_AM004 = 346;
    BD_AM001 = 347;
    MN_AM003 = 348;
    MM_AM004 = 349;
    KE_AM003 = 350;
    LA_AM003 = 351;
    MM_AM003 = 352;
    CR_AM003 = 353;
    KH_AM003 = 354;
    PH_PM003 = 355;
    TH_AM003 = 356;
    CL_AM001 = 357;
    ET_AM003 = 358;
    BD_AM003 = 359;
    BD_AM002 = 360;
    ET_AM002 = 361;
    KE_AM002 = 362;
    CR_AM002 = 363;
    LA_AM002 = 364;
    KH_AM002 = 365;
    MV_AM002 = 366;
    MM_AM002 = 367;
    PH_AM002 = 368;
    MN_AM002 = 369;
    CL_AM002 = 370;
    PW_AM001 = 371;
    PH_AM001 = 372;
    KE_AM001 = 373;
    KH_AM001 = 374;
    SA_AM001 = 375;
    MN_AM001 = 376;
    MM_AM001 = 377;
    CR_AM001 = 378;
    ID_AM001 = 379;
    MX_AM001 = 380;
    ET_AM001 = 381;
    LA_AM001 = 382;
    MV_AM001 = 383;
    VM_VM0049 = 384; //CCS+ - VM0049 Carbon Capture and Storage
}