{"ok":true,"service":"SailrScience Physics API (R11)","service_version":"R11.52.2","architecture":"composite","build":{"deployed_commit":"350c0c80d8fba459fbbcb69c6e6a6599733dc2d3","physics":{"package":"@sailedge/physics","version":"11.38.0","sha":"390873a080ebb7545d34fb4a3d21f15400205f67"}},"models":{"aero":"aeroService_r11","physics_kernel":"physicsKernel_v4_0","legacy_hydro":"SailrScienceModel_R10_1_0_hydro"},"schemas":{"boat_required":"v4.3","sail":"v2.2.0","orc_default":"v5.0","orc_legacy":"v3.1"},"endpoints":{"calculate-r11":{"modes":["point"],"ops":["edge_delta_grid"],"description":"Dual-path: op-based (edge_delta_grid) + mode-based (point). compare mode removed."},"calculate-r12":{"modes":["point"],"ops":["edge_delta_grid"],"description":"R12 side-by-side endpoint: same pipeline as calculate-r11, defaults the upwind force model to unified (DESIGN-R12U aero decoupling). Override via options.aeroForceModel | plan.aeroForceModel."},"calculate-r13":{"modes":["point"],"ops":["edge_delta_grid"],"description":"R13-DSH interface on its own composition root: point-lane dshProjection defaults to on (residual-gated convex hydro + derived-geometry enrichment). Vintage-comparative surface alongside r11/r12; override via plan/options.dshProjection."},"calculate-r15":{"modes":["point"],"ops":["edge_delta_grid"],"description":"R15-SA: the standalone physics engine (@sailedge/physics-r15) on its own formal endpoint — same physics law as calculate-r13 at the current pin, byte-parity-proven at engine and wire grain, native R15 identity (never conflated with a prior version). Point-lane dshProjection defaults on."},"calculate-r16":{"modes":["point"],"ops":["edge_delta_grid","cert_delta_grid"],"description":"R16-SA on its own formal endpoint (@sailedge/physics-r16 @ 16.4.2 — 16.4.1 the CJR converter FHS/J-overwrite cure, 16.4.2 the APH ToD extraction release: adapter-only waves, no engine-domain content moved; the U6 Heel-Confidence line + the U4 NA-authority package + the heel-limit selector (16.3.0: the applicable reference heel limit is selected per point from the EVALUATED sail configuration — 30° general per the ORC VPP's documented high-heel limiter, a conservative 25° for a headsail set flying (an R16 policy value, so labeled), a declared lower limit binding when strictly lower; every response carries physics.heelLimit_deg + physics.heelLimitBasis; the deprecated client heelLimit_deg scalar is no longer a serving authority; an unclassifiable code-sail state refuses typed — a valid state with no equilibrium within the limit stays a successful typed result) + the F-1/F-5 promotion (16.4.0: F-1 continuous area reduction = ruled model law behind a deny-by-default opt-in ENGINE seam, not enabled by the serving default — flag-absent solves byte-identical; heelPath.rmSource is provenance-truthful — composition-attached curves read kn_prior_composed, caller-provided curves keep certificate_curve)): serving default = the kn_prior RM model on the canoe basis, with the canonical applicability block on every response (supported / confidence_limited / not_available_from_certificate / analysis_unavailable). The four-arm severity law: a finite, bounded calculation publishes its real numbers — soft confidence limitations aggregate to confidence_limited ('Stability confidence: Low'); genuine computational failures publish no numbers. options.rmModel \"cert\" through this endpoint = the R15-parity physics. Caller options always win; point-lane dshProjection defaults on. calculate-r15 remains the R16 parity twin and the rollback lane. op cert_delta_grid (R11.52.0, the Option-D ruling): the certificate-to-certificate comparison — separate baseline/candidate documents through the same pinned engine at the same env/anchor/held-constant plan; delta in kt AND s/nm, raw + publication-bounded with clamp evidence; identity comparisons publish exactly flat by converged dual solve; document fingerprints + engine/service provenance in meta; the tuning plane typed-rejected on every channel; hydro (HEI) gain disabled by ruling; typed flyability/solve/bounds refusals with complete cell accounting (maxCells 56)."},"calculate":{"description":"R10 legacy endpoint (unchanged, backward compat)"},"orc-convert":{"description":"ORC certificate converter — since R11.50.0 the default lane (no schema_version, \"v4.3\" or \"v5.0\") is the ruled single producer: the vendored @sailedge/physics-r16 adapter (16.4.2 — the CJR FHS cure + the APH ToD extraction; emits schema v5.0, discloses `producer` on every envelope, X-SailrScience-Orc-Mode names the emitted schema); explicit \"v3.1\" = the legacy R10.8.5 envelope (unchanged). Since R11.51.0 (W-ENT-1b B3) EVERY conversion requires the signed SailEdge license claim — Authorization: Bearer <Identity access token> whose entitlements carry product sailedge, verified statelessly against the Identity JWKS (typed refusals 401 slot_claim_required / slot_claim_invalid · 403 not_entitled · 503 slot_claim_unverifiable; X-SailrScience-Slot-Claim discloses verified;kid= or refused;code=); the static API token no longer authorizes a conversion."},"health":{"description":"This endpoint"},"auth-tier":{"description":"Tier password gate (unchanged)"}},"capabilities":{"cert_delta_grid":true,"rm_curve_binding_gate":true,"r16_rm_engine_endpoint":true,"r16_applicability_block":true,"r16_heel_limit_selector":true,"r16_rm_source_composed_label":true,"r15_standalone_engine":true,"induced_breadth_effective_span_law":true,"pipa_propeller_installation_drag":true,"cosphi_heel_corrected_wind_triangle":true,"foilaware_headsail_stations":true,"upsplit_powered_subbands":true,"fb_w2b2_rigfa_emission_retired":true,"optimal_pool_user_sail_exclusions":true,"edge_core_tier1_lean_shape":true,"optimal_fused_merge":true,"yaw_net_couple_rudder_law":true,"optimal_candidate_batched_merge":true,"optimal_server_timing_disclosure":true,"declared_sail_planform":true,"optimal_pool_inventory_enumeration":true,"ufill_feasibility_fill_law":true,"fb_w2b_freeboard_aft_refiling":true,"tier_independent_physics_solve":true,"w2_windage_wire_disclosure":true,"r11_7_3_tuning_profile_blend_override":true,"r11_7_2_tws_rebound_multiplier":true,"r11_7_1_aero_centroid_ce_alignment":true,"r11_7_downwind_force_blend":true,"r11_6_form_stability_gz_shape":true,"r12_unified_aero_endpoint":true,"r12_aero_decoupled_strategy":true,"r13_dsh_endpoint":true,"vintage_point_defaults":true,"engine_self_identification":true,"na_curve_crew_basis":false,"na_curve_crew_mass_displacement":true,"f8_orc_runtime_crew_physics":true,"depower_temperate_zone":true,"temperate_zone_seed":true,"r11_composite_point":true,"r11_edge_delta_grid_parity":true,"r11_native_edgeMap":true,"boat_v43_required":true,"boat_v43_validation":true,"campaign_presets":true,"campaign_scope_enforcement":true,"cell_provenance":true,"amber_scoring":true,"auth_tier":true,"orc_convert":true,"orc_convert_r16_producer":true,"orc_convert_slot_claim":true,"cohort_hei_compute":false,"orc_schema_v3_1":true,"orc_hei_forward_compat":true,"sanitize_nan":true,"cors":true,"bearer_auth":true,"compare_mode":false,"compat_legacy_envelope":false},"capability_info":{"cert_delta_grid":{"label":"Certificate-to-certificate comparison (cert_delta_grid)","description":"op: cert_delta_grid on calculate-r16 — the comparative configuration capability of the Option-D ruling (2026-08-24): separate baseline and candidate configuration documents each solved through the same pinned R16.4 composition root at the same wind, TWA, sea state, anchor and held-constant sailing plan; the speed delta is the serving lane’s own kernel edge-delta conversion between the two solves, preserving the ORC-anchor-plus-solved-delta construction with full publication-clamp evidence; reported in knots AND seconds per mile, raw and publication-bounded. An identity comparison publishes exactly flat, by converged dual solve. Response meta carries canonical sha-256 fingerprints of both documents, the engine model literal (R16-SA/x.y.z), SERVICE_VERSION and the complete cell accounting (computed / refused / blocked — typed refusals, no silent truncation; declared maxCells 56). The tuning plane is a typed rejection on every channel — tuning families, an allowlisted options bag, overlay/boat/state channels, and documents embedding their own rightingMomentCurve or naHeelOverlay; hydro (HEI) gain is DISABLED by ruling so candidate-side crew.hei_ratio never post-scales the certificate delta. Not an absolute free-speed solver. A deployment-blocking kernel-parity guard pins the conversion implementation and defaults against the R16 vendor twin.","epoch":"R16","since":"R11.52.0"},"rm_curve_binding_gate":{"label":"RM-curve cert-binding gate (the U4 NA-authority package, S2)","description":"A provided boat.rightingMomentCurve is gated at the ONE makeHandler pre-dispatch chokepoint on every endpoint (r11..r16) and every op (point / edge_delta_grid / optimal / optimal_merge) BEFORE any physics dispatch — the same any-of exact-token certificate-binding law as the naHeelOverlay gate (one binding grammar estate-wide; sailedge_boat_tuning v1.5.0 declares the curve-level boat_ref { orc_ref_no required, sail_no?, name? }; name never authorizes a match). The ruled disposition matrix (ADRD-R16-U4 §8, 2026-07-30): a valid bound match is retained silently (binding ADMITS a curve, it never alters physics); a binding mismatch or malformed boat_ref STRIPS the curve — the request runs pure physics with an additive diagnostic (rm_curve_rejected:cert_mismatch / :malformed_boat_ref); a bindingless legacy curve is accepted at Tier 3 ONLY, disclosed (rm_curve_bindingless_tier3_accepted), and stripped with a diagnostic at Tiers 1/2 (rm_curve_rejected:bindingless). The mutation is boat-field-firewalled: only boat.rightingMomentCurve (removal) and the diagnostic flag can move — battery-locked (rm-curve-binding-tests). Fail-closed, never a fallback; clients name certificates, the server verifies (the proportionate-governance identity architecture).","epoch":"cross","since":"R11.46.0"},"r16_rm_engine_endpoint":{"label":"R16 production engine (calculate-r16 — its own formal endpoint)","description":"The R16-SA RM-architecture successor of R15 — @sailedge/physics-r16, vendored @ 16.4.2 (engine head 6f062b2; 16.4.1 = the CJR converter FHS/J-overwrite cure, 2026-08-11; 16.4.2 = the APH ToD extraction release, 2026-08-22 — adapter-only waves, no engine-domain content moved, parity 0.000000000) — serving on ITS OWN endpoint per the RC-1 consumer adoption, the operator-approved default transition (RELEASE-R16-RC1_v1_0, 2026-07-29), and the U6 Heel-Confidence coordinated release (the U3 publish conversion; RELEASE-R16-16.1.0-U6_v1_0, 2026-07-30; 16.1.1 = the FIL toast patch, member-graded sentence, 2026-07-30; 16.2.0 = the U4 NA-authority package — the fused S3+S4 release, 2026-07-30; 16.3.0 = the heel-limit selector release — the per-point applicable reference heel limit, 2026-08-03; 16.4.0 = the coordinated F-1/F-5 promotion release, 2026-08-04 — F-1 continuous area reduction ratified as ruled model law behind the deny-by-default opt-in ENGINE seam enableContinuousAreaReduction: the serving default does not enable it and flag-absent solves are byte-identical; where enabled, a newly converged row means R16 found a reconstructed control state that balances heel at the ORC-rated target speed — not that the boat preserves that speed under the reduction; + the F-5 heelPath.rmSource provenance-label cure, the r16_rm_source_composed_label entry). THE SERVING DEFAULT on this endpoint is the kn_prior RM model on the canoe basis; options.rmModel \"cert\" through the same endpoint is the R15-parity physics (consumer-grain parity spot-proven; the ENGINE library default stays \"cert\" so the engine's 217,282-leaf parity estate remains the permanent, machine-checked R15-equivalence witness — the recorded transition-mechanics decision). Caller options always win. Responses carry the R16 identity natively (physics.model = R16-SA/x.y.z; meta.engine \"r16\"); point-lane dshProjection defaults on (the product profile, same as r13/r15). Same makeHandler scaffolding as r11..r15 — the prior endpoints' response shapes stay byte-identical (proven by the full governed suite). calculate-r15 remains live as the R16 parity twin and the rollback lane (the App's serving default has been calculate-r16 since the 2026-07-29 adoption).","epoch":"R16","since":"R11.43.0"},"r16_heel_limit_selector":{"label":"Per-point heel-limit selector (R16 16.3.0)","description":"Every calculate-r16 solve selects its applicable reference heel limit from the EVALUATED per-point sail configuration — 30° general (the ORC VPP's documented high-heel limiter threshold) or a conservative 25° when the evaluated sail state is a headsail set flying (an R16 policy value, so labeled — not an ORC-documented number); an explicitly declared lower limit (tuningProfile.heel_limit_declared_deg) binds when strictly lower (a tie does not bind, a higher declaration never raises). Every response carries the pair physics.heelLimit_deg + physics.heelLimitBasis (orc_high_heel_limiter_30 / r16_hsf_policy_25 / designer_declared_lower_limit). The deprecated client heelLimit_deg scalar is no longer a serving authority — the engine reads it nowhere (the historical client 25 no longer caps the general state). An UNCLASSIFIABLE evaluated code-sail state refuses typed (heel_limit_sail_state_unclassified — the coded-rejection 400 contract, an input defect); a valid sailing state with no equilibrium within the applicable limit remains a SUCCESSFUL typed analysis result, never a request error and never a service failure. These are model limits, not sailing recommendations.","epoch":"R16","since":"R11.48.0"},"r16_rm_source_composed_label":{"label":"RM-curve provenance label cure (R16 16.4.0, F-5)","description":"The heelPath.rmSource label on the physics explainability surface (tier_explainability_response.point.physics.heelPath) is provenance-truthful: a righting-moment curve the kn_prior composition itself attached is labeled kn_prior_composed — through 16.3.0 such curves were mislabeled certificate_curve (the RELEASE-R16-16.2.0 §9/§10 chip, cured at 16.4.0: resolveRmSource reads the composition attachment; the engine's census-bounded wire golden re-mint recorded 24 label flips, only where the deep provenance is kn_prior_composed, 0 violations, ×2 byte-identical — solver rows BYTE-IDENTICAL, a label-only cure). Caller-provided curves keep certificate_curve (caller-wins); rated-RM-only boats keep certificate_rm_rated. Outward-visible on kn_prior solves only — the cert lane and the r11..r15 endpoints are untouched.","epoch":"R16","since":"R11.49.0"},"r16_applicability_block":{"label":"Canonical applicability block (R16 wire contract)","description":"Every calculate-r16 response carries `applicability` — the ONE canonical sailor-facing model-validity mapping (summarizeApplicability, the RB-1 consumer-contract layer): supported / confidence_limited / not_available_from_certificate / analysis_unavailable, in plain language. Whitelists fail closed — an unknown internal state can never present as supported. These are model-validity states for advisory performance analytics (the proportionate-governance protocol, 2026-07-29). Since 16.1.0 (the U6 Heel-Confidence release) the FOUR-ARM severity law governs the kn_prior lane: a schema-valid certificate with a finite, bounded calculation PUBLISHES its real numbers — soft model-confidence limitations (calibration-reference divergence, above-window load, bounded cap saturation, unresolved reference association) aggregate to confidence_limited (the sailor surface titles it 'Stability confidence: Low'; since 16.1.1 the MEMBER-GRADED soft class carries the operator-ruled self-titled sentence 'Stability confidence: Low. DSYHS hull library match is limited.' while non-member soft classes keep the stable sentence), and genuine computational failures still publish no numbers. No sailor-facing sentence claims certificate history or boat-identity adjudication — a model-reference comparison is a confidence signal, never a validity test. The r11..r15 endpoints never set the key — their envelopes are byte-identical (the conditional envelope lift in makeHandler).","epoch":"R16","since":"R11.43.0"},"r15_standalone_engine":{"label":"R15 standalone physics engine (calculate-r15 — its own formal endpoint)","description":"The clean-room standalone extraction of the SailrScience physics estate — @sailedge/physics-r15, generation R15-SA — serving on ITS OWN endpoint per the operator's formal-endpoint ruling (AMENDMENT-R15-E4-DECIDE-Formal-Endpoint-2026-07-21: never conflated with a prior version; the App selects engines by endpoint). Same physics law as calculate-r13 at the current legacy pin, proven by construction rather than asserted: the engine is extracted file-by-file under fail-loud gates (statelessness · no-bulk-copy · version lint), byte-parity-proven at engine grain (219-fixture corpus, 200,000+ physics leaves at drift 0.000000000, explainability byte-exact under a deny-by-default 100%-classified surface manifest) AND at wire grain (the MS-grain harness: the full post-auth composition chain legacy-vs-R15, byte-identical except the ruled truthful identity slots), with 14 module-grain equivalence batteries + a composition coherence property, re-proven at every legacy re-base checkpoint. Responses carry the R15 identity natively (physics.model = R15-SA/x.y.z; meta.engine 'r15'). Tier payloads are assembled by the X1 explainability layer over a tier-free core (kernel tier-invariance is a proven standing property). The engine ships as a committed esbuild CJS bundle of the pure-ESM library (the runtime require(esm) limitation, probed live before any traffic — r15-probe). Model documentation: the R15 MODEL-BOOK (hydro + aero/kernel volumes, due-diligence edition, gap register + claims fences) in the R15 governance corpus. calculate-r13 remains permanently legacy-vendored (vintage-comparative surface).","epoch":"R15","since":"R11.42.0"},"induced_breadth_effective_span_law":{"label":"Induced-drag coefficient breadth (⑤, PSC-C — the last NAR-2 gap)","description":"Physics 11.37.0 (ADRD-Physics-IB-Induced-Breadth-2026-07-21 §5 — FIVE FYD consults answered same-day: the breadth method + constants, the seam mapping, the receipts round, and the post-R1 final rulings; operator GO; zero tuning — every constant FYD's). The projection-mode induced-drag effective span is no longer a corpus-wide constant: AR_eff(TWA) = AR_nom·kind_mult·f_TWA, with AR_nom = clamp(2.5 + 0.05·P + 0.03·CE − 0.40·overlap, 2.0, 6.0) from cert inputs only (P; the solved plan's area-weighted composite CE; overlap = clamp(LP/J − 1, 0, 1) off the flying headsail's declared LP_m with the rated rig.HLP fallback, disclosed), kind multipliers white 1.00 / code 0.90 / kite 0.80 (±0.05), a raised-cosine point-of-sail modifier (1.25 upwind ≤60° → 0.85 off-wind ≥120°), and span efficiency e = 0.90 (±0.05) surviving. Declared AR values win verbatim — the ruled law replaces only the fallback. THE SEAM (replace, never sum; drive axis only): the implicit induced share of the direct force tables is replaced by the corrected projection induced estimate — off-wind family tables at F_table_ind 0.30 (±0.10), the R12U unified upwind tables at F_ind_upwind 0.08 (±0.04 — re-ruled to the MEASURED corpus balance after FYD's initial 0.20 over-closed upwind), guarded per cell by BOTH ruled limiters (overshoot cap 1.10 ±0.05; decrease floor γ_min 0.90 ±0.05 in the capped-scale flag-only form — cells below the floor are disclosed structural remainder, never silently repaired). kInduced_mult survives as declared per-sail refinement in the ruled order; keel-side induced stays orthogonal. Disclosure at every tier: tier_explainability_response.point.inducedBreadth (windage/cosphi/propellerInstallation sibling) — the full AR law, inputs, constants, sensitivity lanes, and per-sail seam state. SHIPPED AS THE RULED DOCUMENTED EXCEPTION (FYD P3, recommended): off-wind well-posed residual median closure 39.7% (0.277 → 0.167) — short of the 60% accept gate, inside FYD's own predicted 40–50% band; heel green (max 0.111°, hero window clean); upwind balanced (max Δε +0.014). The 120°-high-TWS residual class is published as STRUCTURAL REMAINDER pending targeted experiments; residual map filed (EVIDENCE-IB-Receipts-FINAL-2026-07-21.json). No automatic ⑥ — this closes the NAR-2 physics-completion sequence: ① windage · ② yaw/rudder · ③ cos φ · ④ PIPA · ⑤ induced breadth, ALL SHIPPED.","epoch":"cross","since":"R11.41.0"},"pipa_propeller_installation_drag":{"label":"Propeller-installation drag (PIPA, PSC-C ④)","description":"Physics 11.36.0 (ADRD-Physics-PIPA-Propeller-Installation-Drag-2026-07-20 §5 — FYD method consult answered 2026-07-20, coefficients micro-consult answered 2026-07-21, the lane's sixth same-day round-trip; operator GO). The certificate's propeller record (PIPA/PRD/PBW, installation class, propeller type — carried since v4.3, consumed nowhere until now) composes as its OWN sixth channel in the authoritative hydro-drag stack (\"separate channel, like windage on aero\" — PIR-2), strictly downstream of the heel solve so heel receipts are byte-stable BY ARCHITECTURE (WAT-1). Ruled algebra verbatim (PCR-1..4, dated FYD provenance): viscous D = ½·ρ·(C_D_strut·PBW + C_D_blade_folded·PIPA·PRD)·V² with dimensionless per-component C_D (strut 0.030, blade folded 0.005; ±20% lanes) × a universal PoS gate (raised cosine TWA 60→120 with upwind floor S_floor 0.10 — materiality lives inside the coefficient, the term applies at every point of sail) × CE amplification M_CE = 1 + α·0.20·(CE/10 m) on the viscous share only, + speed-dependent form/hinge loss F₀·(V/V_ref 6 kt)² (strut 12 N + folded hinge 8·0.25 N; ±25% lanes). Blade state is the STATIC under-sail law (forced_blade_state = folded for folding installations — no rpm/advance-ratio machinery in a sailing solve); the strut-immersion correction f(β,φ) is a disclosed deferral, NOT applied. Ruled coverage is strict: strut+folding installations only (the governed corpus is 3/3); other classes refuse typed (propeller_installation_class_unruled + re-ruling flag). No-PIPA certs compose byte-identically with a typed absence (propeller_terms_absent + polar_provenance_undeclared note — the ORC polar may embed ORC's own allowance; never a silent zero). The ORC-polar anchor NEVER moves — the term completes the composed-drag ledger toward the anchor (PIR-3: filed wetted area excludes the installation; no double count). Disclosure at every tier: tier_explainability_response.point.propellerInstallation (sibling of windage/cosphi, C3-F3 pattern) — basis orc_formulation_reconstruction, all coefficients, gates, blade state, sensitivity lanes, and per-cell breakdown exposed verbatim. Acceptance receipts on the production lattice: off-wind fraction_closed well-posed median 10.5% inside FYD's [10%,30%] band; upwind Δε +1.7–4.7% near-uniform (the ruled healthy signature); residual-map handoff artifact filed for ⑤ induced breadth (its own consult, own GO).","epoch":"cross","since":"R11.40.0"},"cosphi_heel_corrected_wind_triangle":{"label":"Heel-corrected wind triangle (E9 cos φ, PSC-C ③)","description":"Physics 11.35.0 (ADRD-Physics-E9-CosPhi-Heel-Corrected-Wind-Triangle-2026-07-20 §5, FYD method consult SENT AND ANSWERED same day; operator GO). The apparent-wind triangle is no longer heel-blind: each sail's apparent wind is evaluated in ITS OWN heeled plane via the FYD-ruled per-sail CE-height local transform (rotate the hull-frame AW vector about the fore-aft axis by φ; existing coefficient tables consumed unchanged, indexed by the LOCAL AWA/AWS — blanket A·cosφ fenced). The composition root closes the aero(φ) ↔ φ(aero) coupling with a fixed-point iteration (0.1° heel tolerance, relaxation α ∈ [0.5,1] with adaptive damping + a bracketed-root fallback for saturation-knee cells, max ~12 evaluations; unconverged = typed refusal cosphi_heel_iteration_unconverged, deny-by-default). DEPOWER-AT-CAP reads the CONVERGED PROJECTED moment and heel (project-first / ease-second — FYD: the unprojected moment misplaces the depower threshold). Windage exposed areas ALSO heel-project (beam-axis silhouettes ×cosφ — the ruled W1 extension; disclosure force.heel_projection); hull heeled-profile drag is NOT re-projected (hydro owns heeled geometry) and induced drag flows from the projected lift with no separate scaling — channel-isolation locks verify first-order superposition (measured ≤0.03% of net). Disclosures: out.cosphi (φ*, iterations, method, trace, fences) on the tier explainability surface at every tier (point + per-cell edge, the C3-F3 carry discipline) + aero.diagnostics.heelProjection (per-sail local triangles; the hull-frame triangle stays the windage input — the anti-double-count fence). φ = 0 is byte-identical BY CONSTRUCTION. Recalibration-class wave: every heeling cell moves by design (goldens re-based with .pre_cosphi_11_34.bak priors + numeric delta record; production-lattice receipts: 0 refusals, mean 1.6 iterations, solve cost ×0.90).","epoch":"cross","since":"R11.39.0"},"foilaware_headsail_stations":{"label":"Foil-aware headsail stations (NP-Q4, planform lane)","description":"Physics 11.34.0 (ADRD-Physics-NPQ4-FoilAware-Headsail-Stations-2026-07-20, operator GO \"GO E6 NP-Q4\" — the planform ADRD's deferred NP-Q4). The foil-aware planform adjustment (CL/CD0/k-induced multipliers, previously MAIN-only) now applies to the HEADSAIL slot from its own station stack — chords [LP, GL(¼), GM(½), GU(¾), GT(⅞), HB] over the luff, station canon per contract. Stations resolve through the CONTRIBUTOR AUTHORITY (canonical widths_m → WP-4 declared flat girths → rated orc.measurements) — the identical three-source reach as the CE lane, so the coefficient adjustment fires exactly where CE stations fire; the MAIN station source was upgraded to the same authority (flat-key and rated-only mains come alive). No new constants (the FOIL_AWARE table is shape-generic); fail-open disclosed (incomplete girth set ⇒ neutral 1.0 multipliers, method \"fallback\" — girths are NEVER invented); additive headFoil + per-sail head foil diagnostics. MEASURED at vendor: governed-corpus numerics byte-identical (fixture plans carry no head dims); the adjustment engages on App-lane requests carrying complete head girths (fresh-cert rated jibs, North cut-sheet wardrobe).","epoch":"cross","since":"R11.38.0"},"upsplit_powered_subbands":{"label":"op:optimal/point/edge powered sub-split (U-PSPLIT, crossover SR-3)","description":"Physics 11.33.0 (ADRD-Physics-UPSPLIT-Powered-Subsplit-Zone-Penetration-2026-07-20, operator GO 2026-07-20 — executing crossover ADRD §9 SR-3's commissioned unit). The feasibility classifier's POWERED class carries its structural sub-split ADDITIVELY inside feasibility_basis, present ONLY on powered cells: powered_band = \"cap_hold\" (saturated — holding the heel cap within ease authority, u in [u_min, 1]) or \"zone_entry\" (unsaturated — temperate zone engaged, easing before the cap), plus two continuous shading channels — cap_ease_used = (1−u)/(1−u_min) clamped to [0,1] (0 = knife-edge at the cap, 1 = the overpowered boundary) and zone_penetration (the o1 zone block's own moment-space measure, presence-only, null when the block is absent). ZERO new constants — every anchor is already-ratified law (u_min 0.75 SR-1, the saturation knee u = 1, the zone geometry). THE THREE-CLASS feasibility LAW IS UNCHANGED: nothing ranks, gates, or solves off these fields (explainability only; free/overpowered basis blocks byte-identical); the fields flow through the ranking/response shapers' verbatim basis passthrough. Overlay-immune by construction (moment-space, crossover §3.7).","epoch":"cross","since":"R11.37.0"},"fb_w2b2_rigfa_emission_retired":{"label":"rig.FA emission retired (FB W-2b② / PS-5)","description":"Physics 11.32.0 (ADRD-Converter-Freeboard-Extraction-Generic-Crew-VCG-2026-07-11_v1_4 §6.3 M3, operator GO 2026-07-20 — the §6.2 C3 date fence waived and the FleetEdge no-objection satisfied by operator ruling: FleetEdge reports no rig.FA use). Fresh ORC conversions no longer emit rig.FA; the sole freeboard-aft filing is hull.freeboard_aft_m + hull.freeboard_aft_source (introduced alongside at 11.25.0 under the W-2b① deprecation window, byte-equal). The provenance flat-path map stamps hull.freeboard_aft_m instead of rig.FA; the raw certificate token remains under orc_cert.fields.FA. ACCEPT-EITHER IS THE TERMINAL VALIDATOR STATE: stored pre-11.32.0 boats carry rig.FA forever and keep validating — no validator ever requires hull.freeboard_aft_m unconditionally. Closes W-2b; the fb_w2b_freeboard_aft_refiling entry below records the introduce side.","epoch":"cross","since":"R11.36.0"},"optimal_pool_user_sail_exclusions":{"label":"op:optimal user sail-exclusion pool channel (E18)","description":"The boat's declared per-sail optimalEligible === false flags exclude sails from the op:optimal candidate pool at inventory admission — before permutation, dedup, and the cap (ADRD-ModelService-Optimal-User-Sail-Exclusion-Pool-Channel-2026-07-20, E18-Q1..Q6). The DECLARED primary main is always eligible (App R4 mirror): its flag is ignored for admission and disclosed. Applied exclusions and ignored flags are pool-scoped disclosures on candidateCatalogDisclosures (userExcludedSails / userExclusionIgnoredSails, PRESENCE-ONLY so unflagged boats stay byte-identical to R11.34.0); the stateless merge and fused-solve lanes enumerate the same filtered pool from the same posted boat by construction, and hold batch envelopes to it (batch_pool_mismatch / batch_disclosure_mismatch). Exclusion, enumeration omission, and batch slice remain three distinct disclosure classes. No new wire key, no new op — the channel rides the boat document the App already posts; the App-side disclosed-not-applied banner (UC-R6) retires by condition on this disclosure echo.","epoch":"cross","since":"R11.35.0"},"edge_core_tier1_lean_shape":{"label":"op:edge_delta Tier-1 lean core wire (CB-2 U2 payload trim)","description":"An op:edge_delta_grid request that EXPLICITLY declares tier 1 receives lean core cells: baseline/candidate aero+physics+solveContext trimmed (baseline keeps the heel_eq_deg classifier carve-out; candidate delta blocks — the grid-face authority — ride in full), disclosed presence-only via core meta.coreCellShape \"tier1_lean\". Tier >= 2 and tier-undeclared responses are byte-identical to the pre-U2 shape; the tier explainability surface is untouched at every tier. Tier gates explainability, never physics — the solve is identical at every tier; serialization only.","epoch":"cross","since":"R11.34.0"},"optimal_fused_merge":{"label":"op:optimal_merge fused final-batch solve (W2-a)","description":"Fan-out efficiency Wave 2 (ADRD-ModelService-Optimal-FanOut-Efficiency-2026-07-20 §6, operator GO \"lighten the api workload\"). ADDITIVE key on op:optimal_merge: solveBatch {index, size} — the merge request SOLVES that batch itself through the same handleOptimal path a standalone candidateBatch request uses, appends it to the posted batches, and merges. One request replaces batch+merge per row (−1 round trip and one fewer batch-envelope upload per row); byte-identity BY CONSTRUCTION and gated (fused vs monolithic vs 3-hop, plain + intent-ON, governed suite). Malformed solveBatch is a declared error (invalid_solveBatch); the coverage law holds the fused envelope to the same standard as posted ones (duplicate index declared). No new dispatch branch — rides the already-routed, endpoint-locked merge op (the R11.31.0 lesson applied structurally). The 3-hop path stays byte-stable for older clients.","epoch":"cross","since":"R11.33.0"},"yaw_net_couple_rudder_law":{"label":"Net-couple yaw/rudder balance law (downwind yaw D1+D2)","description":"Physics 11.30.0 (ADRD-Physics-Downwind-Yaw-Rudder-Balance-2026-07-19, D1+D2 RATIFIED 2026-07-20). computeRudder v5: the rudder demand reacts the NET of two opposing couples — the lee-turning side lever |side|·(CE_x−CLR_x) (the former v4 law's only term) MINUS the classic heeled-CE weather-helm couple |drive|·CE_ht·sin(heel). Both couples, helm direction (lee_correcting/weather_correcting) and the drive-couple basis are disclosed in rudder diagnostics; missing drive/CE_ht inputs are disclosed, never silently zero-good. D2: a heel solve pinned at its cap ambers heel_capped_posture (annotate, never block). Kills the v4 over-demand that flagged the entire 110–120° kite band past the model's own 15° stall threshold (sweep: 6/24 polar points → 0/24; repro 135°×14 12.8°→5.85°; upwind weather helm survives). Speed/heel/aero solve untouched — rudder is a diagnostic lane; goldens re-based rudder-fields-only with record. External helm-angle validation (METHODS not numbers) stays a recorded OPEN item. Wire note: the LAW is live since R11.32.0; the couple-breakdown fields on sidecar_physics.rudderRaw (yawMomentSide/DriveHeel, helmDirection, basis, heelCapped) completed at R11.32.1 (resolved path) and R11.32.2 (geometry-blocked path); status reasons rode from .0.","epoch":"cross","since":"R11.32.0"},"optimal_candidate_batched_merge":{"label":"op:optimal candidate-batched requests + stateless server merge (GR-Q1/GR-Q3)","description":"The reliability wave's wire law (ADRD-ModelService-Optimal-Granular-Request-Ranges-2026-07-19, GR-Q1..Q4 RATIFIED; batch size 16 ratified CB-Q4). optimalPolicy.candidateBatch {index, size} makes a request solve a complete TWA column for ONE ordered slice of the enumerated candidate pool (validated hard — no silent third state; an index past the last batch is a declared error); the batch envelope carries its identity on meta.candidateBatch and its scored per-cell results in merge_carrier. The NEW op:optimal_merge unions the posted batch envelopes and applies the fill/ranking law exactly once per cell through the same code path as a monolithic request — monolithic-vs-merged rankings are byte-identical (governed gate optimal-batched-merge-tests.js). Disclosures stay pool-scoped and single-emission: omissions/fences never resurrect across batches and never double. App-side merge (dead client ranker) and server-internal split (no gateway relief) stay rejected. Monolithic requests are byte-identical to R11.30.0.","epoch":"cross","since":"R11.31.1"},"optimal_server_timing_disclosure":{"label":"op:optimal server timing disclosure (CB-1 D-4)","description":"Every op:optimal envelope discloses its own server timing at meta.serverTiming: wall_ms (handler wall-clock, transport excluded) + coldStart (this invocation paid the function instance's first-load cost). Additive telemetry, no behavior change — commissioned so a 504 episode carries its own evidence and the 2026-07-19 cold-vs-warm measurement gap (32 s acceptance rows vs 6 s same-shape probe rows) has a wire instrument. ADRD-ModelService-Candidate-Batched-Optimal-Chunking-2026-07-19 (CB-Q3 ratified).","epoch":"cross","since":"R11.30.0"},"declared_sail_planform":{"label":"Declared-sail planform + declared rudder geometry","description":"Physics 11.29.0 (ADRD-Physics-Declared-Sail-Planform-North-Package-2026-07-19, operator GO). F1: headsail girth codes (HHB/HUW/HTW/HHW/HQW) map into canonical station widths at both seams (converter widths_m emit + contributor builder, incl. WP-4 declared flat keys and rated orc.measurements) — rated jib stacks were dark to the aero. F2: the GT/GU ¾-vs-⅞ station inversion between producer and consumers fixed at the consumers per the boat contract (PATCH-BOAT-V4X-001; live on fresh-cert mains via foilAware — main CE/foil index corrected, goldens re-based with record). F3: head + kite station-widths centroid branches (declared data only, never invented; kites SFL@z0/SHW@z0.5/point head). Declared rudder geometry: rudder_family + area/AR/x manifest entries (Boat Tuning tier 2) re-wired through projectHydroAndRudderTuning into the resolver — supersedes the 2026-06-17 inert-flat-fields decision WITH RECORD per its own restoration clause; undeclared boats byte-identical.","epoch":"cross","since":"R11.29.0"},"optimal_pool_inventory_enumeration":{"label":"op:optimal pool = inventory enumeration + intended-use filter","description":"The candidate pool ENUMERATES the rated inventory — full permutation (EVERY eligible main × each headsail, + × each off-wind sail since R11.44.0 — the U-B mains-permutation ruling, ADRD-AppR10-OpOptimal-UAT-MainChoice-And-Chunking-2026-07-29: alternate mains COMPETE, the former main_not_preferred omission is retired, the declared primary main enumerates first; no template classifier, no family regexes: the INFERNO S1.5 SYM defect class is structurally dead). Every omission is DISCLOSED (omittedSails, permutationCapApplied + omittedCandidateKeys when the explicit safety-rail cap bites; the DEFAULT cap equals the ceiling — the default request never truncates the pool). Labels/keys are plan-derived. NEW optimalPolicy.followIntendedUse (default false — full math): admission-only per-cell intent filter, OFF-WIND sails only, law-anchored generous bands (UPWIND ≤90 · REACH 55–140 · DOWNWIND ≥120, published on meta.intendedUseFilter), fail-open on undeclared use, every exclusion disclosed intended_use_filtered. Operator-ratified CODE taxonomy amendment: conditional upwind admission windows — HR55 floor 60° at TWS ≤12 kt (55° under 8 kt), CODE0 floor 65° at TWS ≤10 kt, HR75 pure reacher 75°; kite floors unchanged (ASYM 90, SYM 120). ADRD-ModelService-Optimal-Pool-Inventory-Enumeration-2026-07-19.","epoch":"cross","since":"R11.28.0"},"ufill_feasibility_fill_law":{"label":"Feasibility-gated optimal fill law + trim guidance (U-FILL)","description":"The Wind Regime Version Lift's MS unit (crossover ADRD lane; SPEC-Skipper-Crossover-Regime-Map v0.2 §3/§4). Physics 11.27.0 classifies every composite solve at the composition root (feasibility_classification/1: overpowered ⇔ saturated ∧ u < u_min, u_min 0.75 RATIFIED at the 2026-07-19 SPEC review — the status travels on every basis block) and republishes decision-solve heel_saturated_at_cap (UF-F1 repair). op:optimal now applies the fill law per cell within the kind authority: eligible → feasible (overpowered never ranks; refusals disclosed feasibility_unresolved) → within-kind rank → WINNER with margin_class (honesty band 0.05 kt, ratified same review) + handling tie-break inside the band only; all_overpowered cells disclose and print the least-overpowered plan. Reef/twist trim variants are fenced from ranking typed (trim_variant_not_rankable — the F2 law, server-side) and reappear only as derived TRIM_GUIDANCE boundaries (ease_above/reef1_above per TWA column, reef variants solved never ranked). Cross-kind stays undecidable (OA-R3). ADRD-ModelService-UFILL-Fill-Law-Trim-Guidance-2026-07-19.","epoch":"cross","since":"R11.26.0"},"fb_w2b_freeboard_aft_refiling":{"label":"Freeboard-aft re-filing (FB W-2b①)","description":"The ORC converter (orc-convert, v4.3 lane) emits hull.freeboard_aft_m + hull.freeboard_aft_source ('orc_cert_fa', or a disclosed-absence token — never a silent null) ALONGSIDE the mis-filed rig.FA, which ships byte-identical under an OPEN deprecation window. FA is freeboard aft — a hull quantity the original extraction filed under rig. Retirement of rig.FA is W-2b②/PS-5 only, App-sequenced (accept-either validators first; not before 2026-08-01; operator GO). This wave also vendors the PSC-R7 C3 closure admissibility surface (closureCalibrationQuality_r13) HEADLESS — no wire imports it; the closure law goes live only at its own future MS ADRD (crossKind flip). ADRD-Converter-Freeboard-Extraction-Generic-Crew-VCG-2026-07-11_v1_4 §6.","epoch":"cross","since":"R11.25.0"},"tier_independent_physics_solve":{"label":"Tier-independence runtime attestation (DB-1)","description":"The deployed bundle self-attests, on /api/health, that the physics solve is tier-independent: the point composition chain (binder → compute → response shaping, the same computePointEnvelope the wire serves) is solved at tiers 1 and 3 on the governed Sitella 90/8 fixture, free (heelLimit 25) AND saturated (heelLimit 8, clamp binding asserted), and the envelopes are byte-compared after stripping only the 7 measured tier-gated diagnostic containers. Result publishes at attestations.tier_independent_physics_solve — memoized per warm instance, ok:false disclosed with per-tier signatures, never silently omitted. Automates the 2026-07-18 manual tier-law confirmation; runtime layer over the Physics build-time lock. ADRD-ModelService-DB1-Tier-Independence-Health-Attestation-2026-07-18.","epoch":"cross","since":"R11.24.0"},"w2_windage_wire_disclosure":{"label":"Windage wire disclosure (C3-F3)","description":"The W2 windage disclosure block (out.windage) publishes on the tier explainability surface at tier_explainability_response.point.windage and per-cell on the edge explainability map (baseline + candidates) — at EVERY tier, byte-identically. Composed blocks carry basis \"orc_formulation_reconstruction\" (the claims fence) + W1 force block verbatim + W2-R4/R5 typed deferrals; boats the single producer has not reached carry composed:false with a typed refusal. Core layers stay windage-free. ADRD-ModelService-C3F3-Windage-Wire-Disclosure-2026-07-18.","epoch":"cross","since":"R11.23.0"},"r11_7_3_tuning_profile_blend_override":{"label":"Tuning-profile blend override","description":"Optional per-boat override channel at tuningProfile.downwindBlend.* for the AD-DWB-13 family-level constants + blend window; family defaults apply when absent (ORC-baseline principle). SPEC v1.6 §6.2.","epoch":"R11","since":"R11.7.3"},"r11_7_2_tws_rebound_multiplier":{"label":"TWS rebound multiplier","description":"AWS-gated rebound multiplier for ASYM C_heel in the AWA 110–125° band (smoothstep shoulders), AWS ≥ 5.5 m/s ramp, K_REBOUND_MAX 1.50.","epoch":"R11","since":"R11.7.2"},"r11_7_1_aero_centroid_ce_alignment":{"label":"Aero centroid CE alignment","description":"aeroPoint per-sail CE_ht / CE_x resolved via the centroid model (Physics-aligned), not flat lookup.","epoch":"R11","since":"R11.7.1"},"r11_7_downwind_force_blend":{"label":"Downwind force blend","description":"Direct (C_drive, C_heel) coefficients per sail family for AWA > 90° with AWS rebound (AD-DWB-13); CODE0 guarded < AWA 100°.","epoch":"R11","since":"R11.7.0"},"r11_6_form_stability_gz_shape":{"label":"Form-stability GZ shape","description":"k(λ) from LWL/BWL drives the RM curve shape (NA-calibrated).","epoch":"R11","since":"R11.6"},"r12_unified_aero_endpoint":{"label":"Unified aero endpoint (calculate-r12)","description":"Side-by-side endpoint on the same pipeline as calculate-r11, defaulting the upwind force model to unified (DESIGN-R12U aero decoupling).","epoch":"R12","since":"R11.5.2"},"r12_aero_decoupled_strategy":{"label":"Decoupled aero strategy","description":"R12 unified aero rides a vendored strategy module; R11 default path untouched (override via options.aeroForceModel | plan.aeroForceModel).","epoch":"R12","since":"R11.5.2"},"r13_dsh_endpoint":{"label":"R13-DSH endpoint (calculate-r13)","description":"First-class R13 interface on its own composition root (compositePoint_r13): point-lane dshProjection defaults to on — residual-gated convex projection with derived-geometry enrichment (two-basis rule). The PRODUCT point lane since Phase 2 (App PROD targets it); vintage-comparative surface alongside calculate-r11/r12 for UAT and research.","epoch":"R13","since":"R11.13.0"},"vintage_point_defaults":{"label":"Vintage-pure point defaults (r11/r12)","description":"Phase 3 of the R13 interface decoupling: calculate-r11 and calculate-r12 point defaults are dshProjection \"shadow\" — defaulting callers get pure-vintage published numbers (r11 = R11, r12 = R12-OD epoch_2, the MPAE paper physics) with R13-DSH shadow observability retained. calculate-r13 and public-point stay default \"on\" (the shipped product). Callers keep full per-request control via plan/options.dshProjection.","epoch":"cross","since":"R11.14.0"},"engine_self_identification":{"label":"Engine self-identification (meta.engine)","description":"Point / edge_delta_grid / optimal success envelopes declare the composition root that served them via meta.engine (r11 | r12 | r13), so callers can verify which engine ran a request rather than inferring it from the endpoint URL. Additive; the vintage-pure lanes stay equivalent modulo this identity field. ADRD-App-R13-DSH-Default-Engine-Selector-2026-07-07.","epoch":"cross","since":"R11.14.0"},"na_curve_crew_basis":{"label":"NA RM-curve crew basis (RETIRED by F-8)","description":"RETIRED (false) as of R11.18.0: the D-3 crew_basis engagement path rested on the falsified premise that rated RM is crew-inclusive at rated crew. Under F-8 (ADRD-Physics-Crew-RM-Basis-Correction-Full-Retune-F8-2026-07-11 v1.1, rulings R-6/R-7) the hiking reference is crew_hiked_in_base (default 0 on both RM bases -- neither ORC rated RM nor NA hydrostatic curves carry hiking), so the FULL sailed crew's rail moment engages and config differentials are preserved automatically. Legacy crew_basis declarations still parse but no longer feed the engagement. Key retained (additive-only contract); value false states the behavior is gone.","epoch":"cross","since":"R11.16.0"},"f8_orc_runtime_crew_physics":{"label":"F-8 ORC-runtime crew physics","description":"RM_total = base RM + F-4 mass channel (delta-only, every lane) + crew hiking term m_hike*g*arm*cos(heel)*P(cell), with m_hike = full sailed crew (crew_hiked_in_base = 0 on both RM bases -- ORC eq 4.28 runtime treatment), the family crew arm from ORC VPP eq 4.30/4.31 (+declared CEXT; crew_arm_m NA override), and an ORC-consistent heel-gated position law that persists downwind (no family TWA fade; crew_ftwa_* corners engage only when explicitly declared as NA config). Drag lanes run on the sailing-displacement basis (NA-declared mass_basis else DSPM + rated crew, disclosed via _sailingDisplacementBasis). Upwind unified C_heel band rebuilt x1.4642 under RM-consistency closure (no FYD heel targets in the family layer). ADRD-Physics-Crew-RM-Basis-Correction-Full-Retune-F8-2026-07-11 v1.1 (RATIFIED, R-1..R-8).","epoch":"cross","since":"R11.18.0"},"depower_temperate_zone":{"label":"Depower temperate zone (D-16)","description":"Per-boat Boat Tuning knob heel_temperate_zone_deg: the heel band, SYMMETRIC about the heel limit (ease from L-T/2, fully engaged by L+T/2), over which the modeled crew progressively depowers instead of hitting a wall. C1 moment-space soft-min on the overpower ratio u = RM(L)/M_heel with knee half-width w = (T/2)*RM'(L)/RM(L) from the boat's own RM gradient; coincides exactly with the prior law when free and when deeply overpowered. Ships at kernel family default 0 (zone disabled, byte-identical); a non-zero default is a separate, dated, re-calibrated act (DD-6/DD-7). Explainability: heel.temperateZone {u, w, d, penetration} emitted only when engaged. ADRD-Depower-Temperate-Zone-2026-07-14 (DD-1..DD-8 ratified; O1 selected 2026-07-15, FYD-data tie-break).","epoch":"cross","since":"R11.20.0"},"temperate_zone_seed":{"label":"Temperate-zone per-boat seed","description":"Dedicated endpoint (temperate-zone-seed-r11) returning the per-boat default heel_temperate_zone_deg: T = clamp(0, 10, 2*w_target/g), MEASURED from the boat's own righting-moment gradient at its heel limit L (g = RM'(L)/RM(L)), which is cell/aero-independent and deterministic (FINDING-TemperateZone-Seed-Determinism-T2). w_target = 0.026 (ratified, T-3); the seed reproduces the accepted Sitella T=4.90. The hull-shape predictor was REJECTED -- the seed is measured, not inferred. A boat that never presses fails to a DISCLOSED 0 (never a silent guess). Kernel family default stays 0 (byte-identical); this is an App/profile-layer seed the App writes into tuningProfile at hull-select when unset. ADRD-Depower-TemperateZone-PerBoat-Default-From-HullSelection-2026-07-18 (T-4.5).","epoch":"cross","since":"R11.20.2"},"na_curve_crew_mass_displacement":{"label":"NA RM-curve crew mass in displacement (F-4)","description":"An NA-provided rightingMomentCurve may declare provenance.mass_basis { displacement_kg, crew_in_displacement_kg, crew_vcg_above_boat_vcg_m }; a sailed-crew delta measured against the crew IN the curve's displacement then changes the RIGHTING MOMENT at EVERY heel angle via dRM = dm * [ RM/m_curve - g*h*sin(heel) ] -- the delta mass carrying its own righting arm. This is the crew-mass channel: previously a crew delta was moment-only (the hiking supplement, transverse and F_crew-attenuated to zero downwind), so crew mass had no effect at deep angles. Orthogonal to the supplement (vertical vs transverse components of the same delta mass); mass_basis is DISTINCT from crew_basis (hiking reference) and must not be conflated. All three fields required together; undeclared curves and no-curve boats are byte-identical to prior behavior. ADRD-Physics-Crew-Mass-Displacement-F4-2026-07-11.","epoch":"cross","since":"R11.17.0"},"r11_composite_point":{"label":"Composite point (UC1)","description":"Decomposed aero → kernel → heel pipeline behind mode: \"point\".","epoch":"R11"},"r11_edge_delta_grid_parity":{"label":"Edge delta grid (UC2)","description":"S5 native edge map with tuning, amber scoring, and provenance; op: \"edge_delta_grid\".","epoch":"R11"},"r11_native_edgeMap":{"label":"Native EdgeMap orchestration","description":"Edge grids computed by the R11 EdgeMapService, not the R10 legacy path.","epoch":"R11"},"boat_v43_required":{"label":"Boat schema v4.3 required","description":"calculate-r11/r12 require the v4.3 complete-boat payload.","epoch":"R11"},"boat_v43_validation":{"label":"Boat v4.3 validation","description":"Hard payload validation (assertCompleteBoatV43) before compute; declared errors, no silent coercion.","epoch":"R11"},"campaign_presets":{"label":"Campaign presets","description":"Named campaign tuning presets resolved server-side.","epoch":"R11"},"campaign_scope_enforcement":{"label":"Campaign scope enforcement","description":"Schema-aero bounds apply to edge campaigns only, never the baseline.","epoch":"R11"},"cell_provenance":{"label":"Cell provenance","description":"Per-cell provenance markers on edge grids.","epoch":"R11"},"amber_scoring":{"label":"Amber scoring","description":"Edge cells carry amber instability scoring + public mask.","epoch":"R11"},"auth_tier":{"label":"Tier auth gate","description":"Tier password gate endpoint (unchanged from R10).","epoch":"R10"},"orc_convert":{"label":"ORC certificate converter","description":"ORC HTML → BOATS JSON. Since R11.50.0 the default lane (no schema_version, or \"v4.3\" / \"v5.0\") is the ruled single producer — the @sailedge/physics-r16 adapter — emitting schema v5.0 (see orc_convert_r16_producer); the explicit \"v3.1\" legacy envelope is unchanged.","epoch":"R11"},"orc_convert_r16_producer":{"label":"ORC converter = the ruled single producer (R16 16.4.2 adapter — APH ToD extraction + the CJR FHS cure)","description":"The orc-convert default lane converts through the vendored @sailedge/physics-r16 ORC adapter (16.4.2, engine head 6f062b2; converter wire identity R11.8.0; schema v5.0) — the adapter FleetEdge's certificate intake pins as the only producer of normalized certificate corpora. It carries the CJR FHS/J-overwrite cure (16.4.1: a foretriangle row can no longer null or replace a real rig J) and the APH ToD extraction (16.4.2; the operator's 2026-08-18 ruling R1–R5): the printed page-1 \"APH ToD:\" / \"APH:\" value into orc.rating.aph_tod_sec_per_nm, witnessed by the Single-Number \"All purpose\" ToD row, the APHT relation as validation only — never APHD, never aph_tot_factor, never 600÷APHT as the source; the ToT factor retained as its own typed value; three typed null postures (aph_not_published_on_certificate · aph_not_extracted · source_truncated); the orc.rating.aph provenance block (source sha1, label, location, witness result, APHT relation, extraction version); the top-level rating compat (aph_tod_s_per_nm, aph_tot_factor, aph_null_posture, cdl_m). The retired legacy adapter (@sailedge/physics 11.38.0, which emitted aph_tod_sec_per_nm null by design) no longer serves the default lane. Every minted envelope discloses its producer (`producer`) beside the single-producer gate disclosure; the X-SailrScience-Orc-Mode header names the EMITTED schema (v5.0). Consumer of record: the SailEdge App's certificate upload (the Boat tab's ORC Rating card leads with APH in s/NM, GPH beside it as the legacy reference).","epoch":"R16","since":"R11.50.0"},"orc_convert_slot_claim":{"label":"orc-convert requires the signed SailEdge license claim (W-ENT-1b B3)","description":"Since R11.51.0 every conversion (the default producer lane AND the explicit v3.1 legacy envelope) requires Authorization: Bearer <Identity access token> — the signed slot claim: EdDSA-verified STATELESSLY against the Identity JWKS (https://id.sailr.science/.well-known/jwks.json; kid as a hint, iss sailr-identity, aud sailrscience, exp), whose entitlements projection must carry product sailedge (a live license slot or the org license). Typed refusals: 401 slot_claim_required (no Bearer) · 401 slot_claim_invalid (signature/expiry/iss/aud/malformed) · 403 not_entitled (valid token, no sailedge) · 503 slot_claim_unverifiable (no key source reachable — fail-closed, never open). The X-SailrScience-Slot-Claim header discloses verified;kid=<kid> or refused;code=<code>. The static SAILRSCIENCE_API_TOKEN no longer authorizes a conversion (it is public-by-design in the App config). The authed rate tier keys by the claim's account (sub); refusals ride the per-IP unauthed tier. Stateless: ModelService reads no slot state. Governing: ModelService/project/ADRD-ModelService-Orc-Convert-Slot-Claim-W-ENT-1b-B3-2026-08-22.md over DECIDE-Identity_W-ENT-1b D-ENT-9 (R-B3 closed).","epoch":"R16","since":"R11.51.0"},"cohort_hei_compute":{"label":"Cohort HEI compute (RETIRED)","description":"RETIRED (false) as of R11.44.0 (the operator-ratified Cohort Study drop, AUDIT-SailEdge-Cohort-Study-Keep-Or-Drop-2026-07-29): the bounded NA cohort study concluded without adoption; the batch cohort-hei endpoint is withdrawn. The FleetEdge product owns fleet-scale cohort analytics with its own independent machinery. Key retained (additive-only contract); value false states the behavior is gone. Boat documents carrying last-known hydro.hei blocks remain readable client-side.","epoch":"R11","since":"R11.5.2"},"orc_schema_v3_1":{"label":"ORC schema v3.1 (legacy lane)","description":"Explicit legacy ORC conversion lane kept for backward compatibility.","epoch":"R11"},"orc_hei_forward_compat":{"label":"ORC HEI forward compatibility","description":"Converter emits HEI-forward-compatible fields for downstream cohort use.","epoch":"R11"},"sanitize_nan":{"label":"NaN sanitization","description":"Response payloads are NaN-guarded (ported from R10 calculate.js hardening).","epoch":"R10"},"cors":{"label":"CORS origin control","description":"Allow-listed origins with Vary: Origin (ported from R10 hardening).","epoch":"R10"},"bearer_auth":{"label":"Bearer auth (optional)","description":"Optional bearer-token authentication on compute endpoints.","epoch":"R10"},"compare_mode":{"label":"Compare mode (removed)","description":"R10-era compare mode is removed from calculate-r11; flag stays declared false.","epoch":"R10"},"compat_legacy_envelope":{"label":"Legacy envelope compat (disabled)","description":"Legacy response envelope compatibility is disabled; flag stays declared false.","epoch":"R10"}},"attestations":{"tier_independent_physics_solve":{"ok":true,"signature":"eeb5da5cc9471e6f","tiers":[1,3],"variants":{"free":{"ok":true,"signature":"ca7d4f54d18bf964"},"saturated":{"ok":true,"signature":"ea37cec6ddf8f3f3","clamp_bound":true}},"boat":"sitella","cell":{"TWA_deg":90,"TWS_kt":8},"physics":{"package":"@sailedge/physics","version":"11.38.0","sha":"390873a080ebb7545d34fb4a3d21f15400205f67"},"solved_at":"2026-08-31T13:43:51.890Z","elapsed_ms":787}},"timestamp":"2026-08-31T13:43:51.892Z"}