syntax = "proto3"; package pb; message Claim { oneof type { Stream stream = 1; Channel channel = 2; ClaimList collection = 3; ClaimReference repost = 4; } string title = 8; string description = 9; Source thumbnail = 10; repeated string tags = 11; repeated Language languages = 12; repeated Location locations = 13; } message Stream { Source source = 1; string author = 2; string license = 3; string license_url = 4; int64 release_time = 5; // seconds since UNIX epoch Fee fee = 6; oneof type { Image image = 10; Video video = 11; Audio audio = 12; Software software = 13; } } message Channel { bytes public_key = 1; string email = 2; string website_url = 3; Source cover = 4; ClaimList featured = 5; } message ClaimReference { bytes claim_hash = 1; } message ClaimList { enum ListType { COLLECTION = 0; // play lists, etc DERIVATION = 2; // movie in multiple languages, software for different OSes } ListType list_type = 1; repeated ClaimReference claim_references = 2; } message Source { bytes hash = 1; // SHA-384 hash of the entire unencrypted file string name = 2; uint64 size = 3; string media_type = 4; string url = 5; bytes sd_hash = 6; // SHA-384 hash of the streams manifest blob } message Fee { enum Currency { UNKNOWN_CURRENCY = 0; LBC = 1; BTC = 2; USD = 3; } Currency currency = 1; bytes address = 2; uint64 amount = 3; // deweys for LBC/BTC, cents for USD } message Image { uint32 width = 1; uint32 height = 2; } message Video { uint32 width = 1; uint32 height = 2; uint32 duration = 3; Audio audio = 15; } message Audio { uint32 duration = 1; } message Software { enum OS { UNKNOWN_OS = 0; ANY = 1; LINUX = 2; WINDOWS = 3; MAC = 4; ANDROID = 5; IOS = 6; } string os = 1; } // RFC 5646 message Language { Language language = 1; Script script = 2; Location.Country region = 3; // ISO 639-1 enum Language { UNKNOWN_LANGUAGE = 0; en = 1; aa = 2; ab = 3; ae = 4; af = 5; ak = 6; am = 7; an = 8; ar = 9; as = 10; av = 11; ay = 12; az = 13; ba = 14; be = 15; bg = 16; bh = 17; bi = 18; bm = 19; bn = 20; bo = 21; br = 22; bs = 23; ca = 24; ce = 25; ch = 26; co = 27; cr = 28; cs = 29; cu = 30; cv = 31; cy = 32; da = 33; de = 34; dv = 35; dz = 36; ee = 37; el = 38; eo = 39; es = 40; et = 41; eu = 42; fa = 43; ff = 44; fi = 45; fj = 46; fo = 47; fr = 48; fy = 49; ga = 50; gd = 51; gl = 52; gn = 53; gu = 54; gv = 55; ha = 56; he = 57; hi = 58; ho = 59; hr = 60; ht = 61; hu = 62; hy = 63; hz = 64; ia = 65; id = 66; ie = 67; ig = 68; ii = 69; ik = 70; io = 71; is = 72; it = 73; iu = 74; ja = 75; jv = 76; ka = 77; kg = 78; ki = 79; kj = 80; kk = 81; kl = 82; km = 83; kn = 84; ko = 85; kr = 86; ks = 87; ku = 88; kv = 89; kw = 90; ky = 91; la = 92; lb = 93; lg = 94; li = 95; ln = 96; lo = 97; lt = 98; lu = 99; lv = 100; mg = 101; mh = 102; mi = 103; mk = 104; ml = 105; mn = 106; mr = 107; ms = 108; mt = 109; my = 110; na = 111; nb = 112; nd = 113; ne = 114; ng = 115; nl = 116; nn = 117; no = 118; nr = 119; nv = 120; ny = 121; oc = 122; oj = 123; om = 124; or = 125; os = 126; pa = 127; pi = 128; pl = 129; ps = 130; pt = 131; qu = 132; rm = 133; rn = 134; ro = 135; ru = 136; rw = 137; sa = 138; sc = 139; sd = 140; se = 141; sg = 142; si = 143; sk = 144; sl = 145; sm = 146; sn = 147; so = 148; sq = 149; sr = 150; ss = 151; st = 152; su = 153; sv = 154; sw = 155; ta = 156; te = 157; tg = 158; th = 159; ti = 160; tk = 161; tl = 162; tn = 163; to = 164; tr = 165; ts = 166; tt = 167; tw = 168; ty = 169; ug = 170; uk = 171; ur = 172; uz = 173; ve = 174; vi = 175; vo = 176; wa = 177; wo = 178; xh = 179; yi = 180; yo = 181; za = 182; zh = 183; zu = 184; } // ISO 15924 enum Script { UNKNOWN_SCRIPT = 0; Adlm = 1; Afak = 2; Aghb = 3; Ahom = 4; Arab = 5; Aran = 6; Armi = 7; Armn = 8; Avst = 9; Bali = 10; Bamu = 11; Bass = 12; Batk = 13; Beng = 14; Bhks = 15; Blis = 16; Bopo = 17; Brah = 18; Brai = 19; Bugi = 20; Buhd = 21; Cakm = 22; Cans = 23; Cari = 24; Cham = 25; Cher = 26; Cirt = 27; Copt = 28; Cpmn = 29; Cprt = 30; Cyrl = 31; Cyrs = 32; Deva = 33; Dogr = 34; Dsrt = 35; Dupl = 36; Egyd = 37; Egyh = 38; Egyp = 39; Elba = 40; Elym = 41; Ethi = 42; Geok = 43; Geor = 44; Glag = 45; Gong = 46; Gonm = 47; Goth = 48; Gran = 49; Grek = 50; Gujr = 51; Guru = 52; Hanb = 53; Hang = 54; Hani = 55; Hano = 56; Hans = 57; Hant = 58; Hatr = 59; Hebr = 60; Hira = 61; Hluw = 62; Hmng = 63; Hmnp = 64; Hrkt = 65; Hung = 66; Inds = 67; Ital = 68; Jamo = 69; Java = 70; Jpan = 71; Jurc = 72; Kali = 73; Kana = 74; Khar = 75; Khmr = 76; Khoj = 77; Kitl = 78; Kits = 79; Knda = 80; Kore = 81; Kpel = 82; Kthi = 83; Lana = 84; Laoo = 85; Latf = 86; Latg = 87; Latn = 88; Leke = 89; Lepc = 90; Limb = 91; Lina = 92; Linb = 93; Lisu = 94; Loma = 95; Lyci = 96; Lydi = 97; Mahj = 98; Maka = 99; Mand = 100; Mani = 101; Marc = 102; Maya = 103; Medf = 104; Mend = 105; Merc = 106; Mero = 107; Mlym = 108; Modi = 109; Mong = 110; Moon = 111; Mroo = 112; Mtei = 113; Mult = 114; Mymr = 115; Nand = 116; Narb = 117; Nbat = 118; Newa = 119; Nkdb = 120; Nkgb = 121; Nkoo = 122; Nshu = 123; Ogam = 124; Olck = 125; Orkh = 126; Orya = 127; Osge = 128; Osma = 129; Palm = 130; Pauc = 131; Perm = 132; Phag = 133; Phli = 134; Phlp = 135; Phlv = 136; Phnx = 137; Plrd = 138; Piqd = 139; Prti = 140; Qaaa = 141; Qabx = 142; Rjng = 143; Rohg = 144; Roro = 145; Runr = 146; Samr = 147; Sara = 148; Sarb = 149; Saur = 150; Sgnw = 151; Shaw = 152; Shrd = 153; Shui = 154; Sidd = 155; Sind = 156; Sinh = 157; Sogd = 158; Sogo = 159; Sora = 160; Soyo = 161; Sund = 162; Sylo = 163; Syrc = 164; Syre = 165; Syrj = 166; Syrn = 167; Tagb = 168; Takr = 169; Tale = 170; Talu = 171; Taml = 172; Tang = 173; Tavt = 174; Telu = 175; Teng = 176; Tfng = 177; Tglg = 178; Thaa = 179; Thai = 180; Tibt = 181; Tirh = 182; Ugar = 183; Vaii = 184; Visp = 185; Wara = 186; Wcho = 187; Wole = 188; Xpeo = 189; Xsux = 190; Yiii = 191; Zanb = 192; Zinh = 193; Zmth = 194; Zsye = 195; Zsym = 196; Zxxx = 197; Zyyy = 198; Zzzz = 199; } } message Location { Country country = 1; string state = 2; string city = 3; string code = 4; sint32 latitude = 5; sint32 longitude = 6; enum Country { UNKNOWN_COUNTRY = 0; AF = 1; AX = 2; AL = 3; DZ = 4; AS = 5; AD = 6; AO = 7; AI = 8; AQ = 9; AG = 10; AR = 11; AM = 12; AW = 13; AU = 14; AT = 15; AZ = 16; BS = 17; BH = 18; BD = 19; BB = 20; BY = 21; BE = 22; BZ = 23; BJ = 24; BM = 25; BT = 26; BO = 27; BQ = 28; BA = 29; BW = 30; BV = 31; BR = 32; IO = 33; BN = 34; BG = 35; BF = 36; BI = 37; KH = 38; CM = 39; CA = 40; CV = 41; KY = 42; CF = 43; TD = 44; CL = 45; CN = 46; CX = 47; CC = 48; CO = 49; KM = 50; CG = 51; CD = 52; CK = 53; CR = 54; CI = 55; HR = 56; CU = 57; CW = 58; CY = 59; CZ = 60; DK = 61; DJ = 62; DM = 63; DO = 64; EC = 65; EG = 66; SV = 67; GQ = 68; ER = 69; EE = 70; ET = 71; FK = 72; FO = 73; FJ = 74; FI = 75; FR = 76; GF = 77; PF = 78; TF = 79; GA = 80; GM = 81; GE = 82; DE = 83; GH = 84; GI = 85; GR = 86; GL = 87; GD = 88; GP = 89; GU = 90; GT = 91; GG = 92; GN = 93; GW = 94; GY = 95; HT = 96; HM = 97; VA = 98; HN = 99; HK = 100; HU = 101; IS = 102; IN = 103; ID = 104; IR = 105; IQ = 106; IE = 107; IM = 108; IL = 109; IT = 110; JM = 111; JP = 112; JE = 113; JO = 114; KZ = 115; KE = 116; KI = 117; KP = 118; KR = 119; KW = 120; KG = 121; LA = 122; LV = 123; LB = 124; LS = 125; LR = 126; LY = 127; LI = 128; LT = 129; LU = 130; MO = 131; MK = 132; MG = 133; MW = 134; MY = 135; MV = 136; ML = 137; MT = 138; MH = 139; MQ = 140; MR = 141; MU = 142; YT = 143; MX = 144; FM = 145; MD = 146; MC = 147; MN = 148; ME = 149; MS = 150; MA = 151; MZ = 152; MM = 153; NA = 154; NR = 155; NP = 156; NL = 157; NC = 158; NZ = 159; NI = 160; NE = 161; NG = 162; NU = 163; NF = 164; MP = 165; NO = 166; OM = 167; PK = 168; PW = 169; PS = 170; PA = 171; PG = 172; PY = 173; PE = 174; PH = 175; PN = 176; PL = 177; PT = 178; PR = 179; QA = 180; RE = 181; RO = 182; RU = 183; RW = 184; BL = 185; SH = 186; KN = 187; LC = 188; MF = 189; PM = 190; VC = 191; WS = 192; SM = 193; ST = 194; SA = 195; SN = 196; RS = 197; SC = 198; SL = 199; SG = 200; SX = 201; SK = 202; SI = 203; SB = 204; SO = 205; ZA = 206; GS = 207; SS = 208; ES = 209; LK = 210; SD = 211; SR = 212; SJ = 213; SZ = 214; SE = 215; CH = 216; SY = 217; TW = 218; TJ = 219; TZ = 220; TH = 221; TL = 222; TG = 223; TK = 224; TO = 225; TT = 226; TN = 227; TR = 228; TM = 229; TC = 230; TV = 231; UG = 232; UA = 233; AE = 234; GB = 235; US = 236; UM = 237; UY = 238; UZ = 239; VU = 240; VE = 241; VN = 242; VG = 243; VI = 244; WF = 245; EH = 246; YE = 247; ZM = 248; ZW = 249; } }