{"schemaVersion":"pre.page.v1","id":"decisions:0004-har-before-fork","route":"/decisions/0004-har-before-fork","meta":{"title":"ADR 0004: Har is a contract before a fork","description":"Require demonstrated incompatibility before owning database infrastructure.","navLabel":"ADR 0004","order":104,"nav":false,"navGroup":"","discoverable":true,"eyebrow":"Decision","status":"accepted","theme":"main","visibility":"public"},"source":{"kind":"filesystem","ref":"decisions/0004-har-before-fork.md","digest":"f4b51700cf6b0a6d2c3e773e284e58ca6b9c8f1b0dd967ba2b582e26c4b8f3c4"},"navigation":{"items":[{"route":"/","label":"Main","order":0,"placement":"primary","group":""},{"route":"/context","label":"Context","order":10,"placement":"primary","group":""},{"route":"/vision","label":"Vision","order":15,"placement":"secondary","group":"Explore"},{"route":"/principles","label":"Principles","order":20,"placement":"primary","group":""},{"route":"/architecture","label":"Architecture","order":30,"placement":"primary","group":""},{"route":"/ontology","label":"Ontology","order":32,"placement":"secondary","group":"Explore"},{"route":"/protocol","label":"Protocol","order":35,"placement":"secondary","group":"Explore"},{"route":"/security","label":"Security","order":40,"placement":"secondary","group":"Explore"},{"route":"/roadmap","label":"Roadmap","order":45,"placement":"primary","group":""},{"route":"/status","label":"Status","order":50,"placement":"primary","group":""},{"route":"/projects","label":"Projects","order":60,"placement":"secondary","group":"Reference"},{"route":"/decisions","label":"Decisions","order":65,"placement":"secondary","group":"Reference"},{"route":"/learnings","label":"Learnings","order":68,"placement":"secondary","group":"Reference"},{"route":"/glossary","label":"Glossary","order":70,"placement":"secondary","group":"Reference"},{"route":"/sources","label":"Sources","order":90,"placement":"secondary","group":"Reference"}],"outline":[{"id":"context","label":"Context","level":2},{"id":"decision","label":"Decision","level":2},{"id":"consequences","label":"Consequences","level":2}]},"presentation":{"theme":"main","classes":{"page":"min-h-screen bg-[#f6f4ee] text-[#20251f]","header":"sticky top-0 z-20 border-b border-[#d8d6cd] bg-[#f6f4ee]/95 backdrop-blur","headerInner":"mx-auto flex w-full max-w-6xl items-center justify-between gap-6 px-5 py-4 sm:px-8 lg:px-10","brand":"flex shrink-0 items-baseline gap-2 text-sm font-semibold tracking-[-0.02em] text-[#20251f]","brandMark":"font-mono text-[0.66rem] font-medium uppercase tracking-[0.22em] text-[#737c72]","nav":"flex max-w-full gap-1 overflow-x-auto pb-1 text-sm [scrollbar-width:none] [&::-webkit-scrollbar]:hidden","navLink":"whitespace-nowrap rounded-full px-3 py-1.5 text-[#667066] transition-colors hover:bg-[#e9e7df] hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","navLinkActive":"bg-[#20251f] text-[#f6f4ee] hover:bg-[#20251f] hover:text-[#f6f4ee]","shell":"mx-auto w-full max-w-6xl px-5 sm:px-8 lg:px-10","main":"grid gap-10 py-12 lg:grid-cols-[minmax(0,1fr)_14rem] lg:py-16","article":"min-w-0","aside":"hidden lg:block","eyebrow":"font-mono text-xs font-medium uppercase tracking-[0.2em] text-[#768075]","title":"mt-4 max-w-4xl text-balance text-4xl font-medium leading-[1.04] tracking-[-0.045em] text-[#172018] sm:text-6xl","description":"mt-5 max-w-3xl text-pretty text-lg leading-8 text-[#586157] sm:text-xl","statusRow":"mt-7 flex flex-wrap gap-2","badge":"rounded-full border border-[#cfd2c9] bg-[#ebece6] px-3 py-1 font-mono text-[0.68rem] uppercase tracking-[0.12em] text-[#5d665c]","body":"mt-12 max-w-3xl","heading1":"mt-12 scroll-mt-28 text-3xl font-medium leading-tight tracking-[-0.035em] text-[#20251f]","heading2":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]","heading3":"mt-9 scroll-mt-28 text-xl font-semibold leading-tight tracking-[-0.015em] text-[#293229]","heading4":"mt-8 scroll-mt-28 text-lg font-semibold text-[#293229]","heading5":"mt-8 scroll-mt-28 text-base font-semibold uppercase tracking-[0.08em] text-[#4d574d]","heading6":"mt-8 scroll-mt-28 text-sm font-semibold uppercase tracking-[0.12em] text-[#5d675c]","paragraph":"mt-5 text-[1.04rem] leading-8 text-[#404940]","unorderedList":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]","orderedList":"mt-5 list-decimal space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:font-mono marker:text-[#737c72]","quote":"my-8 border-l-2 border-[#879184] pl-5 text-xl leading-8 text-[#2e382f]","code":"my-7 overflow-x-auto rounded-2xl border border-[#303a31] bg-[#20251f] p-5 font-mono text-sm leading-6 text-[#eef1e9] shadow-sm","divider":"my-10 border-0 border-t border-[#d8d6cd]","inlineLink":"font-medium text-[#284f36] underline decoration-[#9dab9a] decoration-1 underline-offset-4 transition-colors hover:text-[#173421] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","inlineCode":"rounded bg-[#e8e7df] px-1.5 py-0.5 font-mono text-[0.88em] text-[#2d372e]","inlineStrong":"font-semibold text-[#263027]","inlineEmphasis":"italic","tocTitle":"font-mono text-[0.68rem] font-semibold uppercase tracking-[0.16em] text-[#788078]","tocList":"mt-4 space-y-2 border-l border-[#d8d6cd] pl-4","tocLink":"block text-sm leading-5 text-[#697269] transition-colors hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","tocSticky":"sticky top-28","tocChild":"pl-3","secondaryNav":"mt-16 grid gap-8 border-t border-[#d8d6cd] pt-7 sm:grid-cols-2","secondaryNavGroup":"min-w-0","secondaryNavTitle":"font-mono text-[0.68rem] font-semibold uppercase tracking-[0.16em] text-[#788078]","secondaryNavList":"mt-3 flex flex-wrap gap-x-4 gap-y-2","secondaryNavLink":"text-sm leading-5 text-[#697269] transition-colors hover:text-[#20251f] focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-[#556255]","footer":"mt-10 border-t border-[#d8d6cd] pt-5 text-xs leading-5 text-[#737c72]","footerCode":"font-mono text-[0.68rem] text-[#5e675e]"}},"blocks":[{"id":"block-1","type":"heading","level":2,"anchor":"context","content":[{"type":"text","value":"Context"}],"plainText":"Context","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-2","type":"paragraph","content":[{"type":"text","value":"Instant's open-source realtime relational model appears close to Pre's needs, and a Pre-native fork could be named Har."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-3","type":"heading","level":2,"anchor":"decision","content":[{"type":"text","value":"Decision"}],"plainText":"Decision","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-4","type":"paragraph","content":[{"type":"text","value":"Har first names the Pre-facing source, query, relation, permission, event, sync, and export contracts. Instant may implement those contracts through an adapter."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-5","type":"paragraph","content":[{"type":"text","value":"A code fork occurs only after a real vertical slice proves a material requirement cannot reasonably live above Instant."}],"className":"mt-5 text-[1.04rem] leading-8 text-[#404940]"},{"id":"block-6","type":"heading","level":2,"anchor":"consequences","content":[{"type":"text","value":"Consequences"}],"plainText":"Consequences","className":"mt-12 scroll-mt-28 text-2xl font-medium leading-tight tracking-[-0.025em] text-[#20251f]"},{"id":"block-7","type":"list","ordered":false,"items":[[{"type":"text","value":"The architecture is not prematurely coupled to a fork."}],[{"type":"text","value":"Real requirements determine infrastructure ownership."}],[{"type":"text","value":"HARnest, Presertion, Stow, and the CLI target Har contracts rather than Instant-specific assumptions."}]],"className":"mt-5 list-disc space-y-2 pl-6 text-[1.02rem] leading-7 text-[#404940] marker:text-[#879184]"}]}