[{"data":1,"prerenderedAt":344},["ShallowReactive",2],{"page-\u002Fv1\u002Fcore\u002Fversioning":3},{"id":4,"title":5,"body":6,"description":336,"extension":337,"meta":338,"navigation":339,"path":340,"seo":341,"stem":342,"__hash__":343},"content\u002Fv1\u002Fcore\u002Fversioning.md","Core and contract versioning",{"type":7,"value":8,"toc":327},"minimark",[9,13,22,27,113,117,161,170,174,238,242,275,279,286,315],[10,11,5],"h1",{"id":12},"core-and-contract-versioning",[14,15,16,17,21],"p",{},"This site is the ",[18,19,20],"strong",{},"sole architecture canon",". Versioning keeps adopters aligned when rules or contracts change.",[23,24,26],"h2",{"id":25},"version-surfaces","Version surfaces",[28,29,30,46],"table",{},[31,32,33],"thead",{},[34,35,36,40,43],"tr",{},[37,38,39],"th",{},"Surface",[37,41,42],{},"Current",[37,44,45],{},"Meaning",[47,48,49,66,84,97],"tbody",{},[34,50,51,57,63],{},[52,53,54],"td",{},[18,55,56],{},"Core badge",[52,58,59],{},[60,61,62],"code",{},"1.0.0-draft",[52,64,65],{},"Normative Modular Hexagonal DDD rules on this site",[34,67,68,73,78],{},[52,69,70],{},[18,71,72],{},"Docs URL",[52,74,75],{},[60,76,77],{},"\u002Fv1\u002F...",[52,79,80,81],{},"Major docs generation; breaking IA\u002Frule sets may open ",[60,82,83],{},"\u002Fv2",[34,85,86,91,94],{},[52,87,88],{},[18,89,90],{},"Optional assistant pack",[52,92,93],{},"Same as Core badge when used",[52,95,96],{},"Convenience slice only — not a Core MUST",[34,98,99,104,107],{},[52,100,101],{},[18,102,103],{},"Published contracts",[52,105,106],{},"Per event \u002F façade",[52,108,109,112],{},[60,110,111],{},"schemaVersion"," on events; additive methods on façades",[23,114,116],{"id":115},"semver-for-core-when-leaving-draft","SemVer for Core (when leaving draft)",[28,118,119,129],{},[31,120,121],{},[34,122,123,126],{},[37,124,125],{},"Bump",[37,127,128],{},"When",[47,130,131,141,151],{},[34,132,133,138],{},[52,134,135],{},[18,136,137],{},"MAJOR",[52,139,140],{},"Normative MUST rules change in a breaking way (e.g. forbidding a previously allowed bridge)",[34,142,143,148],{},[52,144,145],{},[18,146,147],{},"MINOR",[52,149,150],{},"New pages, new recommended practices, new MUST that does not invalidate correct existing modules",[34,152,153,158],{},[52,154,155],{},[18,156,157],{},"PATCH",[52,159,160],{},"Clarifications, typos, diagram fixes, non-normative examples",[14,162,163,164,169],{},"While the badge ends in ",[18,165,166],{},[60,167,168],{},"-draft",", treat all normative pages as evolving; adopters should pin a git commit or tag of this docs repo, not only the badge string.",[23,171,173],{"id":172},"contract-evolution-modules","Contract evolution (modules)",[28,175,176,186],{},[31,177,178],{},[34,179,180,183],{},[37,181,182],{},"Change",[37,184,185],{},"Approach",[47,187,188,199,214,222,230],{},[34,189,190,193],{},[52,191,192],{},"Add optional event field",[52,194,195,196,198],{},"MINOR \u002F additive — bump ",[60,197,111],{}," if consumers must notice",[34,200,201,204],{},[52,202,203],{},"Remove or rename event field",[52,205,206,207,210,211,213],{},"New event type ",[18,208,209],{},"or"," major ",[60,212,111],{}," + dual-publish window",[34,215,216,219],{},[52,217,218],{},"Add façade method",[52,220,221],{},"Additive — OK",[34,223,224,227],{},[52,225,226],{},"Change façade method meaning",[52,228,229],{},"New method; deprecate old",[34,231,232,235],{},[52,233,234],{},"Replace in-process façade with HTTP",[52,236,237],{},"Consumer ACL adapter only — Application\u002FDomain unchanged",[23,239,241],{"id":240},"adopter-checklist","Adopter checklist",[243,244,245,253,263,266],"ol",{},[246,247,248,249,252],"li",{},"Link architecture docs to ",[18,250,251],{},"this site"," (or a pinned mirror).",[246,254,255,256,258,259,262],{},"Version your own Domain Events with ",[60,257,111],{}," + ",[60,260,261],{},"eventId",".",[246,264,265],{},"Record host adapter version separately (adapter pages may advance without a Core major).",[246,267,268,269,274],{},"Optionally keep an ",[270,271,273],"a",{"href":272},"\u002Fv1\u002Fcore\u002Fagent-pack","assistant pack"," in sync if your team uses AI tools — never required for compliance.",[23,276,278],{"id":277},"compatibility-promise-draft","Compatibility promise (draft)",[14,280,281,282,285],{},"Until ",[60,283,284],{},"1.0.0"," (non-draft):",[287,288,289,305,308],"ul",{},[246,290,291,292,295,296,295,299,295,302,262],{},"Greenfield example names stay ",[60,293,294],{},"Ordering",", ",[60,297,298],{},"Warehouse",[60,300,301],{},"Directory",[60,303,304],{},"Identity",[246,306,307],{},"Core remains framework-agnostic (no host ORM \u002F admin UI as Core MUST).",[246,309,310,311,314],{},"Breaking clarifications are logged in this repo’s ",[60,312,313],{},"ROADMAP.md"," decision log.",[14,316,317,318,322,323,262],{},"Next: ",[270,319,321],{"href":320},"\u002Fv1\u002Fcore\u002Frequirements","Portable requirements"," · ",[270,324,326],{"href":325},"\u002Fv1\u002Fadopt","Adopt",{"title":328,"searchDepth":329,"depth":329,"links":330},"",2,[331,332,333,334,335],{"id":25,"depth":329,"text":26},{"id":115,"depth":329,"text":116},{"id":172,"depth":329,"text":173},{"id":240,"depth":329,"text":241},{"id":277,"depth":329,"text":278},"SemVer policy for Core 1.0.0-draft, docs URL \u002Fv1, and breaking changes to façades and events.","md",{},true,"\u002Fv1\u002Fcore\u002Fversioning",{"title":5,"description":336},"v1\u002Fcore\u002Fversioning","EjPfp4ZdeJz6UDRcXvaBabJNNZYKTO8w-hK-s2kdnkE",1786241412760]