nx_labsci_svc.nx
buildroot/runtime/nx_labsci_svc.nx
about
nx_labsci_svc.nx -- LAB-SCIENCE SERVICE FACADE. The second organ built on
the nx_service base, over a COMPLETELY DIFFERENT domain from nx_gtm_svc --
peptide chemistry, frozen-dessert physics, thermal death kinetics, and
water activity. Its existence is the proof the base generalises: the
envelope, escaping, error shape, dispatch and self-description are all
inherited unchanged; only the verbs and their handlers differ.
Two facades, one base, two unrelated sciences = the architecture scales to
all seventeen organs by the same recipe, not just the go-to-market subset.
USAGE: nx_labsci_svc <verb> [args...]
describe
peptide.analyze <sequence> (1-letter code, e.g. DRVYIHPF)
icecream.freeze <fat_g> <msnf_g> <sugar_g> <sugar_mw_q2> <total_g>
thermal.pasteurize <temp_milli_c> <hold_ms> <highfat 0|1>
thermal.barrier <ph_milli> <ambient_stable 0|1>
water.activity <water_g> <solute_umol>
stability.shelf <ref_days> <ref_temp_c> <target_temp_c> <months> <loss_pct>
stability.mkt <temp_c>... (2-8 whole Celsius readings, equal duration)
stability.separate <t1> <rh1> <months1> <t2> <rh2> <months2> <t3> <rh3> <months3>
Same discipline as the sibling facade: NO new domain logic, every number
comes from a gated library, structured errors, fail-closed on bad input.
stability.separate is the verb that answers what stability.shelf can only
flag. ICH gives two storage conditions differing in BOTH temperature and
humidity, so the activation energy recovered from them is lumped; three
conditions break it apart, and the verb REFUSES a design that cannot --
reporting the conditioning separately, because a design can be solvable
and still useless.
The stability verbs report GND_VALIDATED, a tier above the rest of
this facade's business-adjacent output, and the reason is specific: their
activation energy is RECOVERED from ICH's own equivalence claim and then
lands inside published Q10 and Ea bands that were never inputs to the
derivation. That is the same evidence class as the pasteurisation z-value,
which is why thermal.* already reports VALIDATED.
genealogy_id: nishi_food_science_suite + service_infrastructure
dependencies 13 imports · 0 importers
diagram shows first 10 each side; +3 more imports, +0 more importers in the complete lists below.
imports: nx_syscalls.nxnx_service.nxnx_grounding.nxnx_peptide.nxnx_icecream.nxnx_thermal_process.nxnx_water_activity.nxnx_pow10.nxnx_shelf_life.nxnx_stability.nxnx_stability_rh.nxnx_ice_recrystal.nxnx_ice_distribution.nx
imported by: nobody (leaf or entry point)
call flow from main pre-order; caps 40 nodes / depth 6 declared; ↻ = already shown
structs
| none |
consts
| 54 | const LAB_MAGIC_13000: i64 = 13000 |
| 55 | const LAB_MAGIC_8192: i64 = 8192 |
| 57 | const LAB_SVC: *u8 = "labsci" as *u8 |
functions
| 61 | func lab_describe(j: *NxJson) -> i64 |
| 85 | func lab_peptide_analyze(j: *NxJson, seq: *u8) -> i64 called by 1: lab_dispatch calls 16: nsvc_errorpep_seq_validpep_mass_mono_q4nsvc_ok_opennj_kv_strnj_comma+10 |
| 122 | func lab_icecream_freeze(j: *NxJson, fat: i64, msnf: i64, sugar: i64, mw: i64, total: i64) -> i64 called by 1: lab_dispatch calls 13: nsvc_errornx_ice_mix_newic_water_gnsvc_ok_opennj_kv_intnj_comma+7 |
| 157 | func lab_thermal_pasteurize(j: *NxJson, temp: i64, hold: i64, highfat: i64) -> i64 called by 1: lab_dispatch calls 9: nsvc_errornsvc_ok_opennj_kv_intnj_commatp_pasteurization_equiv_msnj_kv_bool+3 |
| 179 | func lab_thermal_barrier(j: *NxJson, ph: i64, ambient: i64) -> i64 called by 1: lab_dispatch calls 7: nsvc_ok_opennj_kv_intnj_commanj_kv_boolcs_is_high_acidtp_barrier_required+1 |
| 193 | func lab_water_activity(j: *NxJson, water: i64, solute: i64) -> i64 called by 1: lab_dispatch calls 10: wa_from_solutes_q4nsvc_errornsvc_ok_opennj_kv_intnj_commanj_kv_bool+4 |
| 218 | func lab_stability_shelf(j: *NxJson, ref_days: i64, ref_c: i64, target_c: i64, months: i64, loss_pct: i64) -> i64 |
| 274 | func lab_stability_mkt(j: *NxJson, argc: i64, argv: *i64) -> i64 called by 1: lab_dispatch calls 11: sys_mmapnsvc_arg_intnsvc_errorstab_ich_ea_jstab_mkt_centi_kelvinstab_mean_centi_kelvin+5 |
| 330 | func lab_stability_separate(j: *NxJson, argc: i64, argv: *i64) -> i64 called by 1: lab_dispatch calls 15: sys_mmapnsvc_errornsvc_arg_intsrh_design_conditioning_permilsrh_separatensvc_ok_open+9 |
| 390 | func lab_icecream_recrystal(j: *NxJson, fat: i64, msnf: i64, sugar: i64, total: i64, tcold: i64, twarm: i64, cycles: i64, days: i64) -> i64 |
| 469 | func lab_join_args(argc: i64, argv: *i64, start: i64, out: *u8, cap: i64) -> i64 called by 1: lab_dispatch |
| 490 | func lab_dispatch(argc: i64, argv: *i64, j: *NxJson) -> i64 called by 1: main calls 16: nsvc_arglab_describensvc_streqsys_mmaplab_join_argslab_peptide_analyze+10 |
| 536 | func main(argc: i64, argv: *i64) -> i64 |