[{"data":1,"prerenderedAt":304},["ShallowReactive",2],{"i-lucide:shapes":3,"i-lucide:server":8,"i-lucide:library":10,"i-lucide:list-checks":12,"i-lucide:waypoints":14,"i-lucide:calendar-range":16,"i-lucide:layers":18,"i-lucide:notebook-pen":20,"i-lucide:swords":22,"i-lucide:terminal":24,"i-lucide:list":26,"i-lucide:gauge":28,"i-lucide:webhook":30,"i-lucide:home":32,"i-lucide:layout-grid":34,"i-lucide:tag":36,"i-lucide:newspaper":38,"i-lucide:map":40,"i-lucide:flask-conical":42,"i-lucide:arrow-right":44,"i-lucide:book-open":46,"i-lucide:chevron-right":48,"i-lucide:search":50,"i-lucide:monitor":52,"content:\u002Fdocs\u002Fattributes-and-schemas":54,"i-lucide:lightbulb":300,"i-lucide:info":302,"i-lucide:rocket":297,"i-lucide:git-compare":297,"i-lucide:key-round":297,"i-lucide:fingerprint":297,"i-lucide:blocks":297,"i-lucide:bot":297,"i-lucide:octagon-alert":297},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M8.3 10a.7.7 0 0 1-.626-1.079L11.4 3a.7.7 0 0 1 1.198-.043L16.3 8.9a.7.7 0 0 1-.572 1.1Z\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003Ccircle cx=\"17.5\" cy=\"17.5\" r=\"3.5\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"2\" rx=\"2\" ry=\"2\"\u002F>\u003Crect width=\"20\" height=\"8\" x=\"2\" y=\"14\" rx=\"2\" ry=\"2\"\u002F>\u003Cpath d=\"M6 6h.01M6 18h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m16 6l4 14M12 6v14M8 8v12M4 4v16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M13 5h8m-8 7h8m-8 7h8M3 17l2 2l4-4M3 7l2 2l4-4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m10.586 5.414l-5.172 5.172m13.172 2.828l-5.172 5.172M6 12h12\"\u002F>\u003Ccircle cx=\"12\" cy=\"20\" r=\"2\"\u002F>\u003Ccircle cx=\"12\" cy=\"4\" r=\"2\"\u002F>\u003Ccircle cx=\"20\" cy=\"12\" r=\"2\"\u002F>\u003Ccircle cx=\"4\" cy=\"12\" r=\"2\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"18\" height=\"18\" x=\"3\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M16 2v3M3 9h18M8 2v3m9 8h-6m2 4H7m0-4h.01M17 17h.01\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z\"\u002F>\u003Cpath d=\"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12\"\u002F>\u003Cpath d=\"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":21},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M13.4 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-7.4M2 6h4m-4 4h4m-4 4h4m-4 4h4\"\u002F>\u003Cpath d=\"M21.378 5.626a1 1 0 1 0-3.004-3.004l-5.01 5.012a2 2 0 0 0-.506.854l-.837 2.87a.5.5 0 0 0 .62.62l2.87-.837a2 2 0 0 0 .854-.506z\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":23},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.5 17.5L3 6V3h3l11.5 11.5M13 19l6-6m-3 3l4 4m-1 1l2-2M14.5 6.5L18 3h3v3l-3.5 3.5M5 14l4 4m-2-1l-3 3m-1-1l2 2\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":25},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 19h8M4 17l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":27},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M3 5h.01M3 12h.01M3 19h.01M8 5h13M8 12h13M8 19h13\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":29},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 14l4-4M3.34 19a10 10 0 1 1 17.32 0\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":31},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M18 16.98h-5.99c-1.1 0-1.95.94-2.48 1.9A4 4 0 0 1 2 17c.01-.7.2-1.4.57-2\"\u002F>\u003Cpath d=\"m6 17l3.13-5.78c.53-.97.1-2.18-.5-3.1a4 4 0 1 1 6.89-4.06\"\u002F>\u003Cpath d=\"m12 6l3.13 5.73C15.66 12.7 16.9 13 18 13a4 4 0 0 1 0 8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":33},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8\"\u002F>\u003Cpath d=\"M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":35},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"3\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"14\" y=\"14\" rx=\"1\"\u002F>\u003Crect width=\"7\" height=\"7\" x=\"3\" y=\"14\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":37},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\"\u002F>\u003Ccircle cx=\"7.5\" cy=\"7.5\" r=\".5\" fill=\"currentColor\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":39},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M15 18h-5m8-4h-8m-6 8h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2\"\u002F>\u003Crect width=\"8\" height=\"4\" x=\"10\" y=\"6\" rx=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":41},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14.106 5.553a2 2 0 0 0 1.788 0l3.659-1.83A1 1 0 0 1 21 4.619v12.764a1 1 0 0 1-.553.894l-4.553 2.277a2 2 0 0 1-1.788 0l-4.212-2.106a2 2 0 0 0-1.788 0l-3.659 1.83A1 1 0 0 1 3 19.381V6.618a1 1 0 0 1 .553-.894l4.553-2.277a2 2 0 0 1 1.788 0zm.894.211v15M9 3.236v15\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":43},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M14 2v6a2 2 0 0 0 .245.96l5.51 10.08A2 2 0 0 1 18 22H6a2 2 0 0 1-1.755-2.96l5.51-10.08A2 2 0 0 0 10 8V2M6.453 15h11.094M8.5 2h7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":45},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":47},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M12 5v16m8.001-2A2 2 0 0 0 22 17V5a2 2 0 0 0-1.999-2L16 3.002A5 5 0 0 0 12 5a5 5 0 0 0-4-2H4a2 2 0 0 0-2 2v12a2 2 0 0 0 1.999 2H8a5 5 0 0 1 4 2a5 5 0 0 1 4-2z\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":49},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m9 18l6-6l-6-6\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":51},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"m21 21l-4.34-4.34\"\u002F>\u003Ccircle cx=\"11\" cy=\"11\" r=\"8\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":53},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Crect width=\"20\" height=\"14\" x=\"2\" y=\"3\" rx=\"2\"\u002F>\u003Cpath d=\"M8 21h8m-4-4v4\"\u002F>\u003C\u002Fg>",{"id":55,"title":56,"body":57,"description":290,"extension":291,"eyebrow":292,"hostedOnly":6,"meta":293,"navigation":294,"path":295,"seo":296,"short":297,"stem":298,"__hash__":299},"docs\u002Fdocs\u002Fattributes-and-schemas.md","Attributes & schemas",{"type":58,"value":59,"toc":279},"minimark",[60,69,74,77,84,87,91,94,146,149,157,161,164,168,175,178,228,235,239,250,254,257,261],[61,62,63,64,68],"p",{},"Lore is the prose on a resource. ",[65,66,67],"strong",{},"Attributes"," are the structured part: a character's alignment, a city's population, an item's rarity. Attributes are what lists filter and facet on, so they are worth setting up well.",[70,71,73],"h2",{"id":72},"a-schema-per-kind","A schema per kind",[61,75,76],{},"A schema defines which fields a kind has. This page covers fields, validation, and the ad-hoc fields that let you go off-script.",[61,78,79,80,83],{},"Each kind has a ",[65,81,82],{},"schema",": the set of fields a resource of that kind can hold. You author the schema in the chronicle's taxonomy. A field has a name, a type, and a set of presentation choices. When you add a resource of that kind, its attribute editor is built from the schema.",[61,85,86],{},"A field's value is a string or a list of strings, typed by the field. A single-value field holds one, a multiple-value field holds several.",[70,88,90],{"id":89},"field-types-and-presentation","Field types and presentation",[61,92,93],{},"A field carries more than a datatype. It also carries how the value looks and how it is authored:",[95,96,97,109,115,122,128,135],"ul",{},[98,99,100,101,104,105,108],"li",{},"an ",[65,102,103],{},"accent colour"," and an ",[65,106,107],{},"icon",",",[98,110,111,112,108],{},"whether it takes ",[65,113,114],{},"multiple values",[98,116,117,118,121],{},"whether it ",[65,119,120],{},"pins to the sidebar"," on the resource page,",[98,123,124,125,108],{},"whether text is ",[65,126,127],{},"multi-line",[98,129,130,131,134],{},"for a select field, the ",[65,132,133],{},"options",", each with its own label, icon, and colour,",[98,136,137,138,141,142,145],{},"a ",[65,139,140],{},"default"," value, or a ",[65,143,144],{},"locked"," value the author cannot change.",[61,147,148],{},"Because presentation lives on the field, the same attribute looks the same on every resource that has it.",[150,151,154],"callout",{"title":152,"tone":153},"Colour is a name, not a hex","tip",[61,155,156],{},"A field's colour is chosen from a named palette, such as violet or sky, not a raw hex code. The app resolves the name to the right value for the current theme, so your worlds stay legible in light and dark mode.",[70,158,160],{"id":159},"values-validate-against-the-field","Values validate against the field",[61,162,163],{},"A field with a fixed set of options only accepts those options. Setting a value that is not in the set is rejected. Validation also respects family inheritance, so a value inherited from a family root counts as present on a variant.",[70,165,167],{"id":166},"ad-hoc-fields","Ad-hoc fields",[61,169,170,171,174],{},"A schema can never predict every field you will want. So a resource can carry ",[65,172,173],{},"ad-hoc fields"," of its own, outside its kind's schema. An ad-hoc field is a full, rich field, as capable as a schema field, but it belongs to the one resource rather than the whole kind.",[61,176,177],{},"A resolved attribute always tells you where it came from:",[179,180,181,194],"table",{},[182,183,184],"thead",{},[185,186,187,191],"tr",{},[188,189,190],"th",{},"Origin",[188,192,193],{},"Meaning",[195,196,197,208,218],"tbody",{},[185,198,199,205],{},[200,201,202],"td",{},[203,204,82],"code",{},[200,206,207],{},"The field is defined on the kind's schema.",[185,209,210,215],{},[200,211,212],{},[203,213,214],{},"adhoc",[200,216,217],{},"The field is defined on this resource only.",[185,219,220,225],{},[200,221,222],{},[203,223,224],{},"orphan",[200,226,227],{},"The value exists but its field is no longer defined.",[150,229,232],{"title":230,"tone":231},"Strict schemas","note",[61,233,234],{},"A kind can be marked strict, which forbids ad-hoc fields entirely. Use it for worlds that want every resource of a kind to share exactly one shape.",[70,236,238],{"id":237},"promotion-and-rebinding","Promotion and rebinding",[61,240,241,242,245,246,249],{},"When an ad-hoc field proves useful across many resources, a config author can ",[65,243,244],{},"promote"," it into the kind's schema, so it becomes a shared field. A resource can also be ",[65,247,248],{},"rebound"," to a different schema of its kind. The escape hatch has a path back to structure.",[70,251,253],{"id":252},"filtering-and-facets","Filtering and facets",[61,255,256],{},"A resource list can filter and facet on attribute values. A facet counts how many resources fall in each bucket, and the count honours inheritance, so it matches what the resource cards actually show. Select and boolean fields return facet buckets. Text fields are filter-only.",[70,258,260],{"id":259},"where-to-go-next","Where to go next",[95,262,263,272],{},[98,264,265,266,271],{},"Attributes live on the resources in ",[267,268,270],"a",{"href":269},"\u002Fdocs\u002Fresources-and-kinds","Resources & kinds",".",[98,273,274,275,271],{},"See how the attribute model was designed in ",[267,276,278],{"href":277},"\u002Finternal\u002Farchitecture\u002Fresources","Resources & attributes",{"title":280,"searchDepth":281,"depth":281,"links":282},"",2,[283,284,285,286,287,288,289],{"id":72,"depth":281,"text":73},{"id":89,"depth":281,"text":90},{"id":159,"depth":281,"text":160},{"id":166,"depth":281,"text":167},{"id":237,"depth":281,"text":238},{"id":252,"depth":281,"text":253},{"id":259,"depth":281,"text":260},"Attributes are the structured fields on a resource - rarity, alignment, population.","md","Building a world",{},{"title":56},"\u002Fdocs\u002Fattributes-and-schemas",{"title":56,"description":290},null,"docs\u002Fattributes-and-schemas","_9zEiabAyhE-qby-TIO0o_t063c6s09r9kzV3gtQu8M",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":301},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M15 14c.2-1 .7-1.7 1.5-2.5c1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5c.7.7 1.3 1.5 1.5 2.5m0 4h6m-5 4h4\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":303},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"10\"\u002F>\u003Cpath d=\"M12 16v-4m0-4h.01\"\u002F>\u003C\u002Fg>",1788784058100]