[{"data":1,"prerenderedAt":981},["ShallowReactive",2],{"format-page-\u002Fformat\u002Ffronting":3},{"id":4,"title":5,"body":6,"description":16,"extension":974,"meta":975,"navigation":976,"path":977,"seo":978,"stem":979,"__hash__":980},"format\u002Fformat\u002Ffronting.md","Fronting model",{"type":7,"value":8,"toc":963},"minimark",[9,13,17,20,25,114,118,122,128,482,485,529,532,537,543,578,580,623,627,632,832,836,841,843,896,900,940,944,959],[10,11,5],"h1",{"id":12},"fronting-model",[14,15,16],"p",{},"Draft v0.1",[14,18,19],{},"This page covers the shared fronting model. The goal is to accept different source app shapes without forcing every app into one representation.",[21,22,24],"h2",{"id":23},"how-apps-store-fronting","How apps store fronting",[26,27,28,44],"table",{},[29,30,31],"thead",{},[32,33,34,38,41],"tr",{},[35,36,37],"th",{},"Source pattern",[35,39,40],{},"Examples",[35,42,43],{},"Best OpenPlural target",[45,46,47,63,81,97],"tbody",{},[32,48,49,53,56],{},[50,51,52],"td",{},"Switch events",[50,54,55],{},"PluralKit",[50,57,58,62],{},[59,60,61],"code",{},"front_events[]"," directly",[32,64,65,68,71],{},[50,66,67],{},"Per-member intervals",[50,69,70],{},"Prism, Simply Plural, OpenSelves, Ampersand, PluralSpace",[50,72,73,74,77,78],{},"One ",[59,75,76],{},"FrontPeriod"," per interval with a single ",[59,79,80],{},"FrontAssignment",[32,82,83,86,89],{},[50,84,85],{},"Grouped intervals",[50,87,88],{},"Sheaf",[50,90,73,91,93,94,96],{},[59,92,76],{}," per row and one ",[59,95,80],{}," per member",[32,98,99,102,105],{},[50,100,101],{},"Tiered periods",[50,103,104],{},"Plural Star",[50,106,73,107,109,110,113],{},[59,108,76],{}," with tiered ",[59,111,112],{},"front_role"," assignments",[21,115,117],{"id":116},"record-shapes","Record shapes",[119,120,76],"h3",{"id":121},"frontperiod",[14,123,124,125,127],{},"A ",[59,126,76],{}," is an interval during which one or more members were fronting.",[129,130,135],"pre",{"className":131,"code":132,"language":133,"meta":134,"style":134},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"id\": \"front_01HV4Z...\",\n  \"system_id\": \"sys_01HV4Z...\",\n  \"started_at\": \"2026-04-29T12:00:00Z\",\n  \"ended_at\": \"2026-04-29T15:00:00Z\",\n  \"assignments\": [\n    { \"member_id\": \"mem_01HV4Z...\", \"front_role\": \"primary\" },\n    { \"member_id\": \"mem_01HV5A...\", \"front_role\": \"co_front\" }\n  ],\n  \"status\": null,\n  \"note\": null,\n  \"source_kind\": \"tiered\",\n  \"source_refs\": [{ \"app\": \"plural_star\", \"collection\": \"front_periods\", \"id\": \"p_...\" }],\n  \"extensions\": {}\n}\n","json","",[59,136,137,146,174,195,216,237,252,296,336,342,357,371,392,461,476],{"__ignoreMap":134},[138,139,142],"span",{"class":140,"line":141},"line",1,[138,143,145],{"class":144},"sMK4o","{\n",[138,147,149,152,156,159,162,165,169,171],{"class":140,"line":148},2,[138,150,151],{"class":144},"  \"",[138,153,155],{"class":154},"spNyl","id",[138,157,158],{"class":144},"\"",[138,160,161],{"class":144},":",[138,163,164],{"class":144}," \"",[138,166,168],{"class":167},"sfazB","front_01HV4Z...",[138,170,158],{"class":144},[138,172,173],{"class":144},",\n",[138,175,177,179,182,184,186,188,191,193],{"class":140,"line":176},3,[138,178,151],{"class":144},[138,180,181],{"class":154},"system_id",[138,183,158],{"class":144},[138,185,161],{"class":144},[138,187,164],{"class":144},[138,189,190],{"class":167},"sys_01HV4Z...",[138,192,158],{"class":144},[138,194,173],{"class":144},[138,196,198,200,203,205,207,209,212,214],{"class":140,"line":197},4,[138,199,151],{"class":144},[138,201,202],{"class":154},"started_at",[138,204,158],{"class":144},[138,206,161],{"class":144},[138,208,164],{"class":144},[138,210,211],{"class":167},"2026-04-29T12:00:00Z",[138,213,158],{"class":144},[138,215,173],{"class":144},[138,217,219,221,224,226,228,230,233,235],{"class":140,"line":218},5,[138,220,151],{"class":144},[138,222,223],{"class":154},"ended_at",[138,225,158],{"class":144},[138,227,161],{"class":144},[138,229,164],{"class":144},[138,231,232],{"class":167},"2026-04-29T15:00:00Z",[138,234,158],{"class":144},[138,236,173],{"class":144},[138,238,240,242,245,247,249],{"class":140,"line":239},6,[138,241,151],{"class":144},[138,243,244],{"class":154},"assignments",[138,246,158],{"class":144},[138,248,161],{"class":144},[138,250,251],{"class":144}," [\n",[138,253,255,258,260,264,266,268,270,273,275,278,280,282,284,286,288,291,293],{"class":140,"line":254},7,[138,256,257],{"class":144},"    {",[138,259,164],{"class":144},[138,261,263],{"class":262},"sBMFI","member_id",[138,265,158],{"class":144},[138,267,161],{"class":144},[138,269,164],{"class":144},[138,271,272],{"class":167},"mem_01HV4Z...",[138,274,158],{"class":144},[138,276,277],{"class":144},",",[138,279,164],{"class":144},[138,281,112],{"class":262},[138,283,158],{"class":144},[138,285,161],{"class":144},[138,287,164],{"class":144},[138,289,290],{"class":167},"primary",[138,292,158],{"class":144},[138,294,295],{"class":144}," },\n",[138,297,299,301,303,305,307,309,311,314,316,318,320,322,324,326,328,331,333],{"class":140,"line":298},8,[138,300,257],{"class":144},[138,302,164],{"class":144},[138,304,263],{"class":262},[138,306,158],{"class":144},[138,308,161],{"class":144},[138,310,164],{"class":144},[138,312,313],{"class":167},"mem_01HV5A...",[138,315,158],{"class":144},[138,317,277],{"class":144},[138,319,164],{"class":144},[138,321,112],{"class":262},[138,323,158],{"class":144},[138,325,161],{"class":144},[138,327,164],{"class":144},[138,329,330],{"class":167},"co_front",[138,332,158],{"class":144},[138,334,335],{"class":144}," }\n",[138,337,339],{"class":140,"line":338},9,[138,340,341],{"class":144},"  ],\n",[138,343,345,347,350,352,354],{"class":140,"line":344},10,[138,346,151],{"class":144},[138,348,349],{"class":154},"status",[138,351,158],{"class":144},[138,353,161],{"class":144},[138,355,356],{"class":144}," null,\n",[138,358,360,362,365,367,369],{"class":140,"line":359},11,[138,361,151],{"class":144},[138,363,364],{"class":154},"note",[138,366,158],{"class":144},[138,368,161],{"class":144},[138,370,356],{"class":144},[138,372,374,376,379,381,383,385,388,390],{"class":140,"line":373},12,[138,375,151],{"class":144},[138,377,378],{"class":154},"source_kind",[138,380,158],{"class":144},[138,382,161],{"class":144},[138,384,164],{"class":144},[138,386,387],{"class":167},"tiered",[138,389,158],{"class":144},[138,391,173],{"class":144},[138,393,395,397,400,402,404,407,409,412,414,416,418,421,423,425,427,430,432,434,436,439,441,443,445,447,449,451,453,456,458],{"class":140,"line":394},13,[138,396,151],{"class":144},[138,398,399],{"class":154},"source_refs",[138,401,158],{"class":144},[138,403,161],{"class":144},[138,405,406],{"class":144}," [{",[138,408,164],{"class":144},[138,410,411],{"class":262},"app",[138,413,158],{"class":144},[138,415,161],{"class":144},[138,417,164],{"class":144},[138,419,420],{"class":167},"plural_star",[138,422,158],{"class":144},[138,424,277],{"class":144},[138,426,164],{"class":144},[138,428,429],{"class":262},"collection",[138,431,158],{"class":144},[138,433,161],{"class":144},[138,435,164],{"class":144},[138,437,438],{"class":167},"front_periods",[138,440,158],{"class":144},[138,442,277],{"class":144},[138,444,164],{"class":144},[138,446,155],{"class":262},[138,448,158],{"class":144},[138,450,161],{"class":144},[138,452,164],{"class":144},[138,454,455],{"class":167},"p_...",[138,457,158],{"class":144},[138,459,460],{"class":144}," }],\n",[138,462,464,466,469,471,473],{"class":140,"line":463},14,[138,465,151],{"class":144},[138,467,468],{"class":154},"extensions",[138,470,158],{"class":144},[138,472,161],{"class":144},[138,474,475],{"class":144}," {}\n",[138,477,479],{"class":140,"line":478},15,[138,480,481],{"class":144},"}\n",[14,483,484],{},"Common fields:",[486,487,488,493,497,501,505,509,513,517,521,525],"ul",{},[489,490,491],"li",{},[59,492,155],{},[489,494,495],{},[59,496,181],{},[489,498,499],{},[59,500,202],{},[489,502,503],{},[59,504,223],{},[489,506,507],{},[59,508,244],{},[489,510,511],{},[59,512,349],{},[489,514,515],{},[59,516,364],{},[489,518,519],{},[59,520,378],{},[489,522,523],{},[59,524,399],{},[489,526,527],{},[59,528,468],{},[119,530,80],{"id":531},"frontassignment",[14,533,124,534,536],{},[59,535,80],{}," records a single member's role within a specific fronting period.",[14,538,539,540,542],{},"Recommended ",[59,541,112],{}," values:",[486,544,545,549,553,558,563,568,573],{},[489,546,547],{},[59,548,290],{},[489,550,551],{},[59,552,330],{},[489,554,555],{},[59,556,557],{},"co_conscious",[489,559,560],{},[59,561,562],{},"influencing",[489,564,565],{},[59,566,567],{},"member",[489,569,570],{},[59,571,572],{},"custom_status",[489,574,575],{},[59,576,577],{},"unknown",[14,579,484],{},[486,581,582,586,590,595,600,605,610,615,619],{},[489,583,584],{},[59,585,263],{},[489,587,588],{},[59,589,112],{},[489,591,592],{},[59,593,594],{},"confidence",[489,596,597],{},[59,598,599],{},"presence",[489,601,602],{},[59,603,604],{},"mood",[489,606,607],{},[59,608,609],{},"energy",[489,611,612],{},[59,613,614],{},"location",[489,616,617],{},[59,618,364],{},[489,620,621],{},[59,622,399],{},[119,624,626],{"id":625},"frontevent","FrontEvent",[14,628,124,629,631],{},[59,630,626],{}," is a point-in-time switch. This fits PluralKit switch logs well.",[129,633,635],{"className":131,"code":634,"language":133,"meta":134,"style":134},"{\n  \"id\": \"event_01HV4Z...\",\n  \"system_id\": \"sys_01HV4Z...\",\n  \"at\": \"2026-04-29T12:00:00Z\",\n  \"assignments\": [{ \"member_id\": \"mem_01HV4Z...\", \"front_role\": \"member\" }],\n  \"note\": null,\n  \"source_refs\": [{ \"app\": \"pluralkit\", \"collection\": \"switches\", \"id\": \"abcde\" }],\n  \"extensions\": {}\n}\n",[59,636,637,641,660,678,697,741,753,816,828],{"__ignoreMap":134},[138,638,639],{"class":140,"line":141},[138,640,145],{"class":144},[138,642,643,645,647,649,651,653,656,658],{"class":140,"line":148},[138,644,151],{"class":144},[138,646,155],{"class":154},[138,648,158],{"class":144},[138,650,161],{"class":144},[138,652,164],{"class":144},[138,654,655],{"class":167},"event_01HV4Z...",[138,657,158],{"class":144},[138,659,173],{"class":144},[138,661,662,664,666,668,670,672,674,676],{"class":140,"line":176},[138,663,151],{"class":144},[138,665,181],{"class":154},[138,667,158],{"class":144},[138,669,161],{"class":144},[138,671,164],{"class":144},[138,673,190],{"class":167},[138,675,158],{"class":144},[138,677,173],{"class":144},[138,679,680,682,685,687,689,691,693,695],{"class":140,"line":197},[138,681,151],{"class":144},[138,683,684],{"class":154},"at",[138,686,158],{"class":144},[138,688,161],{"class":144},[138,690,164],{"class":144},[138,692,211],{"class":167},[138,694,158],{"class":144},[138,696,173],{"class":144},[138,698,699,701,703,705,707,709,711,713,715,717,719,721,723,725,727,729,731,733,735,737,739],{"class":140,"line":218},[138,700,151],{"class":144},[138,702,244],{"class":154},[138,704,158],{"class":144},[138,706,161],{"class":144},[138,708,406],{"class":144},[138,710,164],{"class":144},[138,712,263],{"class":262},[138,714,158],{"class":144},[138,716,161],{"class":144},[138,718,164],{"class":144},[138,720,272],{"class":167},[138,722,158],{"class":144},[138,724,277],{"class":144},[138,726,164],{"class":144},[138,728,112],{"class":262},[138,730,158],{"class":144},[138,732,161],{"class":144},[138,734,164],{"class":144},[138,736,567],{"class":167},[138,738,158],{"class":144},[138,740,460],{"class":144},[138,742,743,745,747,749,751],{"class":140,"line":239},[138,744,151],{"class":144},[138,746,364],{"class":154},[138,748,158],{"class":144},[138,750,161],{"class":144},[138,752,356],{"class":144},[138,754,755,757,759,761,763,765,767,769,771,773,775,778,780,782,784,786,788,790,792,795,797,799,801,803,805,807,809,812,814],{"class":140,"line":254},[138,756,151],{"class":144},[138,758,399],{"class":154},[138,760,158],{"class":144},[138,762,161],{"class":144},[138,764,406],{"class":144},[138,766,164],{"class":144},[138,768,411],{"class":262},[138,770,158],{"class":144},[138,772,161],{"class":144},[138,774,164],{"class":144},[138,776,777],{"class":167},"pluralkit",[138,779,158],{"class":144},[138,781,277],{"class":144},[138,783,164],{"class":144},[138,785,429],{"class":262},[138,787,158],{"class":144},[138,789,161],{"class":144},[138,791,164],{"class":144},[138,793,794],{"class":167},"switches",[138,796,158],{"class":144},[138,798,277],{"class":144},[138,800,164],{"class":144},[138,802,155],{"class":262},[138,804,158],{"class":144},[138,806,161],{"class":144},[138,808,164],{"class":144},[138,810,811],{"class":167},"abcde",[138,813,158],{"class":144},[138,815,460],{"class":144},[138,817,818,820,822,824,826],{"class":140,"line":298},[138,819,151],{"class":144},[138,821,468],{"class":154},[138,823,158],{"class":144},[138,825,161],{"class":144},[138,827,475],{"class":144},[138,829,830],{"class":140,"line":338},[138,831,481],{"class":144},[119,833,835],{"id":834},"frontcomment","FrontComment",[14,837,124,838,840],{},[59,839,835],{}," is a comment anchored to a moment in time and optionally tied to a period or event.",[14,842,484],{},[486,844,845,849,853,858,863,868,873,878,883,888,892],{},[489,846,847],{},[59,848,155],{},[489,850,851],{},[59,852,181],{},[489,854,855],{},[59,856,857],{},"front_period_id",[489,859,860],{},[59,861,862],{},"front_event_id",[489,864,865],{},[59,866,867],{},"target_time",[489,869,870],{},[59,871,872],{},"author_member_id",[489,874,875],{},[59,876,877],{},"body",[489,879,880],{},[59,881,882],{},"created_at",[489,884,885],{},[59,886,887],{},"edited_at",[489,889,890],{},[59,891,399],{},[489,893,894],{},[59,895,468],{},[21,897,899],{"id":898},"conversion-notes","Conversion notes",[486,901,902,913,919,928,934],{},[489,903,904,905,908,909,912],{},"Sheaf exporters should emit ",[59,906,907],{},"front_periods[]"," with one assignment per member and ",[59,910,911],{},"source_kind: \"grouped\"",".",[489,914,915,916,918],{},"Prism exporters should emit ",[59,917,907],{}," with single-member assignments and preserve overlapping periods when co-fronting exists.",[489,920,921,922,924,925,927],{},"PluralKit exporters should emit ",[59,923,61],{}," from the switch log and optionally derive ",[59,926,907],{}," for importers that need durations.",[489,929,930,931,933],{},"Plural Star exporters should emit explicit ",[59,932,112],{}," values for each tier.",[489,935,936,937,939],{},"Importers without per-period roles should prefer the ",[59,938,290],{}," assignment when present, otherwise the first assignment.",[21,941,943],{"id":942},"related-pages","Related pages",[486,945,946,953],{},[489,947,948],{},[949,950,952],"a",{"href":951},"\u002Fformat\u002Frecords","Records",[489,954,955],{},[949,956,958],{"href":957},"\u002Fformat\u002Fmodules","Modules and contract",[960,961,962],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":134,"searchDepth":148,"depth":148,"links":964},[965,966,972,973],{"id":23,"depth":148,"text":24},{"id":116,"depth":148,"text":117,"children":967},[968,969,970,971],{"id":121,"depth":176,"text":76},{"id":531,"depth":176,"text":80},{"id":625,"depth":176,"text":626},{"id":834,"depth":176,"text":835},{"id":898,"depth":148,"text":899},{"id":942,"depth":148,"text":943},"md",{},true,"\u002Fformat\u002Ffronting",{"title":5,"description":16},"format\u002Ffronting","bdb6CVaj5rNhaUeskFFTV4sDRVXOVSg8_m6KHfsQgkQ",1792272242712]